Source Code

;; @contract StakingSiloTrait
;; @version 1.0
;; @description Trait contract for staking silo functionality

;;-------------------------------------
;; Trait Definition
;;-------------------------------------

(define-trait staking-silo-trait
  (
    ;;-------------------------------------
    ;; Getters
    ;;-------------------------------------

    ;; @desc - Get claim data by ID
    ;; @param - id: claim ID to retrieve
    ;; @return - (ok {recipient: principal, amount: uint, ts: uint}) on success, (err uint) on failure
    (get-claim (uint) (response {recipient: principal, amount: uint, ts: uint} uint))

    ;;-------------------------------------
    ;; User Functions
    ;;-------------------------------------

    ;; @desc - Transfer USDh to recipient after cooldown window has passed
    ;; @param - claim-id: ID of the claim to execute
    ;; @return - (ok bool) on success, (err uint) on failure
    (withdraw (uint) (response bool uint))

  )
)