Source Code

;; SPDX-License-Identifier: BUSL-1.1
;; Copyright (c) 2026 Hermetica Labs, Inc.

;; @contract Reserve Fund
;; @version 1
;; @description Reserve fund contract to cover negative rewards

(use-trait ft .sip-010-trait.sip-010-trait)

(define-constant ERR_INSUFFICIENT_BALANCE (err u106001))

;;-------------------------------------
;; Transfer
;;-------------------------------------

(define-public (transfer (asset <ft>) (amount uint) (recipient principal))
  (let (
    (asset-contract (contract-of asset))
    (balance (try! (contract-call? asset get-balance current-contract)))
  )
    (try! (contract-call? .hq-v1 check-is-protocol-two contract-caller recipient))
    (try! (contract-call? .state-hbtc-v1 check-transfer-auth asset-contract))
    (asserts! (>= balance amount) ERR_INSUFFICIENT_BALANCE)
    (print { action: "transfer", user: contract-caller, data: { asset: asset, amount: amount, recipient: recipient, sender: current-contract, balance: balance }})
    (as-contract? ((with-ft asset-contract "*" amount) (with-stx amount))
      (try! (contract-call? asset transfer amount current-contract recipient none))
    )
  )
)

Functions (1)

FunctionAccessArgs
transferpublicasset: <ft>, amount: uint, recipient: principal