(use-trait registry-trait .registry-trait-vpv-12.registry-trait)
(use-trait bsd-trait .bsd-trait-vpv-12.bsd-trait)
(use-trait oracle-trait .oracle-trait-vpv-12.oracle-trait)
(use-trait stability-trait .stability-trait-vpv-12.stability-trait)
(use-trait sbtc-trait .sip-010-trait-ft-standard-vpv-12.sip-010-trait)
(use-trait sorted-vaults-trait .sorted-vaults-trait-vpv-12.sorted-vaults-trait)
(define-trait vault-trait
(
(new-vault-wrapper (uint uint uint (optional uint) (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait> <sorted-vaults-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(mint-loan-wrapper (uint uint (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(repay-loan-wrapper (uint uint (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait> <sorted-vaults-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(add-collateral-wrapper (uint uint (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(withdraw-collateral-wrapper (uint uint (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait> <sorted-vaults-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(update-interest-rate-wrapper (uint uint (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait>) (response (tuple (vault-id uint) (information (optional (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal) (stake uint) (vault-sbtc-rewards-snapshot uint) (vault-bsd-rewards-snapshot uint)))) (compounded-information ( tuple (vault-total-debt uint) (vault-total-collateral uint) (vault-debt uint) (vault-collateral uint) (vault-protocol-debt uint) (vault-protocol-collateral uint) (vault-protocol-debt-calculated uint) (vault-protocol-collateral-calculated uint) (vault-collateral-ratio uint) (calculated-block uint) (vault-accrued-interest uint) (vault-info (tuple (borrower principal) (created-height uint) (borrowed-bsd uint) (collateral-sbtc uint) (protocol-debt-bsd uint) (protocol-collateral-sbtc uint) (interest-rate uint) (last-interest-accrued uint) (future-interest-rate uint) (future-interest-epoch uint) (interest-rate-delegate principal)))))) uint))
(calculate-loan-fee (uint bool <registry-trait>) (response uint uint))
(protocol-transfer-sbtc (principal uint <sbtc-trait>) (response bool uint))
(process-epoch-rates ((list 100 uint) (list 100 (optional uint)) <registry-trait> <sorted-vaults-trait>) (response (tuple (index uint) (updated (list 100 uint)) (hints (list 100 (optional uint))) (registry <registry-trait>) (sorted-vaults <sorted-vaults-trait>)) uint))
(process-epoch-accrual ((list 100 uint) <bsd-trait> <registry-trait>) (response (tuple (accrued (list 100 uint)) (bsd <bsd-trait>) (registry <registry-trait>)) uint))
(process-liquidations ((list 10 uint) (optional (buff 8192)) <bsd-trait> <sbtc-trait> <oracle-trait> <registry-trait> <stability-trait> <sorted-vaults-trait>) (response (tuple (liquidated (list 10 uint)) (sbtc-price uint) (bsd <bsd-trait>) (sbtc <sbtc-trait>) (registry <registry-trait>) (stability <stability-trait>) (sorted-vaults <sorted-vaults-trait>)) uint))
(update-rate-delegate (uint principal <registry-trait>) (response bool uint))
)
)