From 6b1f4eea1d1bd6bc216ee7385da0464ba9088b67 Mon Sep 17 00:00:00 2001 From: friedger Date: Fri, 8 Mar 2024 00:25:35 +0100 Subject: [PATCH] feat: add xverse-member --- Clarinet.toml | 44 ++- .../fastpool/fastpool-strategy.clar | 4 +- .../strategies/fastpool/xverse-member.clar | 38 +++ deployments/default.simnet-plan.yaml | 275 +++++++++++------- 4 files changed, 249 insertions(+), 112 deletions(-) create mode 100644 contracts/strategies/fastpool/xverse-member.clar diff --git a/Clarinet.toml b/Clarinet.toml index 0786100..54c4220 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -8,6 +8,8 @@ cache_dir = "./.cache" [[project.requirements]] contract_id = "SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2" +[[project.requirements]] +contract_id = "SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2" [[project.requirements]] contract_id = "SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard" @@ -144,6 +146,46 @@ epoch = 2.4 path = "contracts/strategies/fastpool/fastpool-member.clar" epoch = 2.4 +[contracts.xverse-member1] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member2] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member3] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member4] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member5] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member6] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member7] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member8] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member9] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + +[contracts.xverse-member10] +path = "contracts/strategies/fastpool/xverse-member.clar" +epoch = 2.4 + [contracts.sip-010-trait] path = "contracts/traits/sip-010-trait.clar" epoch = 2.4 @@ -231,7 +273,7 @@ depends_on = [ "trait-sip-010", "trait-flash-loan-user", "trait-ownable", - "trait-semi-fungible" + "trait-semi-fungible", ] [contracts.trait-vault] diff --git a/contracts/strategies/fastpool/fastpool-strategy.clar b/contracts/strategies/fastpool/fastpool-strategy.clar index db3c1ca..7ecfb75 100644 --- a/contracts/strategies/fastpool/fastpool-strategy.clar +++ b/contracts/strategies/fastpool/fastpool-strategy.clar @@ -6,8 +6,8 @@ (define-constant member-list (list (to-trait .fastpool-member1) (to-trait .fastpool-member2) (to-trait .fastpool-member3) (to-trait .fastpool-member4) (to-trait .fastpool-member5) (to-trait .fastpool-member6) (to-trait .fastpool-member7) (to-trait .fastpool-member8) (to-trait .fastpool-member9) (to-trait .fastpool-member10) - (to-trait .fastpool-member11) (to-trait .fastpool-member12) (to-trait .fastpool-member13) (to-trait .fastpool-member14) (to-trait .fastpool-member15) - (to-trait .fastpool-member16) (to-trait .fastpool-member17) (to-trait .fastpool-member18) (to-trait .fastpool-member19) (to-trait .fastpool-member20) + (to-trait .xverse-member1) (to-trait .xverse-member2) (to-trait .xverse-member3) (to-trait .xverse-member4) (to-trait .xverse-member5) + (to-trait .xverse-member6) (to-trait .xverse-member7) (to-trait .xverse-member8) (to-trait .xverse-member9) (to-trait .xverse-member10) )) (define-trait pool-member diff --git a/contracts/strategies/fastpool/xverse-member.clar b/contracts/strategies/fastpool/xverse-member.clar new file mode 100644 index 0000000..0c2c81d --- /dev/null +++ b/contracts/strategies/fastpool/xverse-member.clar @@ -0,0 +1,38 @@ +(define-constant err-unauthorised (err u5000)) +(define-constant pool-reward-pox-addr (tuple (hashbytes 0x) (version 0x))) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none)) + +(define-read-only (is-strategy-caller) + (ok (asserts! (is-eq contract-caller .fastpool-strategy) err-unauthorised)) +) + +(define-public (delegate-stx (amount uint)) + (begin + (try! (is-strategy-caller)) + (try! (as-contract (contract-call? 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 delegate-stx + amount + 'SPXVRSEH2BKSXAEJ00F1BY562P45D5ERPSKR4Q33 none (some (tuple (hashbytes 0xdb14133a9dbb1d0e16b60513453e48b6ff2847a9) (version 0x04))) + pool-reward-pox-addr + none))) + (ok true) + ) +) + +(define-public (revoke-delegate-stx) + (begin + (try! (is-strategy-caller)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx)) + ok-val (ok ok-val) + err-val (err (to-uint err-val)) + ) + ) +) + +(define-public (refund-stx (recipient principal)) + (let ((balance (stx-get-balance (as-contract tx-sender)))) + (try! (is-strategy-caller)) + (try! (as-contract (stx-transfer? balance tx-sender recipient))) + (ok balance) + ) +) + diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 88e4ce7..280c37e 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -39,7 +39,6 @@ genesis: - pox - pox-2 - pox-3 - - pox-4 - lockup - costs-2 - costs-3 @@ -54,6 +53,9 @@ plan: emulated-sender: SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE path: "./.cache/requirements/SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.clar" clarity-version: 1 + epoch: "2.0" + - id: 1 + transactions: - emulated-contract-publish: contract-name: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -99,9 +101,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts_modules/alex_v1/traits/trait-vault.clar clarity-version: 1 - epoch: "2.1" - - id: 1 + epoch: "2.05" + - id: 2 transactions: + - emulated-contract-publish: + contract-name: pox-pools-1-cycle-v2 + emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX + path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2.clar" + clarity-version: 2 - emulated-contract-publish: contract-name: pox-fast-pool-v2 emulated-sender: SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP @@ -117,6 +124,159 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/fastpool/fastpool-member.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member2 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member4 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member5 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member6 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member7 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member8 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-member9 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: strategy-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/traits/strategy-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member1 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member10 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member2 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member4 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member5 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member6 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member7 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member8 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-member9 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/xverse-member.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-strategy + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/strategies/fastpool/fastpool-strategy.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: extension-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/traits/extension-trait.clar + clarity-version: 2 + epoch: "2.4" + - id: 3 + transactions: + - emulated-contract-publish: + contract-name: proposal-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/traits/proposal-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lisa-dao + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/lisa-dao.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: proxy-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/traits/proxy-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-vault + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/lqstx-vault.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-strategy-manager + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/fastpool-strategy-manager.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: operators + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/operators.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: sip-010-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/traits/sip-010-trait.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-lisa + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/token-lisa.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/boot.clar + clarity-version: 2 - emulated-contract-publish: contract-name: fastpool-member11 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -162,114 +322,11 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/fastpool/fastpool-member.clar clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member2 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - emulated-contract-publish: contract-name: fastpool-member20 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/fastpool/fastpool-member.clar clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member3 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member4 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member5 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member6 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member7 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member8 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-member9 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-member.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: strategy-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/strategy-trait.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-strategy - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/strategies/fastpool/fastpool-strategy.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: extension-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/extension-trait.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/proposal-trait.clar - clarity-version: 2 - epoch: "2.4" - - id: 2 - transactions: - - emulated-contract-publish: - contract-name: lisa-dao - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/lisa-dao.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: proxy-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/proxy-trait.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-vault - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/lqstx-vault.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-strategy-manager - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/fastpool-strategy-manager.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: operators - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/operators.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: sip-010-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/sip-010-trait.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: token-lisa - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/token-lisa.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/boot.clar - clarity-version: 2 - emulated-contract-publish: contract-name: lqstx-mint-registry emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -300,6 +357,9 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/extensions/lqstx-mint-endpoint.clar clarity-version: 2 + epoch: "2.4" + - id: 4 + transactions: - emulated-contract-publish: contract-name: lisa-rebase emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -355,9 +415,6 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 - epoch: "2.4" - - id: 3 - transactions: - emulated-contract-publish: contract-name: token-wlqstx emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM