Source Code

;; dlmm-staking-trait-v-0-1

;; Define staking trait for DLMM Core
(define-trait dlmm-staking-trait
  (
    (get-helper-value () (response uint uint))
    (get-staking-status () (response bool uint))
    (get-early-unstake-status () (response bool uint))
    (get-early-unstake-fee-address () (response principal uint))
    (get-early-unstake-fee () (response uint uint))
    (get-minimum-staking-duration () (response uint uint))
    (get-default-reward-period-duration () (response uint uint))
    (get-total-lp-staked () (response uint uint))
    (get-total-rewards-claimed () (response uint uint))
    (get-bin (uint) (response (optional {
      lp-staked: uint,
      reward-per-block: uint,
      reward-period-duration: uint,
      reward-index: uint,
      last-reward-index-update: uint,
      reward-period-end-block: uint
    }) uint))
    (get-user (principal) (response (optional {
      bins-staked: (list 1001 uint),
      lp-staked: uint
    }) uint))
    (get-user-data-at-bin (principal uint) (response (optional {
      lp-staked: uint,
      accrued-rewards: uint,
      reward-index: uint,
      last-stake-height: uint
    }) uint))
    (get-updated-reward-index (uint) (response {
      reward-index: uint,
      rewards-to-distribute: uint,
      reward-period-effective-block: uint
    } uint))
    (get-claimable-rewards (principal int) (response {
      pending-rewards: uint,
      accrued-rewards: uint,
      claimable-rewards: uint
    } uint))
    (stake-lp-tokens (int uint) (response bool uint))
    (unstake-lp-tokens (int) (response bool uint))
    (early-unstake-lp-tokens (int) (response bool uint))
    (claim-rewards (int) (response uint uint))
    (update-reward-index (uint) (response bool uint))
  )
)