From c249ed6418c2db151b442048cddb3ddb7fd8c7eb Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Wed, 14 Aug 2024 00:35:08 +0900 Subject: [PATCH 1/9] lip010 --- Clarinet.toml | 4 ++++ contracts/proposals/lip010.clar | 11 +++++++++ deployments/default.simnet-plan.yaml | 35 +++++++++++----------------- 3 files changed, 29 insertions(+), 21 deletions(-) create mode 100644 contracts/proposals/lip010.clar diff --git a/Clarinet.toml b/Clarinet.toml index 0db4ac5..6fa8bf1 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -77,4 +77,8 @@ epoch = 2.5 [contracts.alex-boot] path = "contracts/mocks/tests/alex-boot.clar" +epoch = 2.5 + +[contracts.lip010] +path = "contracts/proposals/lip010.clar" epoch = 2.5 \ No newline at end of file diff --git a/contracts/proposals/lip010.clar b/contracts/proposals/lip010.clar new file mode 100644 index 0000000..cdb3b99 --- /dev/null +++ b/contracts/proposals/lip010.clar @@ -0,0 +1,11 @@ + +;; SPDX-License-Identifier: BUSL-1.1 + +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) + +(define-public (execute (sender principal)) + (begin + (try! (contract-call? 'SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2 set-authorised-manager 'SP3TJ5YF08D4FSHM9ZYBBG3X76PW9257YE9SPFWA1 true)) + (ok true) + ) +) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 62dc405..ddb705f 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -48,12 +48,6 @@ genesis: plan: batches: - id: 0 - transactions: [] - epoch: "2.0" - - id: 1 - transactions: [] - epoch: "2.05" - - id: 2 transactions: - emulated-contract-publish: contract-name: sip-010-trait-ft-standard @@ -70,6 +64,9 @@ plan: emulated-sender: SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335 path: "./.cache/requirements/SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.clar" clarity-version: 1 + epoch: "2.0" + - id: 1 + transactions: - emulated-contract-publish: contract-name: extension-trait emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 @@ -145,8 +142,8 @@ plan: emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.staking-helper.clar" clarity-version: 1 - epoch: "2.1" - - id: 3 + epoch: "2.05" + - id: 2 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -154,10 +151,7 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 4 - transactions: [] - epoch: "2.3" - - id: 5 + - id: 3 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -285,7 +279,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 6 + - id: 4 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -408,10 +402,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 7 - transactions: [] - epoch: "2.4" - - id: 8 + - id: 5 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -539,7 +530,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" clarity-version: 2 epoch: "2.5" - - id: 9 + - id: 6 transactions: - emulated-contract-publish: contract-name: lip004 @@ -636,12 +627,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip008.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: lip010 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip010.clar + clarity-version: 2 - emulated-contract-publish: contract-name: mock-boot emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/mocks/tests/mock-boot.clar clarity-version: 2 epoch: "2.5" - - id: 10 - transactions: [] - epoch: "2.5" From 6f424dbebea584c940b6baf45fd2bcbbafc2f352 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Sat, 31 Aug 2024 11:17:24 +0800 Subject: [PATCH 2/9] fix: auto-alex-v3-endpoint --- .../extensions/auto-alex-v3-endpoint.clar | 3 +- deployments/default.simnet-plan.yaml | 390 +++++++++++++++++- tests/auto-alex-v3.test.ts | 24 +- 3 files changed, 403 insertions(+), 14 deletions(-) diff --git a/contracts/extensions/auto-alex-v3-endpoint.clar b/contracts/extensions/auto-alex-v3-endpoint.clar index 50c795a..fc8de55 100644 --- a/contracts/extensions/auto-alex-v3-endpoint.clar +++ b/contracts/extensions/auto-alex-v3-endpoint.clar @@ -170,6 +170,7 @@ (let ( (current-cycle (try! (rebase))) (redeem-cycle (+ current-cycle max-cycles)) + ;; (amount (contract-call? .auto-alex-v3 get-tokens-to-shares token-amount)) (request-details { requested-by: tx-sender, amount: amount, redeem-cycle: redeem-cycle, status: PENDING }) (request-id (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request u0 request-details))))) (asserts! (not (is-redeem-paused)) err-paused) @@ -191,7 +192,7 @@ (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) (as-contract (try! (contract-call? .auto-alex-v3 burn (get amount request-details) .auto-alex-v3))) - (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) + ;; (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) (print { notification: "finalize-redeem", payload: updated-request-details }) (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index ddb705f..0a57e28 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -48,6 +48,12 @@ genesis: plan: batches: - id: 0 + transactions: [] + epoch: "2.0" + - id: 1 + transactions: [] + epoch: "2.05" + - id: 2 transactions: - emulated-contract-publish: contract-name: sip-010-trait-ft-standard @@ -64,9 +70,6 @@ plan: emulated-sender: SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335 path: "./.cache/requirements/SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.clar" clarity-version: 1 - epoch: "2.0" - - id: 1 - transactions: - emulated-contract-publish: contract-name: extension-trait emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 @@ -142,8 +145,68 @@ plan: emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.staking-helper.clar" clarity-version: 1 - epoch: "2.05" - - id: 2 + epoch: "2.1" + - id: 3 + transactions: [] + epoch: "2.1" + - id: 4 + transactions: [] + epoch: "2.1" + - id: 5 + transactions: [] + epoch: "2.1" + - id: 6 + transactions: [] + epoch: "2.1" + - id: 7 + transactions: [] + epoch: "2.1" + - id: 8 + transactions: [] + epoch: "2.1" + - id: 9 + transactions: [] + epoch: "2.1" + - id: 10 + transactions: [] + epoch: "2.1" + - id: 11 + transactions: [] + epoch: "2.1" + - id: 12 + transactions: [] + epoch: "2.1" + - id: 13 + transactions: [] + epoch: "2.1" + - id: 14 + transactions: [] + epoch: "2.1" + - id: 15 + transactions: [] + epoch: "2.1" + - id: 16 + transactions: [] + epoch: "2.1" + - id: 17 + transactions: [] + epoch: "2.1" + - id: 18 + transactions: [] + epoch: "2.1" + - id: 19 + transactions: [] + epoch: "2.1" + - id: 20 + transactions: [] + epoch: "2.1" + - id: 21 + transactions: [] + epoch: "2.1" + - id: 22 + transactions: [] + epoch: "2.1" + - id: 23 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -151,7 +214,70 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 3 + - id: 24 + transactions: [] + epoch: "2.3" + - id: 25 + transactions: [] + epoch: "2.3" + - id: 26 + transactions: [] + epoch: "2.3" + - id: 27 + transactions: [] + epoch: "2.3" + - id: 28 + transactions: [] + epoch: "2.3" + - id: 29 + transactions: [] + epoch: "2.3" + - id: 30 + transactions: [] + epoch: "2.3" + - id: 31 + transactions: [] + epoch: "2.3" + - id: 32 + transactions: [] + epoch: "2.3" + - id: 33 + transactions: [] + epoch: "2.3" + - id: 34 + transactions: [] + epoch: "2.3" + - id: 35 + transactions: [] + epoch: "2.3" + - id: 36 + transactions: [] + epoch: "2.3" + - id: 37 + transactions: [] + epoch: "2.3" + - id: 38 + transactions: [] + epoch: "2.3" + - id: 39 + transactions: [] + epoch: "2.3" + - id: 40 + transactions: [] + epoch: "2.3" + - id: 41 + transactions: [] + epoch: "2.3" + - id: 42 + transactions: [] + epoch: "2.3" + - id: 43 + transactions: [] + epoch: "2.3" + - id: 44 + transactions: [] + epoch: "2.3" + - id: 45 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -279,7 +405,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 4 + - id: 46 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -402,7 +528,130 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 5 + - id: 47 + transactions: [] + epoch: "2.4" + - id: 48 + transactions: [] + epoch: "2.4" + - id: 49 + transactions: [] + epoch: "2.4" + - id: 50 + transactions: [] + epoch: "2.4" + - id: 51 + transactions: [] + epoch: "2.4" + - id: 52 + transactions: [] + epoch: "2.4" + - id: 53 + transactions: [] + epoch: "2.4" + - id: 54 + transactions: [] + epoch: "2.4" + - id: 55 + transactions: [] + epoch: "2.4" + - id: 56 + transactions: [] + epoch: "2.4" + - id: 57 + transactions: [] + epoch: "2.4" + - id: 58 + transactions: [] + epoch: "2.4" + - id: 59 + transactions: [] + epoch: "2.4" + - id: 60 + transactions: [] + epoch: "2.4" + - id: 61 + transactions: [] + epoch: "2.4" + - id: 62 + transactions: [] + epoch: "2.4" + - id: 63 + transactions: [] + epoch: "2.4" + - id: 64 + transactions: [] + epoch: "2.4" + - id: 65 + transactions: [] + epoch: "2.4" + - id: 66 + transactions: [] + epoch: "2.4" + - id: 67 + transactions: [] + epoch: "2.4" + - id: 68 + transactions: [] + epoch: "2.4" + - id: 69 + transactions: [] + epoch: "2.4" + - id: 70 + transactions: [] + epoch: "2.4" + - id: 71 + transactions: [] + epoch: "2.4" + - id: 72 + transactions: [] + epoch: "2.4" + - id: 73 + transactions: [] + epoch: "2.4" + - id: 74 + transactions: [] + epoch: "2.4" + - id: 75 + transactions: [] + epoch: "2.4" + - id: 76 + transactions: [] + epoch: "2.4" + - id: 77 + transactions: [] + epoch: "2.4" + - id: 78 + transactions: [] + epoch: "2.4" + - id: 79 + transactions: [] + epoch: "2.4" + - id: 80 + transactions: [] + epoch: "2.4" + - id: 81 + transactions: [] + epoch: "2.4" + - id: 82 + transactions: [] + epoch: "2.4" + - id: 83 + transactions: [] + epoch: "2.4" + - id: 84 + transactions: [] + epoch: "2.4" + - id: 85 + transactions: [] + epoch: "2.4" + - id: 86 + transactions: [] + epoch: "2.4" + - id: 87 + transactions: [] + epoch: "2.4" + - id: 88 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -530,7 +779,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" clarity-version: 2 epoch: "2.5" - - id: 6 + - id: 89 transactions: - emulated-contract-publish: contract-name: lip004 @@ -638,3 +887,126 @@ plan: path: contracts/mocks/tests/mock-boot.clar clarity-version: 2 epoch: "2.5" + - id: 90 + transactions: [] + epoch: "2.5" + - id: 91 + transactions: [] + epoch: "2.5" + - id: 92 + transactions: [] + epoch: "2.5" + - id: 93 + transactions: [] + epoch: "2.5" + - id: 94 + transactions: [] + epoch: "2.5" + - id: 95 + transactions: [] + epoch: "2.5" + - id: 96 + transactions: [] + epoch: "2.5" + - id: 97 + transactions: [] + epoch: "2.5" + - id: 98 + transactions: [] + epoch: "2.5" + - id: 99 + transactions: [] + epoch: "2.5" + - id: 100 + transactions: [] + epoch: "2.5" + - id: 101 + transactions: [] + epoch: "2.5" + - id: 102 + transactions: [] + epoch: "2.5" + - id: 103 + transactions: [] + epoch: "2.5" + - id: 104 + transactions: [] + epoch: "2.5" + - id: 105 + transactions: [] + epoch: "2.5" + - id: 106 + transactions: [] + epoch: "2.5" + - id: 107 + transactions: [] + epoch: "2.5" + - id: 108 + transactions: [] + epoch: "2.5" + - id: 109 + transactions: [] + epoch: "2.5" + - id: 110 + transactions: [] + epoch: "2.5" + - id: 111 + transactions: [] + epoch: "2.5" + - id: 112 + transactions: [] + epoch: "2.5" + - id: 113 + transactions: [] + epoch: "2.5" + - id: 114 + transactions: [] + epoch: "2.5" + - id: 115 + transactions: [] + epoch: "2.5" + - id: 116 + transactions: [] + epoch: "2.5" + - id: 117 + transactions: [] + epoch: "2.5" + - id: 118 + transactions: [] + epoch: "2.5" + - id: 119 + transactions: [] + epoch: "2.5" + - id: 120 + transactions: [] + epoch: "2.5" + - id: 121 + transactions: [] + epoch: "2.5" + - id: 122 + transactions: [] + epoch: "2.5" + - id: 123 + transactions: [] + epoch: "2.5" + - id: 124 + transactions: [] + epoch: "2.5" + - id: 125 + transactions: [] + epoch: "2.5" + - id: 126 + transactions: [] + epoch: "2.5" + - id: 127 + transactions: [] + epoch: "2.5" + - id: 128 + transactions: [] + epoch: "2.5" + - id: 129 + transactions: [] + epoch: "2.5" + - id: 130 + transactions: [] + epoch: "2.5" diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index cc2a74d..ab2913c 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -48,10 +48,9 @@ describe('auto-alex-v3', () => { // test redeems tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_1), tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_3), tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_4), // test revoke redeem request - tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(4)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(3)], wallet_4), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); @@ -78,6 +77,12 @@ describe('auto-alex-v3', () => { expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); expect(response[2].result).toBeErr(Cl.uint(10017)); + if(cycle == 3){ + response = simnet.mineBlock([ + tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_3), + ]); + expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); + } } simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (redeem_cycle + 1) * 525 - simnet.blockHeight); @@ -100,15 +105,18 @@ describe('auto-alex-v3', () => { console.log(simnet.callReadOnlyFn(contracts.oldAlex, 'get-balance-fixed', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1)); console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-intrinsic', [], wallet_1)); console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(redeem_cycle)], wallet_1)); + console.log(simnet.callReadOnlyFn('auto-alex-v3', 'get-tokens-to-shares', [Cl.uint(1e8)], wallet_1)); response = simnet.mineBlock([ // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(3)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); console.log(response[0].events); console.log(response[1].events); - response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); + // response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); + expect(response[0].result).toBeErr(Cl.uint(10017)); + expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); response = simnet.mineBlock([ // auto-alex-v2 upgrade redeem works @@ -122,5 +130,13 @@ describe('auto-alex-v3', () => { tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10020)); + + simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (redeem_cycle + 3) * 525 - simnet.blockHeight); + response = simnet.mineBlock([ + // finalize redeem works + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), + ]); + console.log(response[0].events); + response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); }); }); \ No newline at end of file From 2ef1a6db46ce415c5201a99eaa507be884d51386 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Fri, 6 Sep 2024 21:22:00 +0800 Subject: [PATCH 3/9] working --- .../extensions/auto-alex-v3-endpoint.clar | 26 +- deployments/default.simnet-plan.yaml | 2284 ++++++++++++++--- tests/auto-alex-v3.test.ts | 168 +- 3 files changed, 2070 insertions(+), 408 deletions(-) diff --git a/contracts/extensions/auto-alex-v3-endpoint.clar b/contracts/extensions/auto-alex-v3-endpoint.clar index 7fbe5a1..c026555 100644 --- a/contracts/extensions/auto-alex-v3-endpoint.clar +++ b/contracts/extensions/auto-alex-v3-endpoint.clar @@ -118,13 +118,14 @@ (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) - (intrinsic (get-shares-to-tokens ONE_8))) + (intrinsic (get-shares-to-tokens ONE_8)) + (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)))) (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) - (asserts! (>= tokens redeeming) (err tokens)) + (asserts! (>= balance redeeming) (err balance)) (as-contract (try! (contract-call? .auto-alex-v3-registry set-staked-cycle reward-cycle true))) (as-contract (try! (contract-call? .auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) - (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens redeeming) }))) - (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens }}) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- balance redeeming) }))) + (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens, balance: balance }}) (ok true))) ;; claims alex for the reward-cycles and mint auto-alex-v3 @@ -193,7 +194,7 @@ (asserts! (not (is-redeem-paused)) err-paused) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) - (as-contract (unwrap! (contract-call? .auto-alex-v3 burn tokens .auto-alex-v3) (err balance))) + (as-contract (unwrap! (contract-call? .auto-alex-v3 burn tokens .auto-alex-v3) (err u1234))) (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) (print { notification: "finalize-redeem", payload: updated-request-details }) (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) @@ -232,9 +233,10 @@ ok-value (let ( (reward-cycle (+ (get current-cycle ok-value) cycles-to-stake)) - (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 - (div-down (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u32))))) - (returning (get to-return (get-staker-at-cycle reward-cycle))) + (redeeming (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle))) + ;; (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + ;; (div-down (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u32))))) + (returning (+ (get to-return (get-staker-at-cycle reward-cycle)) (get-staking-reward reward-cycle))) (staking (if (is-eq cycles-to-stake max-cycles) (get remaining ok-value) (if (> returning redeeming) @@ -246,16 +248,16 @@ (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) err-value previous-response)) -(define-private (get-reward-cycle (burn-height uint)) +(define-read-only (get-reward-cycle (burn-height uint)) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) -(define-private (get-staking-reward (reward-cycle uint)) +(define-read-only (get-staking-reward (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) -(define-private (get-staker-at-cycle (reward-cycle uint)) +(define-read-only (get-staker-at-cycle (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) -(define-private (get-user-id) +(define-read-only (get-user-id) (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id .auto-alex-v3))) (define-private (stake-tokens (amount-tokens uint) (lock-period uint)) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 0d55244..ae90cf5 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -156,6 +156,285 @@ plan: transactions: [] epoch: "2.1" - id: 6 + transactions: [] + epoch: "2.1" + - id: 7 + transactions: [] + epoch: "2.1" + - id: 8 + transactions: [] + epoch: "2.1" + - id: 9 + transactions: [] + epoch: "2.1" + - id: 10 + transactions: [] + epoch: "2.1" + - id: 11 + transactions: [] + epoch: "2.1" + - id: 12 + transactions: [] + epoch: "2.1" + - id: 13 + transactions: [] + epoch: "2.1" + - id: 14 + transactions: [] + epoch: "2.1" + - id: 15 + transactions: [] + epoch: "2.1" + - id: 16 + transactions: [] + epoch: "2.1" + - id: 17 + transactions: [] + epoch: "2.1" + - id: 18 + transactions: [] + epoch: "2.1" + - id: 19 + transactions: [] + epoch: "2.1" + - id: 20 + transactions: [] + epoch: "2.1" + - id: 21 + transactions: [] + epoch: "2.1" + - id: 22 + transactions: [] + epoch: "2.1" + - id: 23 + transactions: [] + epoch: "2.1" + - id: 24 + transactions: [] + epoch: "2.1" + - id: 25 + transactions: [] + epoch: "2.1" + - id: 26 + transactions: [] + epoch: "2.1" + - id: 27 + transactions: [] + epoch: "2.1" + - id: 28 + transactions: [] + epoch: "2.1" + - id: 29 + transactions: [] + epoch: "2.1" + - id: 30 + transactions: [] + epoch: "2.1" + - id: 31 + transactions: [] + epoch: "2.1" + - id: 32 + transactions: [] + epoch: "2.1" + - id: 33 + transactions: [] + epoch: "2.1" + - id: 34 + transactions: [] + epoch: "2.1" + - id: 35 + transactions: [] + epoch: "2.1" + - id: 36 + transactions: [] + epoch: "2.1" + - id: 37 + transactions: [] + epoch: "2.1" + - id: 38 + transactions: [] + epoch: "2.1" + - id: 39 + transactions: [] + epoch: "2.1" + - id: 40 + transactions: [] + epoch: "2.1" + - id: 41 + transactions: [] + epoch: "2.1" + - id: 42 + transactions: [] + epoch: "2.1" + - id: 43 + transactions: [] + epoch: "2.1" + - id: 44 + transactions: [] + epoch: "2.1" + - id: 45 + transactions: [] + epoch: "2.1" + - id: 46 + transactions: [] + epoch: "2.1" + - id: 47 + transactions: [] + epoch: "2.1" + - id: 48 + transactions: [] + epoch: "2.1" + - id: 49 + transactions: [] + epoch: "2.1" + - id: 50 + transactions: [] + epoch: "2.1" + - id: 51 + transactions: [] + epoch: "2.1" + - id: 52 + transactions: [] + epoch: "2.1" + - id: 53 + transactions: [] + epoch: "2.1" + - id: 54 + transactions: [] + epoch: "2.1" + - id: 55 + transactions: [] + epoch: "2.1" + - id: 56 + transactions: [] + epoch: "2.1" + - id: 57 + transactions: [] + epoch: "2.1" + - id: 58 + transactions: [] + epoch: "2.1" + - id: 59 + transactions: [] + epoch: "2.1" + - id: 60 + transactions: [] + epoch: "2.1" + - id: 61 + transactions: [] + epoch: "2.1" + - id: 62 + transactions: [] + epoch: "2.1" + - id: 63 + transactions: [] + epoch: "2.1" + - id: 64 + transactions: [] + epoch: "2.1" + - id: 65 + transactions: [] + epoch: "2.1" + - id: 66 + transactions: [] + epoch: "2.1" + - id: 67 + transactions: [] + epoch: "2.1" + - id: 68 + transactions: [] + epoch: "2.1" + - id: 69 + transactions: [] + epoch: "2.1" + - id: 70 + transactions: [] + epoch: "2.1" + - id: 71 + transactions: [] + epoch: "2.1" + - id: 72 + transactions: [] + epoch: "2.1" + - id: 73 + transactions: [] + epoch: "2.1" + - id: 74 + transactions: [] + epoch: "2.1" + - id: 75 + transactions: [] + epoch: "2.1" + - id: 76 + transactions: [] + epoch: "2.1" + - id: 77 + transactions: [] + epoch: "2.1" + - id: 78 + transactions: [] + epoch: "2.1" + - id: 79 + transactions: [] + epoch: "2.1" + - id: 80 + transactions: [] + epoch: "2.1" + - id: 81 + transactions: [] + epoch: "2.1" + - id: 82 + transactions: [] + epoch: "2.1" + - id: 83 + transactions: [] + epoch: "2.1" + - id: 84 + transactions: [] + epoch: "2.1" + - id: 85 + transactions: [] + epoch: "2.1" + - id: 86 + transactions: [] + epoch: "2.1" + - id: 87 + transactions: [] + epoch: "2.1" + - id: 88 + transactions: [] + epoch: "2.1" + - id: 89 + transactions: [] + epoch: "2.1" + - id: 90 + transactions: [] + epoch: "2.1" + - id: 91 + transactions: [] + epoch: "2.1" + - id: 92 + transactions: [] + epoch: "2.1" + - id: 93 + transactions: [] + epoch: "2.1" + - id: 94 + transactions: [] + epoch: "2.1" + - id: 95 + transactions: [] + epoch: "2.1" + - id: 96 + transactions: [] + epoch: "2.1" + - id: 97 + transactions: [] + epoch: "2.1" + - id: 98 + transactions: [] + epoch: "2.1" + - id: 99 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -163,62 +442,341 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 7 + - id: 100 transactions: [] epoch: "2.3" - - id: 8 + - id: 101 transactions: [] epoch: "2.3" - - id: 9 + - id: 102 transactions: [] epoch: "2.3" - - id: 10 + - id: 103 transactions: [] epoch: "2.3" - - id: 11 - transactions: - - emulated-contract-publish: - contract-name: extension-trait - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.extension-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lisa-dao - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-registry - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-registry.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: proxy-trait - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proxy-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: strategy-trait - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.strategy-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-vault - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: stx-transfer-proxy - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.stx-transfer-proxy.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: token-lqstx + - id: 104 + transactions: [] + epoch: "2.3" + - id: 105 + transactions: [] + epoch: "2.3" + - id: 106 + transactions: [] + epoch: "2.3" + - id: 107 + transactions: [] + epoch: "2.3" + - id: 108 + transactions: [] + epoch: "2.3" + - id: 109 + transactions: [] + epoch: "2.3" + - id: 110 + transactions: [] + epoch: "2.3" + - id: 111 + transactions: [] + epoch: "2.3" + - id: 112 + transactions: [] + epoch: "2.3" + - id: 113 + transactions: [] + epoch: "2.3" + - id: 114 + transactions: [] + epoch: "2.3" + - id: 115 + transactions: [] + epoch: "2.3" + - id: 116 + transactions: [] + epoch: "2.3" + - id: 117 + transactions: [] + epoch: "2.3" + - id: 118 + transactions: [] + epoch: "2.3" + - id: 119 + transactions: [] + epoch: "2.3" + - id: 120 + transactions: [] + epoch: "2.3" + - id: 121 + transactions: [] + epoch: "2.3" + - id: 122 + transactions: [] + epoch: "2.3" + - id: 123 + transactions: [] + epoch: "2.3" + - id: 124 + transactions: [] + epoch: "2.3" + - id: 125 + transactions: [] + epoch: "2.3" + - id: 126 + transactions: [] + epoch: "2.3" + - id: 127 + transactions: [] + epoch: "2.3" + - id: 128 + transactions: [] + epoch: "2.3" + - id: 129 + transactions: [] + epoch: "2.3" + - id: 130 + transactions: [] + epoch: "2.3" + - id: 131 + transactions: [] + epoch: "2.3" + - id: 132 + transactions: [] + epoch: "2.3" + - id: 133 + transactions: [] + epoch: "2.3" + - id: 134 + transactions: [] + epoch: "2.3" + - id: 135 + transactions: [] + epoch: "2.3" + - id: 136 + transactions: [] + epoch: "2.3" + - id: 137 + transactions: [] + epoch: "2.3" + - id: 138 + transactions: [] + epoch: "2.3" + - id: 139 + transactions: [] + epoch: "2.3" + - id: 140 + transactions: [] + epoch: "2.3" + - id: 141 + transactions: [] + epoch: "2.3" + - id: 142 + transactions: [] + epoch: "2.3" + - id: 143 + transactions: [] + epoch: "2.3" + - id: 144 + transactions: [] + epoch: "2.3" + - id: 145 + transactions: [] + epoch: "2.3" + - id: 146 + transactions: [] + epoch: "2.3" + - id: 147 + transactions: [] + epoch: "2.3" + - id: 148 + transactions: [] + epoch: "2.3" + - id: 149 + transactions: [] + epoch: "2.3" + - id: 150 + transactions: [] + epoch: "2.3" + - id: 151 + transactions: [] + epoch: "2.3" + - id: 152 + transactions: [] + epoch: "2.3" + - id: 153 + transactions: [] + epoch: "2.3" + - id: 154 + transactions: [] + epoch: "2.3" + - id: 155 + transactions: [] + epoch: "2.3" + - id: 156 + transactions: [] + epoch: "2.3" + - id: 157 + transactions: [] + epoch: "2.3" + - id: 158 + transactions: [] + epoch: "2.3" + - id: 159 + transactions: [] + epoch: "2.3" + - id: 160 + transactions: [] + epoch: "2.3" + - id: 161 + transactions: [] + epoch: "2.3" + - id: 162 + transactions: [] + epoch: "2.3" + - id: 163 + transactions: [] + epoch: "2.3" + - id: 164 + transactions: [] + epoch: "2.3" + - id: 165 + transactions: [] + epoch: "2.3" + - id: 166 + transactions: [] + epoch: "2.3" + - id: 167 + transactions: [] + epoch: "2.3" + - id: 168 + transactions: [] + epoch: "2.3" + - id: 169 + transactions: [] + epoch: "2.3" + - id: 170 + transactions: [] + epoch: "2.3" + - id: 171 + transactions: [] + epoch: "2.3" + - id: 172 + transactions: [] + epoch: "2.3" + - id: 173 + transactions: [] + epoch: "2.3" + - id: 174 + transactions: [] + epoch: "2.3" + - id: 175 + transactions: [] + epoch: "2.3" + - id: 176 + transactions: [] + epoch: "2.3" + - id: 177 + transactions: [] + epoch: "2.3" + - id: 178 + transactions: [] + epoch: "2.3" + - id: 179 + transactions: [] + epoch: "2.3" + - id: 180 + transactions: [] + epoch: "2.3" + - id: 181 + transactions: [] + epoch: "2.3" + - id: 182 + transactions: [] + epoch: "2.3" + - id: 183 + transactions: [] + epoch: "2.3" + - id: 184 + transactions: [] + epoch: "2.3" + - id: 185 + transactions: [] + epoch: "2.3" + - id: 186 + transactions: [] + epoch: "2.3" + - id: 187 + transactions: [] + epoch: "2.3" + - id: 188 + transactions: [] + epoch: "2.3" + - id: 189 + transactions: [] + epoch: "2.3" + - id: 190 + transactions: [] + epoch: "2.3" + - id: 191 + transactions: [] + epoch: "2.3" + - id: 192 + transactions: [] + epoch: "2.3" + - id: 193 + transactions: [] + epoch: "2.3" + - id: 194 + transactions: [] + epoch: "2.3" + - id: 195 + transactions: [] + epoch: "2.3" + - id: 196 + transactions: [] + epoch: "2.3" + - id: 197 + transactions: + - emulated-contract-publish: + contract-name: extension-trait + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.extension-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: proposal-trait + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lisa-dao + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-registry + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-registry.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: proxy-trait + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proxy-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: strategy-trait + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.strategy-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-vault + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: stx-transfer-proxy + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.stx-transfer-proxy.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-lqstx emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-lqstx.clar" clarity-version: 2 @@ -303,7 +861,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 12 + - id: 198 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -426,286 +984,1402 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 13 + - id: 199 transactions: [] epoch: "2.4" - - id: 14 + - id: 200 transactions: [] epoch: "2.4" - - id: 15 + - id: 201 transactions: [] epoch: "2.4" - - id: 16 + - id: 202 transactions: [] epoch: "2.4" - - id: 17 + - id: 203 + transactions: [] + epoch: "2.4" + - id: 204 + transactions: [] + epoch: "2.4" + - id: 205 + transactions: [] + epoch: "2.4" + - id: 206 + transactions: [] + epoch: "2.4" + - id: 207 + transactions: [] + epoch: "2.4" + - id: 208 + transactions: [] + epoch: "2.4" + - id: 209 + transactions: [] + epoch: "2.4" + - id: 210 + transactions: [] + epoch: "2.4" + - id: 211 + transactions: [] + epoch: "2.4" + - id: 212 + transactions: [] + epoch: "2.4" + - id: 213 + transactions: [] + epoch: "2.4" + - id: 214 + transactions: [] + epoch: "2.4" + - id: 215 + transactions: [] + epoch: "2.4" + - id: 216 + transactions: [] + epoch: "2.4" + - id: 217 + transactions: [] + epoch: "2.4" + - id: 218 + transactions: [] + epoch: "2.4" + - id: 219 + transactions: [] + epoch: "2.4" + - id: 220 + transactions: [] + epoch: "2.4" + - id: 221 + transactions: [] + epoch: "2.4" + - id: 222 + transactions: [] + epoch: "2.4" + - id: 223 + transactions: [] + epoch: "2.4" + - id: 224 + transactions: [] + epoch: "2.4" + - id: 225 + transactions: [] + epoch: "2.4" + - id: 226 + transactions: [] + epoch: "2.4" + - id: 227 + transactions: [] + epoch: "2.4" + - id: 228 + transactions: [] + epoch: "2.4" + - id: 229 + transactions: [] + epoch: "2.4" + - id: 230 + transactions: [] + epoch: "2.4" + - id: 231 + transactions: [] + epoch: "2.4" + - id: 232 + transactions: [] + epoch: "2.4" + - id: 233 + transactions: [] + epoch: "2.4" + - id: 234 + transactions: [] + epoch: "2.4" + - id: 235 + transactions: [] + epoch: "2.4" + - id: 236 + transactions: [] + epoch: "2.4" + - id: 237 + transactions: [] + epoch: "2.4" + - id: 238 + transactions: [] + epoch: "2.4" + - id: 239 + transactions: [] + epoch: "2.4" + - id: 240 + transactions: [] + epoch: "2.4" + - id: 241 + transactions: [] + epoch: "2.4" + - id: 242 + transactions: [] + epoch: "2.4" + - id: 243 + transactions: [] + epoch: "2.4" + - id: 244 + transactions: [] + epoch: "2.4" + - id: 245 + transactions: [] + epoch: "2.4" + - id: 246 + transactions: [] + epoch: "2.4" + - id: 247 + transactions: [] + epoch: "2.4" + - id: 248 + transactions: [] + epoch: "2.4" + - id: 249 + transactions: [] + epoch: "2.4" + - id: 250 + transactions: [] + epoch: "2.4" + - id: 251 + transactions: [] + epoch: "2.4" + - id: 252 + transactions: [] + epoch: "2.4" + - id: 253 + transactions: [] + epoch: "2.4" + - id: 254 + transactions: [] + epoch: "2.4" + - id: 255 + transactions: [] + epoch: "2.4" + - id: 256 + transactions: [] + epoch: "2.4" + - id: 257 + transactions: [] + epoch: "2.4" + - id: 258 + transactions: [] + epoch: "2.4" + - id: 259 + transactions: [] + epoch: "2.4" + - id: 260 + transactions: [] + epoch: "2.4" + - id: 261 + transactions: [] + epoch: "2.4" + - id: 262 + transactions: [] + epoch: "2.4" + - id: 263 + transactions: [] + epoch: "2.4" + - id: 264 + transactions: [] + epoch: "2.4" + - id: 265 + transactions: [] + epoch: "2.4" + - id: 266 + transactions: [] + epoch: "2.4" + - id: 267 + transactions: [] + epoch: "2.4" + - id: 268 + transactions: [] + epoch: "2.4" + - id: 269 + transactions: [] + epoch: "2.4" + - id: 270 + transactions: [] + epoch: "2.4" + - id: 271 + transactions: [] + epoch: "2.4" + - id: 272 + transactions: [] + epoch: "2.4" + - id: 273 + transactions: [] + epoch: "2.4" + - id: 274 + transactions: [] + epoch: "2.4" + - id: 275 + transactions: [] + epoch: "2.4" + - id: 276 + transactions: [] + epoch: "2.4" + - id: 277 + transactions: [] + epoch: "2.4" + - id: 278 + transactions: [] + epoch: "2.4" + - id: 279 + transactions: [] + epoch: "2.4" + - id: 280 + transactions: [] + epoch: "2.4" + - id: 281 + transactions: [] + epoch: "2.4" + - id: 282 + transactions: [] + epoch: "2.4" + - id: 283 + transactions: [] + epoch: "2.4" + - id: 284 + transactions: [] + epoch: "2.4" + - id: 285 + transactions: [] + epoch: "2.4" + - id: 286 + transactions: [] + epoch: "2.4" + - id: 287 + transactions: [] + epoch: "2.4" + - id: 288 + transactions: [] + epoch: "2.4" + - id: 289 + transactions: [] + epoch: "2.4" + - id: 290 + transactions: [] + epoch: "2.4" + - id: 291 + transactions: [] + epoch: "2.4" + - id: 292 + transactions: [] + epoch: "2.4" + - id: 293 + transactions: [] + epoch: "2.4" + - id: 294 + transactions: [] + epoch: "2.4" + - id: 295 + transactions: [] + epoch: "2.4" + - id: 296 + transactions: [] + epoch: "2.4" + - id: 297 + transactions: [] + epoch: "2.4" + - id: 298 + transactions: [] + epoch: "2.4" + - id: 299 + transactions: [] + epoch: "2.4" + - id: 300 + transactions: [] + epoch: "2.4" + - id: 301 + transactions: [] + epoch: "2.4" + - id: 302 + transactions: [] + epoch: "2.4" + - id: 303 + transactions: [] + epoch: "2.4" + - id: 304 + transactions: [] + epoch: "2.4" + - id: 305 + transactions: [] + epoch: "2.4" + - id: 306 + transactions: [] + epoch: "2.4" + - id: 307 + transactions: [] + epoch: "2.4" + - id: 308 + transactions: [] + epoch: "2.4" + - id: 309 + transactions: [] + epoch: "2.4" + - id: 310 + transactions: [] + epoch: "2.4" + - id: 311 + transactions: [] + epoch: "2.4" + - id: 312 + transactions: [] + epoch: "2.4" + - id: 313 + transactions: [] + epoch: "2.4" + - id: 314 + transactions: [] + epoch: "2.4" + - id: 315 + transactions: [] + epoch: "2.4" + - id: 316 + transactions: [] + epoch: "2.4" + - id: 317 + transactions: [] + epoch: "2.4" + - id: 318 + transactions: [] + epoch: "2.4" + - id: 319 + transactions: [] + epoch: "2.4" + - id: 320 + transactions: [] + epoch: "2.4" + - id: 321 + transactions: [] + epoch: "2.4" + - id: 322 + transactions: [] + epoch: "2.4" + - id: 323 + transactions: [] + epoch: "2.4" + - id: 324 + transactions: [] + epoch: "2.4" + - id: 325 + transactions: [] + epoch: "2.4" + - id: 326 + transactions: [] + epoch: "2.4" + - id: 327 + transactions: [] + epoch: "2.4" + - id: 328 + transactions: [] + epoch: "2.4" + - id: 329 + transactions: [] + epoch: "2.4" + - id: 330 + transactions: [] + epoch: "2.4" + - id: 331 + transactions: [] + epoch: "2.4" + - id: 332 + transactions: [] + epoch: "2.4" + - id: 333 + transactions: [] + epoch: "2.4" + - id: 334 + transactions: [] + epoch: "2.4" + - id: 335 + transactions: [] + epoch: "2.4" + - id: 336 + transactions: [] + epoch: "2.4" + - id: 337 + transactions: [] + epoch: "2.4" + - id: 338 + transactions: [] + epoch: "2.4" + - id: 339 + transactions: [] + epoch: "2.4" + - id: 340 + transactions: [] + epoch: "2.4" + - id: 341 + transactions: [] + epoch: "2.4" + - id: 342 + transactions: [] + epoch: "2.4" + - id: 343 + transactions: [] + epoch: "2.4" + - id: 344 + transactions: [] + epoch: "2.4" + - id: 345 + transactions: [] + epoch: "2.4" + - id: 346 + transactions: [] + epoch: "2.4" + - id: 347 + transactions: [] + epoch: "2.4" + - id: 348 + transactions: [] + epoch: "2.4" + - id: 349 + transactions: [] + epoch: "2.4" + - id: 350 + transactions: [] + epoch: "2.4" + - id: 351 + transactions: [] + epoch: "2.4" + - id: 352 + transactions: [] + epoch: "2.4" + - id: 353 + transactions: [] + epoch: "2.4" + - id: 354 + transactions: [] + epoch: "2.4" + - id: 355 + transactions: [] + epoch: "2.4" + - id: 356 + transactions: [] + epoch: "2.4" + - id: 357 + transactions: [] + epoch: "2.4" + - id: 358 + transactions: [] + epoch: "2.4" + - id: 359 + transactions: [] + epoch: "2.4" + - id: 360 + transactions: [] + epoch: "2.4" + - id: 361 + transactions: [] + epoch: "2.4" + - id: 362 + transactions: [] + epoch: "2.4" + - id: 363 + transactions: [] + epoch: "2.4" + - id: 364 + transactions: [] + epoch: "2.4" + - id: 365 + transactions: [] + epoch: "2.4" + - id: 366 + transactions: [] + epoch: "2.4" + - id: 367 + transactions: [] + epoch: "2.4" + - id: 368 + transactions: [] + epoch: "2.4" + - id: 369 + transactions: [] + epoch: "2.4" + - id: 370 + transactions: [] + epoch: "2.4" + - id: 371 + transactions: [] + epoch: "2.4" + - id: 372 + transactions: [] + epoch: "2.4" + - id: 373 + transactions: [] + epoch: "2.4" + - id: 374 + transactions: [] + epoch: "2.4" + - id: 375 + transactions: [] + epoch: "2.4" + - id: 376 + transactions: [] + epoch: "2.4" + - id: 377 + transactions: [] + epoch: "2.4" + - id: 378 + transactions: [] + epoch: "2.4" + - id: 379 + transactions: [] + epoch: "2.4" + - id: 380 + transactions: [] + epoch: "2.4" + - id: 381 + transactions: [] + epoch: "2.4" + - id: 382 + transactions: [] + epoch: "2.4" + - id: 383 + transactions: [] + epoch: "2.4" + - id: 384 + transactions: [] + epoch: "2.4" + - id: 385 + transactions: [] + epoch: "2.4" + - id: 386 + transactions: [] + epoch: "2.4" + - id: 387 + transactions: [] + epoch: "2.4" + - id: 388 + transactions: [] + epoch: "2.4" + - id: 389 + transactions: [] + epoch: "2.4" + - id: 390 + transactions: [] + epoch: "2.4" + - id: 391 + transactions: [] + epoch: "2.4" + - id: 392 + transactions: + - emulated-contract-publish: + contract-name: pox4-fast-pool-v3 + emulated-sender: SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP + path: "./.cache/requirements/SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member1 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member1.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member10 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member10.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member3 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member4 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member4.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member5 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member5.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member6 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member6.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member7 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member7.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member8 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member8.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member9 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member9.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: pox4-pools + emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX + path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member1 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member1.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member10 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member10.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member3 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member4 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member5 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member6 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member7 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member8 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member9 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint-v2-01 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-manager-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" + clarity-version: 2 + epoch: "2.5" + - id: 393 + transactions: + - emulated-contract-publish: + contract-name: lip004 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip005 + emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B + path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: extension-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: proposal-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: executor-dao + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-sip-010 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-alex + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-staking-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2-wl + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip006 + emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 + path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/alex-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-registry + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-registry.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-wrapped + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-wrapped.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: legacy-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/legacy-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip007 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip007.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip008 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip008.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip009 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip009.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip010 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip010.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mock-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/mock-boot.clar + clarity-version: 2 + epoch: "2.5" + - id: 394 + transactions: [] + epoch: "2.5" + - id: 395 + transactions: [] + epoch: "2.5" + - id: 396 + transactions: [] + epoch: "2.5" + - id: 397 + transactions: [] + epoch: "2.5" + - id: 398 + transactions: [] + epoch: "2.5" + - id: 399 + transactions: [] + epoch: "2.5" + - id: 400 + transactions: [] + epoch: "2.5" + - id: 401 + transactions: [] + epoch: "2.5" + - id: 402 + transactions: [] + epoch: "2.5" + - id: 403 + transactions: [] + epoch: "2.5" + - id: 404 + transactions: [] + epoch: "2.5" + - id: 405 + transactions: [] + epoch: "2.5" + - id: 406 + transactions: [] + epoch: "2.5" + - id: 407 + transactions: [] + epoch: "2.5" + - id: 408 + transactions: [] + epoch: "2.5" + - id: 409 + transactions: [] + epoch: "2.5" + - id: 410 + transactions: [] + epoch: "2.5" + - id: 411 + transactions: [] + epoch: "2.5" + - id: 412 + transactions: [] + epoch: "2.5" + - id: 413 + transactions: [] + epoch: "2.5" + - id: 414 + transactions: [] + epoch: "2.5" + - id: 415 + transactions: [] + epoch: "2.5" + - id: 416 + transactions: [] + epoch: "2.5" + - id: 417 + transactions: [] + epoch: "2.5" + - id: 418 + transactions: [] + epoch: "2.5" + - id: 419 + transactions: [] + epoch: "2.5" + - id: 420 + transactions: [] + epoch: "2.5" + - id: 421 + transactions: [] + epoch: "2.5" + - id: 422 + transactions: [] + epoch: "2.5" + - id: 423 + transactions: [] + epoch: "2.5" + - id: 424 + transactions: [] + epoch: "2.5" + - id: 425 + transactions: [] + epoch: "2.5" + - id: 426 + transactions: [] + epoch: "2.5" + - id: 427 + transactions: [] + epoch: "2.5" + - id: 428 + transactions: [] + epoch: "2.5" + - id: 429 + transactions: [] + epoch: "2.5" + - id: 430 + transactions: [] + epoch: "2.5" + - id: 431 + transactions: [] + epoch: "2.5" + - id: 432 + transactions: [] + epoch: "2.5" + - id: 433 + transactions: [] + epoch: "2.5" + - id: 434 + transactions: [] + epoch: "2.5" + - id: 435 + transactions: [] + epoch: "2.5" + - id: 436 + transactions: [] + epoch: "2.5" + - id: 437 + transactions: [] + epoch: "2.5" + - id: 438 + transactions: [] + epoch: "2.5" + - id: 439 + transactions: [] + epoch: "2.5" + - id: 440 + transactions: [] + epoch: "2.5" + - id: 441 + transactions: [] + epoch: "2.5" + - id: 442 + transactions: [] + epoch: "2.5" + - id: 443 + transactions: [] + epoch: "2.5" + - id: 444 + transactions: [] + epoch: "2.5" + - id: 445 + transactions: [] + epoch: "2.5" + - id: 446 + transactions: [] + epoch: "2.5" + - id: 447 + transactions: [] + epoch: "2.5" + - id: 448 + transactions: [] + epoch: "2.5" + - id: 449 + transactions: [] + epoch: "2.5" + - id: 450 + transactions: [] + epoch: "2.5" + - id: 451 + transactions: [] + epoch: "2.5" + - id: 452 + transactions: [] + epoch: "2.5" + - id: 453 + transactions: [] + epoch: "2.5" + - id: 454 + transactions: [] + epoch: "2.5" + - id: 455 + transactions: [] + epoch: "2.5" + - id: 456 + transactions: [] + epoch: "2.5" + - id: 457 + transactions: [] + epoch: "2.5" + - id: 458 + transactions: [] + epoch: "2.5" + - id: 459 + transactions: [] + epoch: "2.5" + - id: 460 + transactions: [] + epoch: "2.5" + - id: 461 + transactions: [] + epoch: "2.5" + - id: 462 + transactions: [] + epoch: "2.5" + - id: 463 + transactions: [] + epoch: "2.5" + - id: 464 + transactions: [] + epoch: "2.5" + - id: 465 + transactions: [] + epoch: "2.5" + - id: 466 + transactions: [] + epoch: "2.5" + - id: 467 + transactions: [] + epoch: "2.5" + - id: 468 + transactions: [] + epoch: "2.5" + - id: 469 + transactions: [] + epoch: "2.5" + - id: 470 + transactions: [] + epoch: "2.5" + - id: 471 + transactions: [] + epoch: "2.5" + - id: 472 + transactions: [] + epoch: "2.5" + - id: 473 + transactions: [] + epoch: "2.5" + - id: 474 + transactions: [] + epoch: "2.5" + - id: 475 + transactions: [] + epoch: "2.5" + - id: 476 + transactions: [] + epoch: "2.5" + - id: 477 + transactions: [] + epoch: "2.5" + - id: 478 + transactions: [] + epoch: "2.5" + - id: 479 + transactions: [] + epoch: "2.5" + - id: 480 + transactions: [] + epoch: "2.5" + - id: 481 + transactions: [] + epoch: "2.5" + - id: 482 + transactions: [] + epoch: "2.5" + - id: 483 + transactions: [] + epoch: "2.5" + - id: 484 + transactions: [] + epoch: "2.5" + - id: 485 + transactions: [] + epoch: "2.5" + - id: 486 + transactions: [] + epoch: "2.5" + - id: 487 + transactions: [] + epoch: "2.5" + - id: 488 + transactions: [] + epoch: "2.5" + - id: 489 + transactions: [] + epoch: "2.5" + - id: 490 + transactions: [] + epoch: "2.5" + - id: 491 + transactions: [] + epoch: "2.5" + - id: 492 + transactions: [] + epoch: "2.5" + - id: 493 + transactions: [] + epoch: "2.5" + - id: 494 + transactions: [] + epoch: "2.5" + - id: 495 + transactions: [] + epoch: "2.5" + - id: 496 + transactions: [] + epoch: "2.5" + - id: 497 + transactions: [] + epoch: "2.5" + - id: 498 + transactions: [] + epoch: "2.5" + - id: 499 + transactions: [] + epoch: "2.5" + - id: 500 + transactions: [] + epoch: "2.5" + - id: 501 + transactions: [] + epoch: "2.5" + - id: 502 + transactions: [] + epoch: "2.5" + - id: 503 + transactions: [] + epoch: "2.5" + - id: 504 + transactions: [] + epoch: "2.5" + - id: 505 + transactions: [] + epoch: "2.5" + - id: 506 + transactions: [] + epoch: "2.5" + - id: 507 + transactions: [] + epoch: "2.5" + - id: 508 + transactions: [] + epoch: "2.5" + - id: 509 + transactions: [] + epoch: "2.5" + - id: 510 + transactions: [] + epoch: "2.5" + - id: 511 + transactions: [] + epoch: "2.5" + - id: 512 + transactions: [] + epoch: "2.5" + - id: 513 + transactions: [] + epoch: "2.5" + - id: 514 + transactions: [] + epoch: "2.5" + - id: 515 + transactions: [] + epoch: "2.5" + - id: 516 + transactions: [] + epoch: "2.5" + - id: 517 + transactions: [] + epoch: "2.5" + - id: 518 + transactions: [] + epoch: "2.5" + - id: 519 + transactions: [] + epoch: "2.5" + - id: 520 + transactions: [] + epoch: "2.5" + - id: 521 + transactions: [] + epoch: "2.5" + - id: 522 + transactions: [] + epoch: "2.5" + - id: 523 + transactions: [] + epoch: "2.5" + - id: 524 + transactions: [] + epoch: "2.5" + - id: 525 + transactions: [] + epoch: "2.5" + - id: 526 + transactions: [] + epoch: "2.5" + - id: 527 + transactions: [] + epoch: "2.5" + - id: 528 + transactions: [] + epoch: "2.5" + - id: 529 + transactions: [] + epoch: "2.5" + - id: 530 + transactions: [] + epoch: "2.5" + - id: 531 + transactions: [] + epoch: "2.5" + - id: 532 + transactions: [] + epoch: "2.5" + - id: 533 + transactions: [] + epoch: "2.5" + - id: 534 + transactions: [] + epoch: "2.5" + - id: 535 + transactions: [] + epoch: "2.5" + - id: 536 + transactions: [] + epoch: "2.5" + - id: 537 + transactions: [] + epoch: "2.5" + - id: 538 + transactions: [] + epoch: "2.5" + - id: 539 + transactions: [] + epoch: "2.5" + - id: 540 + transactions: [] + epoch: "2.5" + - id: 541 + transactions: [] + epoch: "2.5" + - id: 542 + transactions: [] + epoch: "2.5" + - id: 543 + transactions: [] + epoch: "2.5" + - id: 544 + transactions: [] + epoch: "2.5" + - id: 545 + transactions: [] + epoch: "2.5" + - id: 546 + transactions: [] + epoch: "2.5" + - id: 547 + transactions: [] + epoch: "2.5" + - id: 548 + transactions: [] + epoch: "2.5" + - id: 549 + transactions: [] + epoch: "2.5" + - id: 550 + transactions: [] + epoch: "2.5" + - id: 551 + transactions: [] + epoch: "2.5" + - id: 552 + transactions: [] + epoch: "2.5" + - id: 553 + transactions: [] + epoch: "2.5" + - id: 554 + transactions: [] + epoch: "2.5" + - id: 555 + transactions: [] + epoch: "2.5" + - id: 556 + transactions: [] + epoch: "2.5" + - id: 557 + transactions: [] + epoch: "2.5" + - id: 558 + transactions: [] + epoch: "2.5" + - id: 559 + transactions: [] + epoch: "2.5" + - id: 560 + transactions: [] + epoch: "2.5" + - id: 561 + transactions: [] + epoch: "2.5" + - id: 562 + transactions: [] + epoch: "2.5" + - id: 563 + transactions: [] + epoch: "2.5" + - id: 564 + transactions: [] + epoch: "2.5" + - id: 565 + transactions: [] + epoch: "2.5" + - id: 566 + transactions: [] + epoch: "2.5" + - id: 567 + transactions: [] + epoch: "2.5" + - id: 568 + transactions: [] + epoch: "2.5" + - id: 569 + transactions: [] + epoch: "2.5" + - id: 570 + transactions: [] + epoch: "2.5" + - id: 571 + transactions: [] + epoch: "2.5" + - id: 572 + transactions: [] + epoch: "2.5" + - id: 573 + transactions: [] + epoch: "2.5" + - id: 574 + transactions: [] + epoch: "2.5" + - id: 575 transactions: [] - epoch: "2.4" - - id: 18 + epoch: "2.5" + - id: 576 transactions: [] - epoch: "2.4" - - id: 19 + epoch: "2.5" + - id: 577 transactions: [] - epoch: "2.4" - - id: 20 - transactions: - - emulated-contract-publish: - contract-name: pox4-fast-pool-v3 - emulated-sender: SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP - path: "./.cache/requirements/SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member1 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member1.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member10 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member10.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member3 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member4 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member4.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member5 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member5.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member6 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member6.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member7 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member7.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member8 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member8.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member9 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member9.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: pox4-pools - emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX - path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member1 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member1.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member10 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member10.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member3 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member4 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member5 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member6 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member7 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member8 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member9 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint-v2-01 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-manager-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" - clarity-version: 2 epoch: "2.5" - - id: 21 - transactions: - - emulated-contract-publish: - contract-name: lip004 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip005 - emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B - path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: extension-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: executor-dao - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: trait-sip-010 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: token-alex - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-staking-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2-wl - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip006 - emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 - path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/alex-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-registry - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-registry.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-endpoint - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/auto-alex-v3-endpoint.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-wrapped - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-wrapped.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: legacy-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/legacy-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip007 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip007.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip008 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip008.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip009 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip009.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip010 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip010.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: mock-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/mock-boot.clar - clarity-version: 2 + - id: 578 + transactions: [] epoch: "2.5" - - id: 22 + - id: 579 transactions: [] epoch: "2.5" - - id: 23 + - id: 580 transactions: [] epoch: "2.5" - - id: 24 + - id: 581 transactions: [] epoch: "2.5" - - id: 25 + - id: 582 transactions: [] epoch: "2.5" - - id: 26 + - id: 583 transactions: [] epoch: "2.5" - - id: 27 + - id: 584 transactions: [] epoch: "2.5" - - id: 28 + - id: 585 + transactions: [] + epoch: "2.5" + - id: 586 transactions: [] epoch: "2.5" diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index b6a6dbb..1cfea62 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -20,7 +20,7 @@ describe('auto-alex-v3', () => { const end_cycle = 32; const ACTIVATION_BLOCK = 20; - prepareALEX(); + prepareALEX(); if (simnet.blockHeight < ACTIVATION_BLOCK) { simnet.mineEmptyBlocks(ACTIVATION_BLOCK - simnet.blockHeight); @@ -32,117 +32,103 @@ describe('auto-alex-v3', () => { tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_1), tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_2), tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_3), - tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_4) - ]); - response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); - - // move a few (2) cycles - simnet.mineEmptyBlocks(ACTIVATION_BLOCK + 2 * 525 - simnet.blockHeight); - - response = simnet.mineBlock([ - // this fixes a minor bug in auto-alex-v2 that bounty must be greater than 0 - tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), - // rebase the lialex - // tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), - // upgrade legacy auto-alex-v2 to v3 - // tx.callPublicFn('auto-alex-v3-endpoint', 'upgrade', [Cl.uint(dx)], wallet_1), - // test redeems - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_1), - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_4), - // test revoke redeem request - tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(3)], wallet_4), + tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); - // console.log(`current block: ${simnet.blockHeight}`); - // console.log(`current cycle: ${simnet.callReadOnlyFn("SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2", "get-reward-cycle", [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value}`); - const redeem_cycle = end_cycle + 2; - for (let cycle = 2; cycle < redeem_cycle; cycle++) { + for (let cycle = 0; cycle < redeem_cycle + 10; cycle++) { simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (cycle + 1) * 525 - simnet.blockHeight); // console.log(`current block: ${simnet.blockHeight}`); // console.log(`current cycle: ${simnet.callReadOnlyFn("SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2", "get-reward-cycle", [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value}`); // console.log(`alex-vault bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-vault")], wallet_1).result.value.value}`); // console.log(`auto-alex-v2 bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2")], wallet_1).result.value.value}`); - // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); + // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); + + if (cycle > 1) { + console.log('cycle', cycle); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-user-id', [], wallet_1).result); + console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); + console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); + console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); + // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); + console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-staker-at-cycle', [Cl.uint(cycle)], wallet_1).result.data); + // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); + // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); + // console.log('balance', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); + // console.log('balance', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); + } + response = simnet.mineBlock([ tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), - tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), - // you cannot finalize redeem until end cycle - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer) ]); - - // console.log(response[0].events); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[2].result).toBeErr(Cl.uint(10017)); - if(cycle == 3){ + expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); + + if (cycle == 2) { response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_3), + // this fixes a minor bug in auto-alex-v2 that bounty must be greater than 0 + tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), + // rebase the lialex + // tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), + // upgrade legacy auto-alex-v2 to v3 + // tx.callPublicFn('auto-alex-v3-endpoint', 'upgrade', [Cl.uint(dx)], wallet_1), + // test redeems + tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_4), + // test revoke redeem request + tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(3)], wallet_4), ]); - expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); + response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); } - } - - simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (redeem_cycle + 1) * 525 - simnet.blockHeight); - // console.log(simnet.callReadOnlyFn(contracts.oldAlex, 'get-balance-fixed', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1)); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-intrinsic', [], wallet_1)); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(redeem_cycle - 1)], wallet_1)); + if (cycle >= 2 && cycle < redeem_cycle + 1) { + response = simnet.mineBlock([ + // you cannot finalize redeem until end cycle + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + ]); + expect(response[0].result).toBeErr(Cl.uint(10017)); + } - response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), - // you cannot revoke after end_cycle - tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(2)], wallet_3), - ]); - // console.log(response[0].events); - expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[1].result).toBeErr(Cl.uint(10019)); - - console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result); - console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-request-or-fail', [Cl.uint(3)], wallet_1).result); - console.log(simnet.callReadOnlyFn(contracts.oldAlex, 'get-balance-fixed', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1)); - console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-intrinsic', [], wallet_1)); - console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(redeem_cycle)], wallet_1)); - console.log(simnet.callReadOnlyFn('auto-alex-v3', 'get-tokens-to-shares', [Cl.uint(1e8)], wallet_1)); - - response = simnet.mineBlock([ - // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), - ]); - console.log(response[0].events); - console.log(response[1].events); - // response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); - expect(response[0].result).toBeErr(Cl.uint(10017)); - expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); - - response = simnet.mineBlock([ - // auto-alex-v2 upgrade redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(1)], wallet_1), - ]); - console.log(response[0].events); - response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); + if (cycle == 3) { + response = simnet.mineBlock([ + tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_3), + ]); + expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); + } - response = simnet.mineBlock([ - // what was already redeemded cannot be redeemed - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), - ]); - expect(response[0].result).toBeErr(Cl.uint(10020)); + if (cycle == redeem_cycle + 1) { + response = simnet.mineBlock([ + // you cannot revoke after end_cycle + tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(2)], wallet_3), + // cannot finalize yet + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), + // finalize redeem works + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(1)], wallet_1), + // cannot finalize again + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + ]); + expect(response[0].result).toBeErr(Cl.uint(10019)); + expect(response[1].result).toBeErr(Cl.uint(10017)); + expect(response[2].result).toHaveClarityType(ClarityType.ResponseOk); + expect(response[3].result).toHaveClarityType(ClarityType.ResponseOk); + expect(response[4].result).toBeErr(Cl.uint(10020)); + } - simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (redeem_cycle + 2) * 525 - simnet.blockHeight); - response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), - ]); + if (cycle == redeem_cycle + 2) { + response = simnet.mineBlock([ + // finalize redeem works + tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), + ]); + response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); + } + } - simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (redeem_cycle + 3) * 525 - simnet.blockHeight); - response = simnet.mineBlock([ - // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), - ]); - console.log(response[0].events); - response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); }); }); \ No newline at end of file From 68da41572b09c5b9fbb299e7cc3376a0d22e71d1 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Fri, 6 Sep 2024 22:36:04 +0800 Subject: [PATCH 4/9] auto-alex-v3-endpoint-v2 --- Clarinet.toml | 4 + .../extensions/auto-alex-v3-endpoint-v2.clar | 285 +++ .../extensions/auto-alex-v3-endpoint.clar | 116 +- .../auto-whitelist-mint-helper.clar | 2 +- contracts/extensions/lqstx-mint-endpoint.clar | 2 +- contracts/mocks/tests/mock-boot.clar | 6 +- .../public-pools/fastpool-member.clar | 4 +- .../public-pools/xverse-member.clar | 4 +- deployments/default.simnet-plan.yaml | 2221 ++--------------- tests/auto-alex-v3.test.ts | 58 +- 10 files changed, 591 insertions(+), 2111 deletions(-) create mode 100644 contracts/extensions/auto-alex-v3-endpoint-v2.clar diff --git a/Clarinet.toml b/Clarinet.toml index 4bd4fce..496247a 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -85,4 +85,8 @@ epoch = 2.5 [contracts.lip009] path = "contracts/proposals/lip009.clar" +epoch = 2.5 + +[contracts.auto-alex-v3-endpoint-v2] +path = "contracts/extensions/auto-alex-v3-endpoint-v2.clar" epoch = 2.5 \ No newline at end of file diff --git a/contracts/extensions/auto-alex-v3-endpoint-v2.clar b/contracts/extensions/auto-alex-v3-endpoint-v2.clar new file mode 100644 index 0000000..9f93be5 --- /dev/null +++ b/contracts/extensions/auto-alex-v3-endpoint-v2.clar @@ -0,0 +1,285 @@ +;; SPDX-License-Identifier: BUSL-1.1 + +;; -- autoALEX creation/staking/redemption + +;; constants +;; +(define-constant err-unauthorised (err u1000)) +(define-constant err-invalid-liquidity (err u2003)) +(define-constant err-not-activated (err u2043)) +(define-constant err-paused (err u2046)) +(define-constant err-staking-not-available (err u10015)) +(define-constant err-reward-cycle-not-completed (err u10017)) +(define-constant err-claim-and-stake (err u10018)) +(define-constant err-no-redeem-revoke (err u10019)) +(define-constant err-request-finalized-or-revoked (err u10020)) +(define-constant err-redeem-imbalance (err u10021)) +(define-constant err-end-cycle-v2 (err u10022)) + +(define-constant ONE_8 u100000000) +(define-constant REWARD-CYCLE-INDEXES (list u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32)) + +(define-constant PENDING 0x00) +(define-constant FINALIZED 0x01) +(define-constant REVOKED 0x02) + +;; data maps and vars +;; + +(define-data-var create-paused bool true) +(define-data-var redeem-paused bool true) + +(define-constant max-cycles u32) + +;; read-only calls + +(define-read-only (is-dao-or-extension) + (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised))) + +(define-read-only (get-start-cycle) + (contract-call? .auto-alex-v3-registry get-start-cycle)) + +(define-read-only (is-cycle-staked (reward-cycle uint)) + (contract-call? .auto-alex-v3-registry is-cycle-staked reward-cycle)) + +(define-read-only (get-shares-to-tokens-per-cycle-or-default (reward-cycle uint)) + (contract-call? .auto-alex-v3-registry get-shares-to-tokens-per-cycle-or-default reward-cycle)) + +(define-read-only (get-redeem-shares-per-cycle-or-default (reward-cycle uint)) + (contract-call? .auto-alex-v3-registry get-redeem-shares-per-cycle-or-default reward-cycle)) + +(define-read-only (get-redeem-request-or-fail (request-id uint)) + (contract-call? .auto-alex-v3-registry get-redeem-request-or-fail request-id)) + +(define-read-only (is-create-paused) + (var-get create-paused)) + +(define-read-only (is-redeem-paused) + (var-get redeem-paused)) + +;; @desc get the next capital base of the vault +;; @desc next-base = principal to be staked at the next cycle +;; @desc + principal to be claimed at the next cycle and staked for the following cycle +;; @desc + reward to be claimed at the next cycle and staked for the following cycle +;; @desc + balance of ALEX in the contract +;; @desc + intrinsic of autoALEXv2 in the contract +(define-read-only (get-next-base) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (auto-alex-v2-bal (unwrap-panic (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-balance .auto-alex-v3)))) + (asserts! (or (is-eq current-cycle (get-start-cycle)) (is-cycle-staked (- current-cycle u1))) err-claim-and-stake) + (ok + (+ + (get amount-staked (as-contract (get-staker-at-cycle (+ current-cycle u1)))) + (get to-return (as-contract (get-staker-at-cycle current-cycle))) + (as-contract (get-staking-reward current-cycle)) + (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)) + (if (is-eq auto-alex-v2-bal u0) u0 (mul-down auto-alex-v2-bal (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))))))) + +;; @desc get the intrinsic value of auto-alex-v3 +;; @desc intrinsic = next capital base of the vault / total supply of auto-alex-v3 +(define-read-only (get-intrinsic) + (get-shares-to-tokens ONE_8)) + +;; governance calls + +(define-public (pause-create (pause bool)) + (begin + (try! (is-dao-or-extension)) + (ok (var-set create-paused pause)))) + +(define-public (pause-redeem (pause bool)) + (begin + (try! (is-dao-or-extension)) + (ok (var-set redeem-paused pause)))) + +;; public functions +;; + +(define-public (rebase) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (start-cycle (get-start-cycle)) + (check-start-cycle (asserts! (<= start-cycle current-cycle) err-not-activated))) + (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) + (as-contract (try! (contract-call? .auto-alex-v3 set-reserve (try! (get-next-base))))) + (ok current-cycle))) + +;; @desc triggers external event that claims all that's available and stake for another 32 cycles +;; @desc this can be triggered by anyone +;; @param reward-cycle the target cycle to claim (and stake for current cycle + 32 cycles). reward-cycle must be < current cycle. +(define-public (claim-and-stake (reward-cycle uint)) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (end-cycle-v2 (get-end-cycle-v2)) + ;; claim all that's available to claim for the reward-cycle + (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) + (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) + (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) + (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) + (intrinsic (get-shares-to-tokens ONE_8)) + (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)))) + (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) + (asserts! (>= balance redeeming) err-redeem-imbalance) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-staked-cycle reward-cycle true))) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- balance redeeming) }))) + (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens, balance: balance }}) + (ok true))) + +;; claims alex for the reward-cycles and mint auto-alex-v3 +(define-public (claim-and-mint (reward-cycles (list 200 uint))) + (let ( + (claimed (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 claim-staking-reward-many reward-cycles)))) + (try! (add-to-position (try! (fold sum-claimed claimed (ok u0))))) + (ok claimed))) + +;; @desc add to position +;; @desc transfers dx to vault, stake them for 32 cycles and mints auto-alex-v3, the number of which is determined as % of total supply / next base +;; @param dx the number of $ALEX in 8-digit fixed point notation +(define-public (add-to-position (dx uint)) + (let ( + (current-cycle (try! (rebase))) + (sender tx-sender)) + (asserts! (> dx u0) err-invalid-liquidity) + (asserts! (not (is-create-paused)) err-paused) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer dx sender .auto-alex-v3 none)) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: dx }))) + (as-contract (try! (contract-call? .auto-alex-v3 mint dx sender))) + (print { notification: "position-added", payload: { new-supply: dx, sender: sender } }) + (try! (rebase)) + (ok true))) + +(define-public (upgrade (dx uint)) + (let ( + (end-cycle-v2 (get-end-cycle-v2)) + (current-cycle (try! (rebase))) + (intrinsic-dx (mul-down dx (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))) + (sender tx-sender)) + (asserts! (> intrinsic-dx u0) err-invalid-liquidity) + (asserts! (not (is-create-paused)) err-paused) + (asserts! (< end-cycle-v2 (+ current-cycle max-cycles)) err-end-cycle-v2) ;; auto-alex-v2 is not configured correctly + (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 transfer dx sender .auto-alex-v3 none)) + (and (< end-cycle-v2 current-cycle) (begin (as-contract (try! (reduce-position-v2))) true)) + (as-contract (try! (contract-call? .auto-alex-v3 mint intrinsic-dx sender))) + (print { notification: "upgrade-position-added", payload: { new-supply: intrinsic-dx, sender: sender } }) + (try! (rebase)) + (ok true))) + +(define-public (request-redeem (amount uint)) + (let ( + (current-cycle (try! (rebase))) + (redeem-cycle (+ current-cycle max-cycles)) + (request-details { requested-by: tx-sender, amount: amount, redeem-cycle: redeem-cycle, status: PENDING }) + (request-id (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request u0 request-details))))) + (asserts! (not (is-redeem-paused)) err-paused) + (try! (contract-call? .auto-alex-v3 transfer amount tx-sender .auto-alex-v3 none)) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (+ (get-redeem-shares-per-cycle-or-default redeem-cycle) amount)))) + (print { notification: "redeem-request", payload: request-details }) + (try! (rebase)) + (ok request-id))) + +(define-public (finalize-redeem (request-id uint)) + (let ( + (request-details (try! (get-redeem-request-or-fail request-id))) + (redeem-cycle (get redeem-cycle request-details)) + (check-claim-and-stake (and (not (is-cycle-staked redeem-cycle)) (try! (claim-and-stake redeem-cycle)))) + (current-cycle (try! (rebase))) + (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u32))) + (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) + (updated-request-details (merge request-details { status: FINALIZED }))) + (asserts! (not (is-redeem-paused)) err-paused) + (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) + + (as-contract (try! (contract-call? .auto-alex-v3 burn tokens .auto-alex-v3))) + (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) + (print { notification: "finalize-redeem", payload: updated-request-details }) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (try! (rebase)) + (ok true))) + +(define-public (revoke-redeem (request-id uint)) + (let ( + (request-details (try! (get-redeem-request-or-fail request-id))) + (current-cycle (try! (rebase))) + (redeem-cycle (get redeem-cycle request-details)) + (check-cycle (asserts! (> redeem-cycle current-cycle) err-no-redeem-revoke)) + (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- current-cycle u1))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) + (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) + (updated-request-details (merge request-details { status: REVOKED }))) + (asserts! (is-eq tx-sender (get requested-by request-details)) err-unauthorised) + (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) + (as-contract (try! (contract-call? .auto-alex-v3 transfer-token .auto-alex-v3 tokens (get requested-by request-details)))) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (- (get-redeem-shares-per-cycle-or-default redeem-cycle) (get amount request-details))))) + (print { notification: "revoke-redeem", payload: updated-request-details }) + (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (try! (rebase)) + (ok true))) + +;; private functions +;; + +(define-private (sum-claimed (claimed-response (response (tuple (entitled-token uint) (to-return uint)) uint)) (prior (response uint uint))) + (match prior + ok-value (match claimed-response claimed (ok (+ ok-value (get to-return claimed) (get entitled-token claimed))) err (err err)) + err-value (err err-value))) + +(define-private (stake-tokens-iter (cycles-to-stake uint) (previous-response (response { current-cycle: uint, remaining: uint } uint))) + (match previous-response + ok-value + (let ( + (reward-cycle (+ (get current-cycle ok-value) cycles-to-stake)) + (redeeming (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle))) + (returning (+ (get to-return (get-staker-at-cycle reward-cycle)) (get-staking-reward reward-cycle))) + (staking (if (is-eq cycles-to-stake max-cycles) + (get remaining ok-value) + (if (> returning redeeming) + u0 + (if (> (get remaining ok-value) (- redeeming returning)) + (- redeeming returning) + (get remaining ok-value)))))) + (and (> staking u0) (as-contract (try! (stake-tokens staking cycles-to-stake)))) + (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) + err-value previous-response)) + +(define-read-only (get-reward-cycle (burn-height uint)) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) + +(define-read-only (get-staking-reward (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) + +(define-read-only (get-staker-at-cycle (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) + +(define-read-only (get-user-id) + (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id .auto-alex-v3))) + +(define-private (stake-tokens (amount-tokens uint) (lock-period uint)) + (contract-call? .auto-alex-v3 stake-tokens amount-tokens lock-period)) + +(define-private (claim-staking-reward (reward-cycle uint)) + (contract-call? .auto-alex-v3 claim-staking-reward reward-cycle)) + +(define-private (reduce-position-v2) + (contract-call? .auto-alex-v3 reduce-position-v2)) + +(define-private (get-shares-to-tokens (dx uint)) + (contract-call? .auto-alex-v3 get-shares-to-tokens dx)) + +(define-private (claim-and-stake-v2 (reward-cycle uint)) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 claim-and-stake reward-cycle)) + +(define-private (get-end-cycle-v2) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-end-cycle)) + +(define-private (mul-down (a uint) (b uint)) + (/ (* a b) ONE_8)) + +(define-private (div-down (a uint) (b uint)) + (if (is-eq a u0) u0 (/ (* a ONE_8) b))) + +(define-private (max (a uint) (b uint)) (if (> a b) a b)) + diff --git a/contracts/extensions/auto-alex-v3-endpoint.clar b/contracts/extensions/auto-alex-v3-endpoint.clar index c026555..5c8f87b 100644 --- a/contracts/extensions/auto-alex-v3-endpoint.clar +++ b/contracts/extensions/auto-alex-v3-endpoint.clar @@ -1,9 +1,3 @@ -;; SPDX-License-Identifier: BUSL-1.1 - -;; -- autoALEX creation/staking/redemption - -;; constants -;; (define-constant err-unauthorised (err u1000)) (define-constant err-invalid-liquidity (err u2003)) (define-constant err-not-activated (err u2043)) @@ -15,54 +9,30 @@ (define-constant err-request-finalized-or-revoked (err u10020)) (define-constant err-redeem-imbalance (err u10021)) (define-constant err-end-cycle-v2 (err u10022)) - (define-constant ONE_8 u100000000) (define-constant REWARD-CYCLE-INDEXES (list u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32)) - (define-constant PENDING 0x00) (define-constant FINALIZED 0x01) (define-constant REVOKED 0x02) - -;; data maps and vars -;; - (define-data-var create-paused bool true) (define-data-var redeem-paused bool true) - (define-constant max-cycles u32) - -;; read-only calls - (define-read-only (is-dao-or-extension) (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised))) - (define-read-only (get-start-cycle) (contract-call? .auto-alex-v3-registry get-start-cycle)) - (define-read-only (is-cycle-staked (reward-cycle uint)) (contract-call? .auto-alex-v3-registry is-cycle-staked reward-cycle)) - (define-read-only (get-shares-to-tokens-per-cycle-or-default (reward-cycle uint)) (contract-call? .auto-alex-v3-registry get-shares-to-tokens-per-cycle-or-default reward-cycle)) - (define-read-only (get-redeem-shares-per-cycle-or-default (reward-cycle uint)) (contract-call? .auto-alex-v3-registry get-redeem-shares-per-cycle-or-default reward-cycle)) - (define-read-only (get-redeem-request-or-fail (request-id uint)) (contract-call? .auto-alex-v3-registry get-redeem-request-or-fail request-id)) - (define-read-only (is-create-paused) (var-get create-paused)) - (define-read-only (is-redeem-paused) (var-get redeem-paused)) - -;; @desc get the next capital base of the vault -;; @desc next-base = principal to be staked at the next cycle -;; @desc + principal to be claimed at the next cycle and staked for the following cycle -;; @desc + reward to be claimed at the next cycle and staked for the following cycle -;; @desc + balance of ALEX in the contract -;; @desc + intrinsic of autoALEXv2 in the contract (define-read-only (get-next-base) (let ( (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) @@ -75,27 +45,16 @@ (as-contract (get-staking-reward current-cycle)) (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)) (if (is-eq auto-alex-v2-bal u0) u0 (mul-down auto-alex-v2-bal (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))))))) - -;; @desc get the intrinsic value of auto-alex-v3 -;; @desc intrinsic = next capital base of the vault / total supply of auto-alex-v3 (define-read-only (get-intrinsic) (get-shares-to-tokens ONE_8)) - -;; governance calls - (define-public (pause-create (pause bool)) (begin (try! (is-dao-or-extension)) (ok (var-set create-paused pause)))) - (define-public (pause-redeem (pause bool)) (begin (try! (is-dao-or-extension)) (ok (var-set redeem-paused pause)))) - -;; public functions -;; - (define-public (rebase) (let ( (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) @@ -104,10 +63,6 @@ (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) (as-contract (try! (contract-call? .auto-alex-v3 set-reserve (try! (get-next-base))))) (ok current-cycle))) - -;; @desc triggers external event that claims all that's available and stake for another 32 cycles -;; @desc this can be triggered by anyone -;; @param reward-cycle the target cycle to claim (and stake for current cycle + 32 cycles). reward-cycle must be < current cycle. (define-public (claim-and-stake (reward-cycle uint)) (let ( (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) @@ -116,28 +71,21 @@ (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) - (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 - (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) - (intrinsic (get-shares-to-tokens ONE_8)) - (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)))) + (previous-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1))) + (redeeming (mul-down previous-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle))) + (intrinsic (get-shares-to-tokens ONE_8))) (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) - (asserts! (>= balance redeeming) (err balance)) + (asserts! (>= tokens redeeming) err-redeem-imbalance) (as-contract (try! (contract-call? .auto-alex-v3-registry set-staked-cycle reward-cycle true))) (as-contract (try! (contract-call? .auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) - (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- balance redeeming) }))) - (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens, balance: balance }}) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens redeeming) }))) + (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens }}) (ok true))) - -;; claims alex for the reward-cycles and mint auto-alex-v3 (define-public (claim-and-mint (reward-cycles (list 200 uint))) (let ( (claimed (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 claim-staking-reward-many reward-cycles)))) (try! (add-to-position (try! (fold sum-claimed claimed (ok u0))))) (ok claimed))) - -;; @desc add to position -;; @desc transfers dx to vault, stake them for 32 cycles and mints auto-alex-v3, the number of which is determined as % of total supply / next base -;; @param dx the number of $ALEX in 8-digit fixed point notation (define-public (add-to-position (dx uint)) (let ( (current-cycle (try! (rebase))) @@ -150,7 +98,6 @@ (print { notification: "position-added", payload: { new-supply: dx, sender: sender } }) (try! (rebase)) (ok true))) - (define-public (upgrade (dx uint)) (let ( (end-cycle-v2 (get-end-cycle-v2)) @@ -166,7 +113,6 @@ (print { notification: "upgrade-position-added", payload: { new-supply: intrinsic-dx, sender: sender } }) (try! (rebase)) (ok true))) - (define-public (request-redeem (amount uint)) (let ( (current-cycle (try! (rebase))) @@ -179,37 +125,29 @@ (print { notification: "redeem-request", payload: request-details }) (try! (rebase)) (ok request-id))) - (define-public (finalize-redeem (request-id uint)) (let ( (request-details (try! (get-redeem-request-or-fail request-id))) (redeem-cycle (get redeem-cycle request-details)) (check-claim-and-stake (and (not (is-cycle-staked redeem-cycle)) (try! (claim-and-stake redeem-cycle)))) (current-cycle (try! (rebase))) - (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1))) - (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) - (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) - (updated-request-details (merge request-details { status: FINALIZED })) - (balance (unwrap-panic (contract-call? .auto-alex-v3 get-balance .auto-alex-v3)))) + (tokens (mul-down (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1)) (get amount request-details))) + (updated-request-details (merge request-details { status: FINALIZED }))) (asserts! (not (is-redeem-paused)) err-paused) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) - - (as-contract (unwrap! (contract-call? .auto-alex-v3 burn tokens .auto-alex-v3) (err u1234))) + (as-contract (try! (contract-call? .auto-alex-v3 burn (get amount request-details) .auto-alex-v3))) (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) (print { notification: "finalize-redeem", payload: updated-request-details }) (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) (ok true))) - (define-public (revoke-redeem (request-id uint)) (let ( (request-details (try! (get-redeem-request-or-fail request-id))) (current-cycle (try! (rebase))) (redeem-cycle (get redeem-cycle request-details)) (check-cycle (asserts! (> redeem-cycle current-cycle) err-no-redeem-revoke)) - (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- current-cycle u1))) - (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) - (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) + (tokens (mul-down (get-shares-to-tokens-per-cycle-or-default (- current-cycle u1)) (get amount request-details))) (updated-request-details (merge request-details { status: REVOKED }))) (asserts! (is-eq tx-sender (get requested-by request-details)) err-unauthorised) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) @@ -219,24 +157,17 @@ (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) (ok true))) - -;; private functions -;; - (define-private (sum-claimed (claimed-response (response (tuple (entitled-token uint) (to-return uint)) uint)) (prior (response uint uint))) (match prior ok-value (match claimed-response claimed (ok (+ ok-value (get to-return claimed) (get entitled-token claimed))) err (err err)) err-value (err err-value))) - (define-private (stake-tokens-iter (cycles-to-stake uint) (previous-response (response { current-cycle: uint, remaining: uint } uint))) (match previous-response ok-value (let ( (reward-cycle (+ (get current-cycle ok-value) cycles-to-stake)) (redeeming (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle))) - ;; (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 - ;; (div-down (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u32))))) - (returning (+ (get to-return (get-staker-at-cycle reward-cycle)) (get-staking-reward reward-cycle))) + (returning (get to-return (get-staker-at-cycle reward-cycle))) (staking (if (is-eq cycles-to-stake max-cycles) (get remaining ok-value) (if (> returning redeeming) @@ -247,42 +178,27 @@ (and (> staking u0) (as-contract (try! (stake-tokens staking cycles-to-stake)))) (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) err-value previous-response)) - -(define-read-only (get-reward-cycle (burn-height uint)) +(define-private (get-reward-cycle (burn-height uint)) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) - -(define-read-only (get-staking-reward (reward-cycle uint)) +(define-private (get-staking-reward (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) - -(define-read-only (get-staker-at-cycle (reward-cycle uint)) +(define-private (get-staker-at-cycle (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) - -(define-read-only (get-user-id) +(define-private (get-user-id) (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id .auto-alex-v3))) - (define-private (stake-tokens (amount-tokens uint) (lock-period uint)) (contract-call? .auto-alex-v3 stake-tokens amount-tokens lock-period)) - (define-private (claim-staking-reward (reward-cycle uint)) (contract-call? .auto-alex-v3 claim-staking-reward reward-cycle)) - (define-private (reduce-position-v2) (contract-call? .auto-alex-v3 reduce-position-v2)) - (define-private (get-shares-to-tokens (dx uint)) (contract-call? .auto-alex-v3 get-shares-to-tokens dx)) - (define-private (claim-and-stake-v2 (reward-cycle uint)) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 claim-and-stake reward-cycle)) - (define-private (get-end-cycle-v2) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-end-cycle)) - (define-private (mul-down (a uint) (b uint)) (/ (* a b) ONE_8)) - (define-private (div-down (a uint) (b uint)) - (if (is-eq a u0) u0 (/ (* a ONE_8) b))) - -(define-private (max (a uint) (b uint)) (if (> a b) a b)) - + (if (is-eq a u0) u0 (/ (* a ONE_8) b))) \ No newline at end of file diff --git a/contracts/extensions/auto-whitelist-mint-helper.clar b/contracts/extensions/auto-whitelist-mint-helper.clar index b01556d..0a46bce 100644 --- a/contracts/extensions/auto-whitelist-mint-helper.clar +++ b/contracts/extensions/auto-whitelist-mint-helper.clar @@ -22,7 +22,7 @@ (define-read-only (was-stacking-in-eligible-pool-height (who principal) (height uint)) (at-block (unwrap! (get-block-info? id-header-hash height) false) - (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-stacker-info who) false))) + (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-stacker-info who) false))) ) ) diff --git a/contracts/extensions/lqstx-mint-endpoint.clar b/contracts/extensions/lqstx-mint-endpoint.clar index 61e4c88..694007f 100644 --- a/contracts/extensions/lqstx-mint-endpoint.clar +++ b/contracts/extensions/lqstx-mint-endpoint.clar @@ -29,7 +29,7 @@ ;; __IF_MAINNET__ (define-data-var request-cutoff uint u300) ;; request must be made 300 blocks before prepare stage starts -(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-4 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-4 get-pox-info))) (define-constant activation-burn-block (get first-burnchain-block-height pox-info)) (define-constant reward-cycle-length (get reward-cycle-length pox-info)) (define-constant prepare-cycle-length (get prepare-cycle-length pox-info)) diff --git a/contracts/mocks/tests/mock-boot.clar b/contracts/mocks/tests/mock-boot.clar index 6ec955d..c72b13d 100644 --- a/contracts/mocks/tests/mock-boot.clar +++ b/contracts/mocks/tests/mock-boot.clar @@ -6,12 +6,12 @@ (define-public (execute (sender principal)) (begin (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extensions (list - { extension: .auto-alex-v3-endpoint, enabled: true } + { extension: .auto-alex-v3-endpoint-v2, enabled: true } ))) (try! (contract-call? .auto-alex-v3-registry set-start-cycle u0)) - (try! (contract-call? .auto-alex-v3-endpoint pause-create false)) - (try! (contract-call? .auto-alex-v3-endpoint pause-redeem false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-create false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-redeem false)) (ok true) ) diff --git a/contracts/strategies/public-pools/fastpool-member.clar b/contracts/strategies/public-pools/fastpool-member.clar index 98eb7e0..660b7fd 100644 --- a/contracts/strategies/public-pools/fastpool-member.clar +++ b/contracts/strategies/public-pools/fastpool-member.clar @@ -4,7 +4,7 @@ (define-constant err-unauthorised (err u5000)) -(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) (define-read-only (is-strategy-caller) (ok (asserts! (is-eq contract-caller .public-pools-strategy-v2) err-unauthorised)) @@ -21,7 +21,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/contracts/strategies/public-pools/xverse-member.clar b/contracts/strategies/public-pools/xverse-member.clar index c688125..305b7d7 100644 --- a/contracts/strategies/public-pools/xverse-member.clar +++ b/contracts/strategies/public-pools/xverse-member.clar @@ -8,7 +8,7 @@ { hashbytes: 0x827a04335a9eb22cb46979f180670c8e7ba453b5, version: 0x04 } ) -(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) (define-read-only (is-dao-or-extension) (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised)) @@ -37,7 +37,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index ae90cf5..dafe422 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -147,294 +147,6 @@ plan: clarity-version: 1 epoch: "2.1" - id: 3 - transactions: [] - epoch: "2.1" - - id: 4 - transactions: [] - epoch: "2.1" - - id: 5 - transactions: [] - epoch: "2.1" - - id: 6 - transactions: [] - epoch: "2.1" - - id: 7 - transactions: [] - epoch: "2.1" - - id: 8 - transactions: [] - epoch: "2.1" - - id: 9 - transactions: [] - epoch: "2.1" - - id: 10 - transactions: [] - epoch: "2.1" - - id: 11 - transactions: [] - epoch: "2.1" - - id: 12 - transactions: [] - epoch: "2.1" - - id: 13 - transactions: [] - epoch: "2.1" - - id: 14 - transactions: [] - epoch: "2.1" - - id: 15 - transactions: [] - epoch: "2.1" - - id: 16 - transactions: [] - epoch: "2.1" - - id: 17 - transactions: [] - epoch: "2.1" - - id: 18 - transactions: [] - epoch: "2.1" - - id: 19 - transactions: [] - epoch: "2.1" - - id: 20 - transactions: [] - epoch: "2.1" - - id: 21 - transactions: [] - epoch: "2.1" - - id: 22 - transactions: [] - epoch: "2.1" - - id: 23 - transactions: [] - epoch: "2.1" - - id: 24 - transactions: [] - epoch: "2.1" - - id: 25 - transactions: [] - epoch: "2.1" - - id: 26 - transactions: [] - epoch: "2.1" - - id: 27 - transactions: [] - epoch: "2.1" - - id: 28 - transactions: [] - epoch: "2.1" - - id: 29 - transactions: [] - epoch: "2.1" - - id: 30 - transactions: [] - epoch: "2.1" - - id: 31 - transactions: [] - epoch: "2.1" - - id: 32 - transactions: [] - epoch: "2.1" - - id: 33 - transactions: [] - epoch: "2.1" - - id: 34 - transactions: [] - epoch: "2.1" - - id: 35 - transactions: [] - epoch: "2.1" - - id: 36 - transactions: [] - epoch: "2.1" - - id: 37 - transactions: [] - epoch: "2.1" - - id: 38 - transactions: [] - epoch: "2.1" - - id: 39 - transactions: [] - epoch: "2.1" - - id: 40 - transactions: [] - epoch: "2.1" - - id: 41 - transactions: [] - epoch: "2.1" - - id: 42 - transactions: [] - epoch: "2.1" - - id: 43 - transactions: [] - epoch: "2.1" - - id: 44 - transactions: [] - epoch: "2.1" - - id: 45 - transactions: [] - epoch: "2.1" - - id: 46 - transactions: [] - epoch: "2.1" - - id: 47 - transactions: [] - epoch: "2.1" - - id: 48 - transactions: [] - epoch: "2.1" - - id: 49 - transactions: [] - epoch: "2.1" - - id: 50 - transactions: [] - epoch: "2.1" - - id: 51 - transactions: [] - epoch: "2.1" - - id: 52 - transactions: [] - epoch: "2.1" - - id: 53 - transactions: [] - epoch: "2.1" - - id: 54 - transactions: [] - epoch: "2.1" - - id: 55 - transactions: [] - epoch: "2.1" - - id: 56 - transactions: [] - epoch: "2.1" - - id: 57 - transactions: [] - epoch: "2.1" - - id: 58 - transactions: [] - epoch: "2.1" - - id: 59 - transactions: [] - epoch: "2.1" - - id: 60 - transactions: [] - epoch: "2.1" - - id: 61 - transactions: [] - epoch: "2.1" - - id: 62 - transactions: [] - epoch: "2.1" - - id: 63 - transactions: [] - epoch: "2.1" - - id: 64 - transactions: [] - epoch: "2.1" - - id: 65 - transactions: [] - epoch: "2.1" - - id: 66 - transactions: [] - epoch: "2.1" - - id: 67 - transactions: [] - epoch: "2.1" - - id: 68 - transactions: [] - epoch: "2.1" - - id: 69 - transactions: [] - epoch: "2.1" - - id: 70 - transactions: [] - epoch: "2.1" - - id: 71 - transactions: [] - epoch: "2.1" - - id: 72 - transactions: [] - epoch: "2.1" - - id: 73 - transactions: [] - epoch: "2.1" - - id: 74 - transactions: [] - epoch: "2.1" - - id: 75 - transactions: [] - epoch: "2.1" - - id: 76 - transactions: [] - epoch: "2.1" - - id: 77 - transactions: [] - epoch: "2.1" - - id: 78 - transactions: [] - epoch: "2.1" - - id: 79 - transactions: [] - epoch: "2.1" - - id: 80 - transactions: [] - epoch: "2.1" - - id: 81 - transactions: [] - epoch: "2.1" - - id: 82 - transactions: [] - epoch: "2.1" - - id: 83 - transactions: [] - epoch: "2.1" - - id: 84 - transactions: [] - epoch: "2.1" - - id: 85 - transactions: [] - epoch: "2.1" - - id: 86 - transactions: [] - epoch: "2.1" - - id: 87 - transactions: [] - epoch: "2.1" - - id: 88 - transactions: [] - epoch: "2.1" - - id: 89 - transactions: [] - epoch: "2.1" - - id: 90 - transactions: [] - epoch: "2.1" - - id: 91 - transactions: [] - epoch: "2.1" - - id: 92 - transactions: [] - epoch: "2.1" - - id: 93 - transactions: [] - epoch: "2.1" - - id: 94 - transactions: [] - epoch: "2.1" - - id: 95 - transactions: [] - epoch: "2.1" - - id: 96 - transactions: [] - epoch: "2.1" - - id: 97 - transactions: [] - epoch: "2.1" - - id: 98 - transactions: [] - epoch: "2.1" - - id: 99 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -442,298 +154,10 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 100 - transactions: [] - epoch: "2.3" - - id: 101 - transactions: [] - epoch: "2.3" - - id: 102 - transactions: [] - epoch: "2.3" - - id: 103 - transactions: [] - epoch: "2.3" - - id: 104 - transactions: [] - epoch: "2.3" - - id: 105 - transactions: [] - epoch: "2.3" - - id: 106 - transactions: [] - epoch: "2.3" - - id: 107 - transactions: [] - epoch: "2.3" - - id: 108 - transactions: [] - epoch: "2.3" - - id: 109 - transactions: [] - epoch: "2.3" - - id: 110 - transactions: [] - epoch: "2.3" - - id: 111 - transactions: [] - epoch: "2.3" - - id: 112 - transactions: [] - epoch: "2.3" - - id: 113 - transactions: [] - epoch: "2.3" - - id: 114 - transactions: [] - epoch: "2.3" - - id: 115 - transactions: [] - epoch: "2.3" - - id: 116 - transactions: [] - epoch: "2.3" - - id: 117 - transactions: [] - epoch: "2.3" - - id: 118 - transactions: [] - epoch: "2.3" - - id: 119 - transactions: [] - epoch: "2.3" - - id: 120 - transactions: [] - epoch: "2.3" - - id: 121 - transactions: [] - epoch: "2.3" - - id: 122 - transactions: [] - epoch: "2.3" - - id: 123 - transactions: [] - epoch: "2.3" - - id: 124 - transactions: [] - epoch: "2.3" - - id: 125 - transactions: [] - epoch: "2.3" - - id: 126 - transactions: [] - epoch: "2.3" - - id: 127 - transactions: [] - epoch: "2.3" - - id: 128 + - id: 4 transactions: [] epoch: "2.3" - - id: 129 - transactions: [] - epoch: "2.3" - - id: 130 - transactions: [] - epoch: "2.3" - - id: 131 - transactions: [] - epoch: "2.3" - - id: 132 - transactions: [] - epoch: "2.3" - - id: 133 - transactions: [] - epoch: "2.3" - - id: 134 - transactions: [] - epoch: "2.3" - - id: 135 - transactions: [] - epoch: "2.3" - - id: 136 - transactions: [] - epoch: "2.3" - - id: 137 - transactions: [] - epoch: "2.3" - - id: 138 - transactions: [] - epoch: "2.3" - - id: 139 - transactions: [] - epoch: "2.3" - - id: 140 - transactions: [] - epoch: "2.3" - - id: 141 - transactions: [] - epoch: "2.3" - - id: 142 - transactions: [] - epoch: "2.3" - - id: 143 - transactions: [] - epoch: "2.3" - - id: 144 - transactions: [] - epoch: "2.3" - - id: 145 - transactions: [] - epoch: "2.3" - - id: 146 - transactions: [] - epoch: "2.3" - - id: 147 - transactions: [] - epoch: "2.3" - - id: 148 - transactions: [] - epoch: "2.3" - - id: 149 - transactions: [] - epoch: "2.3" - - id: 150 - transactions: [] - epoch: "2.3" - - id: 151 - transactions: [] - epoch: "2.3" - - id: 152 - transactions: [] - epoch: "2.3" - - id: 153 - transactions: [] - epoch: "2.3" - - id: 154 - transactions: [] - epoch: "2.3" - - id: 155 - transactions: [] - epoch: "2.3" - - id: 156 - transactions: [] - epoch: "2.3" - - id: 157 - transactions: [] - epoch: "2.3" - - id: 158 - transactions: [] - epoch: "2.3" - - id: 159 - transactions: [] - epoch: "2.3" - - id: 160 - transactions: [] - epoch: "2.3" - - id: 161 - transactions: [] - epoch: "2.3" - - id: 162 - transactions: [] - epoch: "2.3" - - id: 163 - transactions: [] - epoch: "2.3" - - id: 164 - transactions: [] - epoch: "2.3" - - id: 165 - transactions: [] - epoch: "2.3" - - id: 166 - transactions: [] - epoch: "2.3" - - id: 167 - transactions: [] - epoch: "2.3" - - id: 168 - transactions: [] - epoch: "2.3" - - id: 169 - transactions: [] - epoch: "2.3" - - id: 170 - transactions: [] - epoch: "2.3" - - id: 171 - transactions: [] - epoch: "2.3" - - id: 172 - transactions: [] - epoch: "2.3" - - id: 173 - transactions: [] - epoch: "2.3" - - id: 174 - transactions: [] - epoch: "2.3" - - id: 175 - transactions: [] - epoch: "2.3" - - id: 176 - transactions: [] - epoch: "2.3" - - id: 177 - transactions: [] - epoch: "2.3" - - id: 178 - transactions: [] - epoch: "2.3" - - id: 179 - transactions: [] - epoch: "2.3" - - id: 180 - transactions: [] - epoch: "2.3" - - id: 181 - transactions: [] - epoch: "2.3" - - id: 182 - transactions: [] - epoch: "2.3" - - id: 183 - transactions: [] - epoch: "2.3" - - id: 184 - transactions: [] - epoch: "2.3" - - id: 185 - transactions: [] - epoch: "2.3" - - id: 186 - transactions: [] - epoch: "2.3" - - id: 187 - transactions: [] - epoch: "2.3" - - id: 188 - transactions: [] - epoch: "2.3" - - id: 189 - transactions: [] - epoch: "2.3" - - id: 190 - transactions: [] - epoch: "2.3" - - id: 191 - transactions: [] - epoch: "2.3" - - id: 192 - transactions: [] - epoch: "2.3" - - id: 193 - transactions: [] - epoch: "2.3" - - id: 194 - transactions: [] - epoch: "2.3" - - id: 195 - transactions: [] - epoch: "2.3" - - id: 196 - transactions: [] - epoch: "2.3" - - id: 197 + - id: 5 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -861,7 +285,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 198 + - id: 6 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -984,1402 +408,255 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 199 - transactions: [] - epoch: "2.4" - - id: 200 - transactions: [] - epoch: "2.4" - - id: 201 - transactions: [] - epoch: "2.4" - - id: 202 - transactions: [] - epoch: "2.4" - - id: 203 - transactions: [] - epoch: "2.4" - - id: 204 - transactions: [] - epoch: "2.4" - - id: 205 - transactions: [] - epoch: "2.4" - - id: 206 - transactions: [] - epoch: "2.4" - - id: 207 - transactions: [] - epoch: "2.4" - - id: 208 - transactions: [] - epoch: "2.4" - - id: 209 - transactions: [] - epoch: "2.4" - - id: 210 - transactions: [] - epoch: "2.4" - - id: 211 - transactions: [] - epoch: "2.4" - - id: 212 - transactions: [] - epoch: "2.4" - - id: 213 - transactions: [] - epoch: "2.4" - - id: 214 - transactions: [] - epoch: "2.4" - - id: 215 - transactions: [] - epoch: "2.4" - - id: 216 - transactions: [] - epoch: "2.4" - - id: 217 - transactions: [] - epoch: "2.4" - - id: 218 - transactions: [] - epoch: "2.4" - - id: 219 - transactions: [] - epoch: "2.4" - - id: 220 - transactions: [] - epoch: "2.4" - - id: 221 - transactions: [] - epoch: "2.4" - - id: 222 - transactions: [] - epoch: "2.4" - - id: 223 - transactions: [] - epoch: "2.4" - - id: 224 - transactions: [] - epoch: "2.4" - - id: 225 - transactions: [] - epoch: "2.4" - - id: 226 - transactions: [] - epoch: "2.4" - - id: 227 - transactions: [] - epoch: "2.4" - - id: 228 - transactions: [] - epoch: "2.4" - - id: 229 - transactions: [] - epoch: "2.4" - - id: 230 - transactions: [] - epoch: "2.4" - - id: 231 - transactions: [] - epoch: "2.4" - - id: 232 - transactions: [] - epoch: "2.4" - - id: 233 - transactions: [] - epoch: "2.4" - - id: 234 - transactions: [] - epoch: "2.4" - - id: 235 - transactions: [] - epoch: "2.4" - - id: 236 - transactions: [] - epoch: "2.4" - - id: 237 - transactions: [] - epoch: "2.4" - - id: 238 - transactions: [] - epoch: "2.4" - - id: 239 - transactions: [] - epoch: "2.4" - - id: 240 - transactions: [] - epoch: "2.4" - - id: 241 - transactions: [] - epoch: "2.4" - - id: 242 - transactions: [] - epoch: "2.4" - - id: 243 - transactions: [] - epoch: "2.4" - - id: 244 - transactions: [] - epoch: "2.4" - - id: 245 - transactions: [] - epoch: "2.4" - - id: 246 - transactions: [] - epoch: "2.4" - - id: 247 - transactions: [] - epoch: "2.4" - - id: 248 - transactions: [] - epoch: "2.4" - - id: 249 - transactions: [] - epoch: "2.4" - - id: 250 - transactions: [] - epoch: "2.4" - - id: 251 - transactions: [] - epoch: "2.4" - - id: 252 - transactions: [] - epoch: "2.4" - - id: 253 - transactions: [] - epoch: "2.4" - - id: 254 - transactions: [] - epoch: "2.4" - - id: 255 - transactions: [] - epoch: "2.4" - - id: 256 - transactions: [] - epoch: "2.4" - - id: 257 + - id: 7 transactions: [] epoch: "2.4" - - id: 258 - transactions: [] - epoch: "2.4" - - id: 259 - transactions: [] - epoch: "2.4" - - id: 260 - transactions: [] - epoch: "2.4" - - id: 261 - transactions: [] - epoch: "2.4" - - id: 262 - transactions: [] - epoch: "2.4" - - id: 263 - transactions: [] - epoch: "2.4" - - id: 264 - transactions: [] - epoch: "2.4" - - id: 265 - transactions: [] - epoch: "2.4" - - id: 266 - transactions: [] - epoch: "2.4" - - id: 267 - transactions: [] - epoch: "2.4" - - id: 268 - transactions: [] - epoch: "2.4" - - id: 269 - transactions: [] - epoch: "2.4" - - id: 270 - transactions: [] - epoch: "2.4" - - id: 271 - transactions: [] - epoch: "2.4" - - id: 272 - transactions: [] - epoch: "2.4" - - id: 273 - transactions: [] - epoch: "2.4" - - id: 274 - transactions: [] - epoch: "2.4" - - id: 275 - transactions: [] - epoch: "2.4" - - id: 276 - transactions: [] - epoch: "2.4" - - id: 277 - transactions: [] - epoch: "2.4" - - id: 278 - transactions: [] - epoch: "2.4" - - id: 279 - transactions: [] - epoch: "2.4" - - id: 280 - transactions: [] - epoch: "2.4" - - id: 281 - transactions: [] - epoch: "2.4" - - id: 282 - transactions: [] - epoch: "2.4" - - id: 283 - transactions: [] - epoch: "2.4" - - id: 284 - transactions: [] - epoch: "2.4" - - id: 285 - transactions: [] - epoch: "2.4" - - id: 286 - transactions: [] - epoch: "2.4" - - id: 287 - transactions: [] - epoch: "2.4" - - id: 288 - transactions: [] - epoch: "2.4" - - id: 289 - transactions: [] - epoch: "2.4" - - id: 290 - transactions: [] - epoch: "2.4" - - id: 291 - transactions: [] - epoch: "2.4" - - id: 292 - transactions: [] - epoch: "2.4" - - id: 293 - transactions: [] - epoch: "2.4" - - id: 294 - transactions: [] - epoch: "2.4" - - id: 295 - transactions: [] - epoch: "2.4" - - id: 296 - transactions: [] - epoch: "2.4" - - id: 297 - transactions: [] - epoch: "2.4" - - id: 298 - transactions: [] - epoch: "2.4" - - id: 299 - transactions: [] - epoch: "2.4" - - id: 300 - transactions: [] - epoch: "2.4" - - id: 301 - transactions: [] - epoch: "2.4" - - id: 302 - transactions: [] - epoch: "2.4" - - id: 303 - transactions: [] - epoch: "2.4" - - id: 304 - transactions: [] - epoch: "2.4" - - id: 305 - transactions: [] - epoch: "2.4" - - id: 306 - transactions: [] - epoch: "2.4" - - id: 307 - transactions: [] - epoch: "2.4" - - id: 308 - transactions: [] - epoch: "2.4" - - id: 309 - transactions: [] - epoch: "2.4" - - id: 310 - transactions: [] - epoch: "2.4" - - id: 311 - transactions: [] - epoch: "2.4" - - id: 312 - transactions: [] - epoch: "2.4" - - id: 313 - transactions: [] - epoch: "2.4" - - id: 314 - transactions: [] - epoch: "2.4" - - id: 315 - transactions: [] - epoch: "2.4" - - id: 316 - transactions: [] - epoch: "2.4" - - id: 317 - transactions: [] - epoch: "2.4" - - id: 318 - transactions: [] - epoch: "2.4" - - id: 319 - transactions: [] - epoch: "2.4" - - id: 320 - transactions: [] - epoch: "2.4" - - id: 321 - transactions: [] - epoch: "2.4" - - id: 322 - transactions: [] - epoch: "2.4" - - id: 323 - transactions: [] - epoch: "2.4" - - id: 324 - transactions: [] - epoch: "2.4" - - id: 325 - transactions: [] - epoch: "2.4" - - id: 326 - transactions: [] - epoch: "2.4" - - id: 327 - transactions: [] - epoch: "2.4" - - id: 328 - transactions: [] - epoch: "2.4" - - id: 329 - transactions: [] - epoch: "2.4" - - id: 330 - transactions: [] - epoch: "2.4" - - id: 331 - transactions: [] - epoch: "2.4" - - id: 332 - transactions: [] - epoch: "2.4" - - id: 333 - transactions: [] - epoch: "2.4" - - id: 334 - transactions: [] - epoch: "2.4" - - id: 335 - transactions: [] - epoch: "2.4" - - id: 336 - transactions: [] - epoch: "2.4" - - id: 337 - transactions: [] - epoch: "2.4" - - id: 338 - transactions: [] - epoch: "2.4" - - id: 339 - transactions: [] - epoch: "2.4" - - id: 340 - transactions: [] - epoch: "2.4" - - id: 341 - transactions: [] - epoch: "2.4" - - id: 342 - transactions: [] - epoch: "2.4" - - id: 343 - transactions: [] - epoch: "2.4" - - id: 344 - transactions: [] - epoch: "2.4" - - id: 345 - transactions: [] - epoch: "2.4" - - id: 346 - transactions: [] - epoch: "2.4" - - id: 347 - transactions: [] - epoch: "2.4" - - id: 348 - transactions: [] - epoch: "2.4" - - id: 349 - transactions: [] - epoch: "2.4" - - id: 350 - transactions: [] - epoch: "2.4" - - id: 351 - transactions: [] - epoch: "2.4" - - id: 352 - transactions: [] - epoch: "2.4" - - id: 353 - transactions: [] - epoch: "2.4" - - id: 354 - transactions: [] - epoch: "2.4" - - id: 355 - transactions: [] - epoch: "2.4" - - id: 356 - transactions: [] - epoch: "2.4" - - id: 357 - transactions: [] - epoch: "2.4" - - id: 358 - transactions: [] - epoch: "2.4" - - id: 359 - transactions: [] - epoch: "2.4" - - id: 360 - transactions: [] - epoch: "2.4" - - id: 361 - transactions: [] - epoch: "2.4" - - id: 362 - transactions: [] - epoch: "2.4" - - id: 363 - transactions: [] - epoch: "2.4" - - id: 364 - transactions: [] - epoch: "2.4" - - id: 365 - transactions: [] - epoch: "2.4" - - id: 366 - transactions: [] - epoch: "2.4" - - id: 367 - transactions: [] - epoch: "2.4" - - id: 368 - transactions: [] - epoch: "2.4" - - id: 369 - transactions: [] - epoch: "2.4" - - id: 370 - transactions: [] - epoch: "2.4" - - id: 371 - transactions: [] - epoch: "2.4" - - id: 372 - transactions: [] - epoch: "2.4" - - id: 373 - transactions: [] - epoch: "2.4" - - id: 374 - transactions: [] - epoch: "2.4" - - id: 375 - transactions: [] - epoch: "2.4" - - id: 376 - transactions: [] - epoch: "2.4" - - id: 377 - transactions: [] - epoch: "2.4" - - id: 378 - transactions: [] - epoch: "2.4" - - id: 379 - transactions: [] - epoch: "2.4" - - id: 380 - transactions: [] - epoch: "2.4" - - id: 381 - transactions: [] - epoch: "2.4" - - id: 382 - transactions: [] - epoch: "2.4" - - id: 383 - transactions: [] - epoch: "2.4" - - id: 384 - transactions: [] - epoch: "2.4" - - id: 385 - transactions: [] - epoch: "2.4" - - id: 386 - transactions: [] - epoch: "2.4" - - id: 387 - transactions: [] - epoch: "2.4" - - id: 388 - transactions: [] - epoch: "2.4" - - id: 389 - transactions: [] - epoch: "2.4" - - id: 390 - transactions: [] - epoch: "2.4" - - id: 391 - transactions: [] - epoch: "2.4" - - id: 392 - transactions: - - emulated-contract-publish: - contract-name: pox4-fast-pool-v3 - emulated-sender: SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP - path: "./.cache/requirements/SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member1 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member1.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member10 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member10.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member3 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member4 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member4.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member5 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member5.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member6 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member6.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member7 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member7.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member8 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member8.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: fastpool-v2-member9 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member9.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: pox4-pools - emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX - path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member1 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member1.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member10 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member10.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member3 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member4 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member5 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member6 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member7 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member8 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member9 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint-v2-01 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-manager-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" - clarity-version: 2 - epoch: "2.5" - - id: 393 - transactions: - - emulated-contract-publish: - contract-name: lip004 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip005 - emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B - path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: extension-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: executor-dao - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: trait-sip-010 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: token-alex - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-staking-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2-wl - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip006 - emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 - path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/alex-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-registry - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-registry.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-endpoint - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/auto-alex-v3-endpoint.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-wrapped - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-wrapped.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: legacy-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/legacy-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip007 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip007.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip008 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip008.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip009 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip009.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip010 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip010.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: mock-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/mock-boot.clar - clarity-version: 2 - epoch: "2.5" - - id: 394 - transactions: [] - epoch: "2.5" - - id: 395 - transactions: [] - epoch: "2.5" - - id: 396 - transactions: [] - epoch: "2.5" - - id: 397 - transactions: [] - epoch: "2.5" - - id: 398 - transactions: [] - epoch: "2.5" - - id: 399 - transactions: [] - epoch: "2.5" - - id: 400 - transactions: [] - epoch: "2.5" - - id: 401 - transactions: [] - epoch: "2.5" - - id: 402 - transactions: [] - epoch: "2.5" - - id: 403 - transactions: [] - epoch: "2.5" - - id: 404 - transactions: [] - epoch: "2.5" - - id: 405 - transactions: [] - epoch: "2.5" - - id: 406 - transactions: [] - epoch: "2.5" - - id: 407 - transactions: [] - epoch: "2.5" - - id: 408 - transactions: [] - epoch: "2.5" - - id: 409 - transactions: [] - epoch: "2.5" - - id: 410 - transactions: [] - epoch: "2.5" - - id: 411 - transactions: [] - epoch: "2.5" - - id: 412 - transactions: [] - epoch: "2.5" - - id: 413 - transactions: [] - epoch: "2.5" - - id: 414 - transactions: [] - epoch: "2.5" - - id: 415 - transactions: [] - epoch: "2.5" - - id: 416 - transactions: [] - epoch: "2.5" - - id: 417 - transactions: [] - epoch: "2.5" - - id: 418 - transactions: [] - epoch: "2.5" - - id: 419 - transactions: [] - epoch: "2.5" - - id: 420 - transactions: [] - epoch: "2.5" - - id: 421 - transactions: [] - epoch: "2.5" - - id: 422 - transactions: [] - epoch: "2.5" - - id: 423 - transactions: [] - epoch: "2.5" - - id: 424 - transactions: [] - epoch: "2.5" - - id: 425 - transactions: [] - epoch: "2.5" - - id: 426 - transactions: [] - epoch: "2.5" - - id: 427 - transactions: [] - epoch: "2.5" - - id: 428 - transactions: [] - epoch: "2.5" - - id: 429 - transactions: [] - epoch: "2.5" - - id: 430 - transactions: [] - epoch: "2.5" - - id: 431 - transactions: [] - epoch: "2.5" - - id: 432 - transactions: [] - epoch: "2.5" - - id: 433 - transactions: [] - epoch: "2.5" - - id: 434 - transactions: [] - epoch: "2.5" - - id: 435 - transactions: [] - epoch: "2.5" - - id: 436 - transactions: [] - epoch: "2.5" - - id: 437 - transactions: [] - epoch: "2.5" - - id: 438 - transactions: [] - epoch: "2.5" - - id: 439 - transactions: [] - epoch: "2.5" - - id: 440 - transactions: [] - epoch: "2.5" - - id: 441 - transactions: [] - epoch: "2.5" - - id: 442 - transactions: [] - epoch: "2.5" - - id: 443 - transactions: [] - epoch: "2.5" - - id: 444 - transactions: [] - epoch: "2.5" - - id: 445 - transactions: [] - epoch: "2.5" - - id: 446 - transactions: [] - epoch: "2.5" - - id: 447 - transactions: [] - epoch: "2.5" - - id: 448 - transactions: [] - epoch: "2.5" - - id: 449 - transactions: [] - epoch: "2.5" - - id: 450 - transactions: [] - epoch: "2.5" - - id: 451 - transactions: [] - epoch: "2.5" - - id: 452 - transactions: [] - epoch: "2.5" - - id: 453 - transactions: [] - epoch: "2.5" - - id: 454 - transactions: [] - epoch: "2.5" - - id: 455 - transactions: [] - epoch: "2.5" - - id: 456 - transactions: [] - epoch: "2.5" - - id: 457 - transactions: [] - epoch: "2.5" - - id: 458 - transactions: [] - epoch: "2.5" - - id: 459 - transactions: [] - epoch: "2.5" - - id: 460 - transactions: [] - epoch: "2.5" - - id: 461 - transactions: [] - epoch: "2.5" - - id: 462 - transactions: [] - epoch: "2.5" - - id: 463 - transactions: [] - epoch: "2.5" - - id: 464 - transactions: [] - epoch: "2.5" - - id: 465 - transactions: [] - epoch: "2.5" - - id: 466 - transactions: [] - epoch: "2.5" - - id: 467 - transactions: [] - epoch: "2.5" - - id: 468 - transactions: [] - epoch: "2.5" - - id: 469 - transactions: [] - epoch: "2.5" - - id: 470 - transactions: [] - epoch: "2.5" - - id: 471 - transactions: [] - epoch: "2.5" - - id: 472 - transactions: [] - epoch: "2.5" - - id: 473 - transactions: [] - epoch: "2.5" - - id: 474 - transactions: [] - epoch: "2.5" - - id: 475 - transactions: [] - epoch: "2.5" - - id: 476 - transactions: [] - epoch: "2.5" - - id: 477 - transactions: [] - epoch: "2.5" - - id: 478 - transactions: [] - epoch: "2.5" - - id: 479 - transactions: [] - epoch: "2.5" - - id: 480 - transactions: [] - epoch: "2.5" - - id: 481 - transactions: [] - epoch: "2.5" - - id: 482 - transactions: [] - epoch: "2.5" - - id: 483 - transactions: [] - epoch: "2.5" - - id: 484 - transactions: [] - epoch: "2.5" - - id: 485 - transactions: [] - epoch: "2.5" - - id: 486 - transactions: [] - epoch: "2.5" - - id: 487 - transactions: [] - epoch: "2.5" - - id: 488 - transactions: [] - epoch: "2.5" - - id: 489 - transactions: [] - epoch: "2.5" - - id: 490 - transactions: [] - epoch: "2.5" - - id: 491 - transactions: [] - epoch: "2.5" - - id: 492 - transactions: [] - epoch: "2.5" - - id: 493 - transactions: [] - epoch: "2.5" - - id: 494 - transactions: [] - epoch: "2.5" - - id: 495 - transactions: [] - epoch: "2.5" - - id: 496 - transactions: [] - epoch: "2.5" - - id: 497 - transactions: [] - epoch: "2.5" - - id: 498 - transactions: [] - epoch: "2.5" - - id: 499 - transactions: [] - epoch: "2.5" - - id: 500 - transactions: [] - epoch: "2.5" - - id: 501 - transactions: [] - epoch: "2.5" - - id: 502 - transactions: [] - epoch: "2.5" - - id: 503 - transactions: [] - epoch: "2.5" - - id: 504 - transactions: [] - epoch: "2.5" - - id: 505 - transactions: [] - epoch: "2.5" - - id: 506 - transactions: [] - epoch: "2.5" - - id: 507 - transactions: [] - epoch: "2.5" - - id: 508 - transactions: [] - epoch: "2.5" - - id: 509 - transactions: [] - epoch: "2.5" - - id: 510 - transactions: [] - epoch: "2.5" - - id: 511 - transactions: [] - epoch: "2.5" - - id: 512 - transactions: [] - epoch: "2.5" - - id: 513 - transactions: [] - epoch: "2.5" - - id: 514 - transactions: [] - epoch: "2.5" - - id: 515 - transactions: [] - epoch: "2.5" - - id: 516 - transactions: [] - epoch: "2.5" - - id: 517 - transactions: [] - epoch: "2.5" - - id: 518 - transactions: [] - epoch: "2.5" - - id: 519 - transactions: [] - epoch: "2.5" - - id: 520 - transactions: [] - epoch: "2.5" - - id: 521 - transactions: [] - epoch: "2.5" - - id: 522 - transactions: [] - epoch: "2.5" - - id: 523 - transactions: [] - epoch: "2.5" - - id: 524 - transactions: [] - epoch: "2.5" - - id: 525 - transactions: [] - epoch: "2.5" - - id: 526 - transactions: [] - epoch: "2.5" - - id: 527 - transactions: [] - epoch: "2.5" - - id: 528 - transactions: [] - epoch: "2.5" - - id: 529 - transactions: [] - epoch: "2.5" - - id: 530 - transactions: [] - epoch: "2.5" - - id: 531 - transactions: [] - epoch: "2.5" - - id: 532 - transactions: [] - epoch: "2.5" - - id: 533 - transactions: [] - epoch: "2.5" - - id: 534 - transactions: [] - epoch: "2.5" - - id: 535 - transactions: [] - epoch: "2.5" - - id: 536 - transactions: [] - epoch: "2.5" - - id: 537 - transactions: [] - epoch: "2.5" - - id: 538 - transactions: [] - epoch: "2.5" - - id: 539 - transactions: [] - epoch: "2.5" - - id: 540 - transactions: [] - epoch: "2.5" - - id: 541 - transactions: [] - epoch: "2.5" - - id: 542 - transactions: [] - epoch: "2.5" - - id: 543 - transactions: [] - epoch: "2.5" - - id: 544 - transactions: [] - epoch: "2.5" - - id: 545 - transactions: [] - epoch: "2.5" - - id: 546 - transactions: [] - epoch: "2.5" - - id: 547 - transactions: [] - epoch: "2.5" - - id: 548 - transactions: [] - epoch: "2.5" - - id: 549 - transactions: [] - epoch: "2.5" - - id: 550 - transactions: [] - epoch: "2.5" - - id: 551 - transactions: [] - epoch: "2.5" - - id: 552 - transactions: [] - epoch: "2.5" - - id: 553 - transactions: [] - epoch: "2.5" - - id: 554 - transactions: [] - epoch: "2.5" - - id: 555 - transactions: [] - epoch: "2.5" - - id: 556 - transactions: [] - epoch: "2.5" - - id: 557 - transactions: [] - epoch: "2.5" - - id: 558 - transactions: [] - epoch: "2.5" - - id: 559 - transactions: [] - epoch: "2.5" - - id: 560 - transactions: [] - epoch: "2.5" - - id: 561 - transactions: [] - epoch: "2.5" - - id: 562 - transactions: [] - epoch: "2.5" - - id: 563 - transactions: [] - epoch: "2.5" - - id: 564 - transactions: [] - epoch: "2.5" - - id: 565 - transactions: [] - epoch: "2.5" - - id: 566 - transactions: [] - epoch: "2.5" - - id: 567 - transactions: [] - epoch: "2.5" - - id: 568 - transactions: [] - epoch: "2.5" - - id: 569 - transactions: [] - epoch: "2.5" - - id: 570 - transactions: [] - epoch: "2.5" - - id: 571 - transactions: [] - epoch: "2.5" - - id: 572 - transactions: [] - epoch: "2.5" - - id: 573 - transactions: [] - epoch: "2.5" - - id: 574 - transactions: [] - epoch: "2.5" - - id: 575 - transactions: [] - epoch: "2.5" - - id: 576 - transactions: [] - epoch: "2.5" - - id: 577 - transactions: [] - epoch: "2.5" - - id: 578 - transactions: [] - epoch: "2.5" - - id: 579 - transactions: [] - epoch: "2.5" - - id: 580 - transactions: [] - epoch: "2.5" - - id: 581 - transactions: [] - epoch: "2.5" - - id: 582 - transactions: [] - epoch: "2.5" - - id: 583 - transactions: [] - epoch: "2.5" - - id: 584 - transactions: [] + - id: 8 + transactions: + - emulated-contract-publish: + contract-name: pox4-fast-pool-v3 + emulated-sender: SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP + path: "./.cache/requirements/SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member1 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member1.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member10 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member10.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member3 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member4 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member4.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member5 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member5.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member6 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member6.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member7 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member7.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member8 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member8.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: fastpool-v2-member9 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.fastpool-v2-member9.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: pox4-pools + emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX + path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member1 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member1.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member10 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member10.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member3 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member4 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member5 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member6 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member7 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member8 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member9 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint-v2-01 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-manager-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" + clarity-version: 2 epoch: "2.5" - - id: 585 - transactions: [] + - id: 9 + transactions: + - emulated-contract-publish: + contract-name: lip004 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip005 + emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B + path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: extension-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: proposal-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: executor-dao + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-sip-010 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-alex + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-staking-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2-wl + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip006 + emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 + path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/alex-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-registry + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-registry.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint-v2 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint-v2.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-wrapped + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-wrapped.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: legacy-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/legacy-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip007 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip007.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip008 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip008.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip009 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip009.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip010 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip010.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mock-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/mock-boot.clar + clarity-version: 2 epoch: "2.5" - - id: 586 + - id: 10 transactions: [] epoch: "2.5" diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index 1cfea62..66978f8 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -28,12 +28,12 @@ describe('auto-alex-v3', () => { // add some legacy auto-alex-v2 position and new auto-alex-v3 positions. let response = simnet.mineBlock([ - // tx.callPublicFn(contracts.autoAlexV2, "add-to-position", [Cl.uint(dx)], wallet_1), - tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_1), - tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_2), - tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_3), - tx.callPublicFn("auto-alex-v3-endpoint", "add-to-position", [Cl.uint(dx)], wallet_4), - tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), + tx.callPublicFn(contracts.autoAlexV2, "add-to-position", [Cl.uint(dx)], wallet_1), + // tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_1), + tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_2), + tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_3), + tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); @@ -45,17 +45,17 @@ describe('auto-alex-v3', () => { // console.log(`current cycle: ${simnet.callReadOnlyFn("SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2", "get-reward-cycle", [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value}`); // console.log(`alex-vault bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-vault")], wallet_1).result.value.value}`); // console.log(`auto-alex-v2 bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2")], wallet_1).result.value.value}`); - // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); + // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); if (cycle > 1) { console.log('cycle', cycle); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-user-id', [], wallet_1).result); - console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); - console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); - console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); - // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); - console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint', 'get-staker-at-cycle', [Cl.uint(cycle)], wallet_1).result.data); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-user-id', [], wallet_1).result); + console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); + console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); + console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); + // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); + console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle)], wallet_1).result.data); // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); // console.log('balance', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); @@ -64,7 +64,7 @@ describe('auto-alex-v3', () => { response = simnet.mineBlock([ tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), - tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer) + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer) ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); @@ -73,16 +73,14 @@ describe('auto-alex-v3', () => { response = simnet.mineBlock([ // this fixes a minor bug in auto-alex-v2 that bounty must be greater than 0 tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), - // rebase the lialex - // tx.callPublicFn('auto-alex-v3-endpoint', 'rebase', [], simnet.deployer), // upgrade legacy auto-alex-v2 to v3 - // tx.callPublicFn('auto-alex-v3-endpoint', 'upgrade', [Cl.uint(dx)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'upgrade', [Cl.uint(dx)], wallet_1), // test redeems - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_1), - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_4), // test revoke redeem request - tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(3)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'revoke-redeem', [Cl.uint(3)], wallet_4), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); } @@ -90,14 +88,14 @@ describe('auto-alex-v3', () => { if (cycle >= 2 && cycle < redeem_cycle + 1) { response = simnet.mineBlock([ // you cannot finalize redeem until end cycle - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10017)); } if (cycle == 3) { response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint', 'request-redeem', [Cl.uint(dx)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_3), ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); } @@ -105,14 +103,14 @@ describe('auto-alex-v3', () => { if (cycle == redeem_cycle + 1) { response = simnet.mineBlock([ // you cannot revoke after end_cycle - tx.callPublicFn('auto-alex-v3-endpoint', 'revoke-redeem', [Cl.uint(2)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'revoke-redeem', [Cl.uint(2)], wallet_3), // cannot finalize yet - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(1)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(1)], wallet_1), // cannot finalize again - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10019)); expect(response[1].result).toBeErr(Cl.uint(10017)); @@ -124,7 +122,7 @@ describe('auto-alex-v3', () => { if (cycle == redeem_cycle + 2) { response = simnet.mineBlock([ // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint', 'finalize-redeem', [Cl.uint(4)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); } From 304fcf53779c8e3c04ced4a0e954c7cc196a11bd Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Fri, 6 Sep 2024 22:56:25 +0800 Subject: [PATCH 5/9] txtx added --- Clarinet.toml | 9 +- .../extensions/auto-alex-v3-endpoint-v2.clar | 58 +++--- contracts/proposals/lip011.clar | 15 ++ deployments/default.simnet-plan.yaml | 53 +++--- package.json | 1 - runbooks/README.md | 49 +++++ runbooks/maintenance/alex-ops.tx | 62 +++++++ runbooks/maintenance/lisa.tx | 19 ++ scripts/simulate-lisa-proposal.ts | 170 ++++++++++++++++++ txtx.yml | 23 +++ 10 files changed, 407 insertions(+), 52 deletions(-) create mode 100644 contracts/proposals/lip011.clar create mode 100644 runbooks/README.md create mode 100644 runbooks/maintenance/alex-ops.tx create mode 100644 runbooks/maintenance/lisa.tx create mode 100644 scripts/simulate-lisa-proposal.ts create mode 100644 txtx.yml diff --git a/Clarinet.toml b/Clarinet.toml index 496247a..c1e57e4 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -27,7 +27,10 @@ requirements = [ { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010" }, { contract_id = "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2" }, { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl" }, - { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao" } + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao" }, + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry" }, + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3" }, + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped" } ] [contracts.lip007] @@ -89,4 +92,8 @@ epoch = 2.5 [contracts.auto-alex-v3-endpoint-v2] path = "contracts/extensions/auto-alex-v3-endpoint-v2.clar" +epoch = 2.5 + +[contracts.lip011] +path = "contracts/proposals/lip011.clar" epoch = 2.5 \ No newline at end of file diff --git a/contracts/extensions/auto-alex-v3-endpoint-v2.clar b/contracts/extensions/auto-alex-v3-endpoint-v2.clar index 9f93be5..447b184 100644 --- a/contracts/extensions/auto-alex-v3-endpoint-v2.clar +++ b/contracts/extensions/auto-alex-v3-endpoint-v2.clar @@ -37,19 +37,19 @@ (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised))) (define-read-only (get-start-cycle) - (contract-call? .auto-alex-v3-registry get-start-cycle)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-start-cycle)) (define-read-only (is-cycle-staked (reward-cycle uint)) - (contract-call? .auto-alex-v3-registry is-cycle-staked reward-cycle)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry is-cycle-staked reward-cycle)) (define-read-only (get-shares-to-tokens-per-cycle-or-default (reward-cycle uint)) - (contract-call? .auto-alex-v3-registry get-shares-to-tokens-per-cycle-or-default reward-cycle)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-shares-to-tokens-per-cycle-or-default reward-cycle)) (define-read-only (get-redeem-shares-per-cycle-or-default (reward-cycle uint)) - (contract-call? .auto-alex-v3-registry get-redeem-shares-per-cycle-or-default reward-cycle)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-redeem-shares-per-cycle-or-default reward-cycle)) (define-read-only (get-redeem-request-or-fail (request-id uint)) - (contract-call? .auto-alex-v3-registry get-redeem-request-or-fail request-id)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-redeem-request-or-fail request-id)) (define-read-only (is-create-paused) (var-get create-paused)) @@ -66,14 +66,14 @@ (define-read-only (get-next-base) (let ( (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) - (auto-alex-v2-bal (unwrap-panic (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-balance .auto-alex-v3)))) + (auto-alex-v2-bal (unwrap-panic (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) (asserts! (or (is-eq current-cycle (get-start-cycle)) (is-cycle-staked (- current-cycle u1))) err-claim-and-stake) (ok (+ (get amount-staked (as-contract (get-staker-at-cycle (+ current-cycle u1)))) (get to-return (as-contract (get-staker-at-cycle current-cycle))) (as-contract (get-staking-reward current-cycle)) - (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)) + (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)) (if (is-eq auto-alex-v2-bal u0) u0 (mul-down auto-alex-v2-bal (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))))))) ;; @desc get the intrinsic value of auto-alex-v3 @@ -102,7 +102,7 @@ (start-cycle (get-start-cycle)) (check-start-cycle (asserts! (<= start-cycle current-cycle) err-not-activated))) (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) - (as-contract (try! (contract-call? .auto-alex-v3 set-reserve (try! (get-next-base))))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) (ok current-cycle))) ;; @desc triggers external event that claims all that's available and stake for another 32 cycles @@ -119,11 +119,11 @@ (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) (intrinsic (get-shares-to-tokens ONE_8)) - (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance .auto-alex-v3)))) + (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) (asserts! (>= balance redeeming) err-redeem-imbalance) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-staked-cycle reward-cycle true))) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-staked-cycle reward-cycle true))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- balance redeeming) }))) (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens, balance: balance }}) (ok true))) @@ -144,9 +144,9 @@ (sender tx-sender)) (asserts! (> dx u0) err-invalid-liquidity) (asserts! (not (is-create-paused)) err-paused) - (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer dx sender .auto-alex-v3 none)) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer dx sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: dx }))) - (as-contract (try! (contract-call? .auto-alex-v3 mint dx sender))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 mint dx sender))) (print { notification: "position-added", payload: { new-supply: dx, sender: sender } }) (try! (rebase)) (ok true))) @@ -160,9 +160,9 @@ (asserts! (> intrinsic-dx u0) err-invalid-liquidity) (asserts! (not (is-create-paused)) err-paused) (asserts! (< end-cycle-v2 (+ current-cycle max-cycles)) err-end-cycle-v2) ;; auto-alex-v2 is not configured correctly - (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 transfer dx sender .auto-alex-v3 none)) + (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 transfer dx sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) (and (< end-cycle-v2 current-cycle) (begin (as-contract (try! (reduce-position-v2))) true)) - (as-contract (try! (contract-call? .auto-alex-v3 mint intrinsic-dx sender))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 mint intrinsic-dx sender))) (print { notification: "upgrade-position-added", payload: { new-supply: intrinsic-dx, sender: sender } }) (try! (rebase)) (ok true))) @@ -172,10 +172,10 @@ (current-cycle (try! (rebase))) (redeem-cycle (+ current-cycle max-cycles)) (request-details { requested-by: tx-sender, amount: amount, redeem-cycle: redeem-cycle, status: PENDING }) - (request-id (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request u0 request-details))))) + (request-id (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request u0 request-details))))) (asserts! (not (is-redeem-paused)) err-paused) - (try! (contract-call? .auto-alex-v3 transfer amount tx-sender .auto-alex-v3 none)) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (+ (get-redeem-shares-per-cycle-or-default redeem-cycle) amount)))) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer amount tx-sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (+ (get-redeem-shares-per-cycle-or-default redeem-cycle) amount)))) (print { notification: "redeem-request", payload: request-details }) (try! (rebase)) (ok request-id))) @@ -193,10 +193,10 @@ (asserts! (not (is-redeem-paused)) err-paused) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) - (as-contract (try! (contract-call? .auto-alex-v3 burn tokens .auto-alex-v3))) - (as-contract (try! (contract-call? .auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn tokens 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) (print { notification: "finalize-redeem", payload: updated-request-details }) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) (ok true))) @@ -212,10 +212,10 @@ (updated-request-details (merge request-details { status: REVOKED }))) (asserts! (is-eq tx-sender (get requested-by request-details)) err-unauthorised) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) - (as-contract (try! (contract-call? .auto-alex-v3 transfer-token .auto-alex-v3 tokens (get requested-by request-details)))) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (- (get-redeem-shares-per-cycle-or-default redeem-cycle) (get amount request-details))))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 tokens (get requested-by request-details)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (- (get-redeem-shares-per-cycle-or-default redeem-cycle) (get amount request-details))))) (print { notification: "revoke-redeem", payload: updated-request-details }) - (as-contract (try! (contract-call? .auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) (ok true))) @@ -255,19 +255,19 @@ (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) (define-read-only (get-user-id) - (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id .auto-alex-v3))) + (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) (define-private (stake-tokens (amount-tokens uint) (lock-period uint)) - (contract-call? .auto-alex-v3 stake-tokens amount-tokens lock-period)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 stake-tokens amount-tokens lock-period)) (define-private (claim-staking-reward (reward-cycle uint)) - (contract-call? .auto-alex-v3 claim-staking-reward reward-cycle)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 claim-staking-reward reward-cycle)) (define-private (reduce-position-v2) - (contract-call? .auto-alex-v3 reduce-position-v2)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 reduce-position-v2)) (define-private (get-shares-to-tokens (dx uint)) - (contract-call? .auto-alex-v3 get-shares-to-tokens dx)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-shares-to-tokens dx)) (define-private (claim-and-stake-v2 (reward-cycle uint)) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 claim-and-stake reward-cycle)) diff --git a/contracts/proposals/lip011.clar b/contracts/proposals/lip011.clar new file mode 100644 index 0000000..303d716 --- /dev/null +++ b/contracts/proposals/lip011.clar @@ -0,0 +1,15 @@ + +;; SPDX-License-Identifier: BUSL-1.1 + +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) + +(define-public (execute (sender principal)) + (begin + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extensions (list + { extension: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint, enabled: false } + { extension: .auto-alex-v3-endpoint-v2, enabled: true } ))) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint pause-create true)) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint pause-redeem true)) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-create false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-redeem false)) + (ok true))) \ No newline at end of file diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index dafe422..f8ea4eb 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -48,12 +48,6 @@ genesis: plan: batches: - id: 0 - transactions: [] - epoch: "2.0" - - id: 1 - transactions: [] - epoch: "2.05" - - id: 2 transactions: - emulated-contract-publish: contract-name: sip-010-trait-ft-standard @@ -70,6 +64,9 @@ plan: emulated-sender: SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335 path: "./.cache/requirements/SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.clar" clarity-version: 1 + epoch: "2.0" + - id: 1 + transactions: - emulated-contract-publish: contract-name: extension-trait emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 @@ -145,8 +142,8 @@ plan: emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.staking-helper.clar" clarity-version: 1 - epoch: "2.1" - - id: 3 + epoch: "2.05" + - id: 2 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -154,10 +151,7 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 4 - transactions: [] - epoch: "2.3" - - id: 5 + - id: 3 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -285,7 +279,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 6 + - id: 4 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -408,10 +402,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 7 - transactions: [] - epoch: "2.4" - - id: 8 + - id: 5 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -539,7 +530,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" clarity-version: 2 epoch: "2.5" - - id: 9 + - id: 6 transactions: - emulated-contract-publish: contract-name: lip004 @@ -591,6 +582,21 @@ plan: emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-registry + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-wrapped + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped.clar" + clarity-version: 2 - emulated-contract-publish: contract-name: lip006 emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 @@ -651,12 +657,17 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip010.clar clarity-version: 2 + epoch: "2.5" + - id: 7 + transactions: + - emulated-contract-publish: + contract-name: lip011 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip011.clar + clarity-version: 2 - emulated-contract-publish: contract-name: mock-boot emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/mocks/tests/mock-boot.clar clarity-version: 2 epoch: "2.5" - - id: 10 - transactions: [] - epoch: "2.5" diff --git a/package.json b/package.json index bd9b812..2e8d1e6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,6 @@ "main": "index.js", "description": "Run unit tests on this project.", "private": true, - "type": "module", "scripts": { "multisig-plan": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/create-multisig-deployment-plan.ts", "multisig-stx-transfer": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/create-multisig-stx-transfer-plan.ts", diff --git a/runbooks/README.md b/runbooks/README.md new file mode 100644 index 0000000..8d40154 --- /dev/null +++ b/runbooks/README.md @@ -0,0 +1,49 @@ +# liquid-stacking Runbooks + +[![Txtx](https://img.shields.io/badge/Operated%20with-Txtx-gree?labelColor=gray)](https://txtx.sh) + +## Runbooks available + +### lisa + + +## Getting Started + +This repository is using [txtx](https://txtx.sh) for handling its on-chain operations. + +`txtx` takes its inspiration from a battle tested devops best practice named `infrastructure as code`, that have transformed cloud architectures. + +`txtx` simplifies and streamlines Smart Contract Infrastructure management across blockchains, focusing on robustness, reproducibility and composability. + +### Installation + +```console +$ curl -sL https://install.txtx.sh/ | bash +``` + +### Scaffold a new runbook + +```console +$ txtx new +``` + +Access tutorials and documentation at [docs.txtx.sh](https://docs.txtx.sh) to understand the syntax and discover the powerful features of txtx. + +Additionally, the [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=txtx.txtx) will make writing runbooks easier. + +### List runbooks available in this repository +```console +$ txtx ls +Name ID Description +BNS Multisig bns-multisig Register a BNS name using a multisig signer +``` + +### Execute an existing runbook +```console +$ txtx run bns-multisig +``` + +### Update the README documentation +```console +$ txtx docs --update +``` diff --git a/runbooks/maintenance/alex-ops.tx b/runbooks/maintenance/alex-ops.tx new file mode 100644 index 0000000..bd79b07 --- /dev/null +++ b/runbooks/maintenance/alex-ops.tx @@ -0,0 +1,62 @@ +// Access tutorials and documentation at [docs.txtx.sh](https://docs.txtx.sh) +// to understand the syntax and discover the powerful features of txtx. + +runtime "addon::stacks" { + defaults { + network_id = env.stacks_network_id + rpc_api_url = env.stacks_api_url + } +} + +signer "deployer" "stacks::connect" { + expected_address = env.stacks_deployer_address +} + +action "deploy_agp" "stacks::deploy_contract" { + contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "agp363") + signer = signer.deployer + fee = 2000001 +} + +// action "deploy_wgort" "stacks::deploy_contract" { +// contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "token-wgort") +// signer = signer.deployer +// fee = 2000001 +// } + +// action "deploy_wcatstacks" "stacks::deploy_contract" { +// contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "token-wcatstacks") +// signer = signer.deployer +// fee = 2000001 +// } + + + +// action "propose" "stacks::call_contract" { +// // The address and identifier of the contract to invoke. +// contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.operators" +// // The contract method to invoke. +// function_name = "propose" +// // The function arguments for the contract call. +// function_args = [ +// stacks::cv_principal("${env.stacks_deployer_address}.agp360") +// ] +// signer = signer.deployer +// } + +// action "action1" "stacks::call_contract" { +// // The address and identifier of the contract to invoke. +// contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wcorgi" +// // The contract method to invoke. +// function_name = "transfer-fixed" +// // The function arguments for the contract call. +// function_args = [ +// stacks::cv_uint(4620371943500), +// stacks::cv_principal("${env.stacks_deployer_address}"), +// stacks::cv_principal("SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.meta-bridge-endpoint-v2-01"), +// stacks::cv_none() +// ] +// signer = signer.deployer +// post_condition_mode = "allow" +// fee = 1000000 +// } diff --git a/runbooks/maintenance/lisa.tx b/runbooks/maintenance/lisa.tx new file mode 100644 index 0000000..1501c48 --- /dev/null +++ b/runbooks/maintenance/lisa.tx @@ -0,0 +1,19 @@ +// Access tutorials and documentation at [docs.txtx.sh](https://docs.txtx.sh) +// to understand the syntax and discover the powerful features of txtx. + +runtime "addon::stacks" { + defaults { + network_id = env.stacks_network_id + rpc_api_url = env.stacks_api_url + } +} + +signer "deployer" "stacks::connect" { + expected_address = env.stacks_deployer_address +} + +action "deploy_lip" "stacks::deploy_contract" { + contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "lip011") + signer = signer.deployer + fee = 2000001 +} diff --git a/scripts/simulate-lisa-proposal.ts b/scripts/simulate-lisa-proposal.ts new file mode 100644 index 0000000..c39b209 --- /dev/null +++ b/scripts/simulate-lisa-proposal.ts @@ -0,0 +1,170 @@ +import { StacksMainnet } from "@stacks/network"; +import { + AnchorMode, + PostConditionMode, + type StacksTransaction, + bufferCV, + contractPrincipalCV, + listCV, + makeUnsignedContractCall, + serializeCV, + stringAsciiCV, + tupleCV, + trueCV, + uintCV, + makeUnsignedContractDeploy, + principalCV, + noneCV, +} from "@stacks/transactions"; +import { c32addressDecode } from "c32check"; +import { getAccountNonces, getNodeInfo } from "ts-clarity"; +import fs from "node:fs"; +import path from "node:path"; + +// current beta api endpoint +const SIMULATION_API_ENDPOINT = "https://api.stxer.xyz/simulations"; + +function runTx(tx: StacksTransaction) { + // type 0: run transaction + return tupleCV({ type: uintCV(0), data: bufferCV(tx.serialize()) }); +} + +function runEval(address: string, contractName: string, code: string) { + // type 1: eval arbitrary code inside a contract + return tupleCV({ + type: uintCV(1), + data: bufferCV( + serializeCV( + tupleCV({ + contract: contractPrincipalCV(address, contractName), + code: stringAsciiCV(code), + }) + ) + ), + }); +} + +async function main() { + const info = await getNodeInfo(); + const block_height = info.stacks_tip_height; + const block_hash = info.stacks_tip; + console.log(`Running simulation on block ${block_height} 0x${block_hash}`); + const deployer = "SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T"; + const address = deployer; + const [, addressHash] = c32addressDecode(address); + const nonces = await getAccountNonces(address); + let nonce = nonces.last_executed_tx_nonce + 1; + + const common_params = { + network: "mainnet", + publicKey: "", + postConditionMode: PostConditionMode.Allow, + anchorMode: AnchorMode.Any, + fee: 0, + }; + + const _contracts = { + 'auto-alex-v3-endpoint-v2': 'extensions/auto-alex-v3-endpoint-v2', + 'lip011': 'proposals/lip011' + }; + const _deploy = Object.keys(_contracts).slice(0); + const _propose = Object.keys(_contracts).slice(1); + + const deployTx: StacksTransaction[] = []; + for (let i = 0; i < _deploy.length; i++) { + const tx = await makeUnsignedContractDeploy({ + contractName: _deploy[i], + codeBody: fs.readFileSync( + path.resolve(__dirname, `../contracts/${_contracts[_deploy[i]]}.clar`), + "utf8" + ), + nonce: nonce++, + ...common_params, + }); + tx.auth.spendingCondition.signer = addressHash; + deployTx.push(tx); + } + + let proposerNonce = (await getAccountNonces("SP1E0XBN9T4B10E9QMR7XMFJPMA19D77WY3KP2QKC")).last_executed_tx_nonce + 1; + const [, proposerHash] = c32addressDecode("SP1E0XBN9T4B10E9QMR7XMFJPMA19D77WY3KP2QKC"); + const proposeTx: StacksTransaction[] = []; + for (let i = 0; i < _propose.length; i++) { + const tx = await makeUnsignedContractCall({ + contractAddress: "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH", + contractName: "operators", + functionName: "propose", + functionArgs: [principalCV(`${address}.${_propose[i]}`)], + nonce: proposerNonce++, + ...common_params + }); + tx.auth.spendingCondition.signer = proposerHash; + proposeTx.push(tx); + } + + const votes: StacksTransaction[] = []; + for (let i = 0; i < _propose.length; i++) { + for (const voter of [ + "SP1ESCTF9029MH550RKNE8R4D62G5HBY8PBBAF2N8", + "SP1EF1PKR40XW37GDC0BP7SN4V4JCVSHSDVG71YTH", + "SP12BFYTH3NJ6N63KE0S50GHSYV0M91NGQND2B704", + ]) { + const nonces = await getAccountNonces(voter); + const [, voterHash] = c32addressDecode(voter); + const tx = await makeUnsignedContractCall({ + contractAddress: "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH", + contractName: "operators", + functionName: "signal", + functionArgs: [principalCV(`${address}.${_propose[i]}`), trueCV()], + nonce: nonces.last_executed_tx_nonce + 1 + i, + ...common_params, + }); + tx.auth.spendingCondition.signer = voterHash; + votes.push(tx); + } + } + + // let userNonce = (await getAccountNonces("SP382ZZ89G7GFDX5SN781VBFCYSR3KW8Y9MQ0MF5X")).last_executed_tx_nonce + 1; + // const [, userHash] = c32addressDecode("SP382ZZ89G7GFDX5SN781VBFCYSR3KW8Y9MQ0MF5X"); + // const userTx = await makeUnsignedContractCall({ + // contractAddress: deployer, + // contractName: "auto-alex-v3-endpoint", + // functionName: "revoke-redeem", + // functionArgs: [ + // uintCV(8) + // ], + // nonce: userNonce++, + // ...common_params + // }); + // userTx.auth.spendingCondition.signer = userHash; + + const req = tupleCV({ + block_height: uintCV(block_height), + block_hash: bufferCV( + Buffer.from( + block_hash.startsWith("0x") ? block_hash.substring(2) : block_hash, + "hex" + ) + ), + steps: listCV([ + ...deployTx.map((v) => runTx(v)), + ...proposeTx.map((v) => runTx(v)), + ...votes.map((v) => runTx(v)), + // runTx(userTx), + // runEval( + // address, + // "alex-staking-v2", + // `(contract-call? '${deployer}.claim-recovered get-claim-or-default 'SPFP4YRN8XZCZ34YKB9NJT5NCZCE5ST5AVGJMH7B)` + // ), + ]), + }); + const body = serializeCV(req); + const rs = await fetch(SIMULATION_API_ENDPOINT, { + method: "POST", + body, + }).then((rs) => rs.json() as Promise>); + console.log( + `Simulation will be available at: https://stxer.xyz/simulations/mainnet/${rs.id}` + ); +} + +main().catch(console.error); diff --git a/txtx.yml b/txtx.yml new file mode 100644 index 0000000..501904f --- /dev/null +++ b/txtx.yml @@ -0,0 +1,23 @@ +--- +name: lisa +id: lisa +runbooks: + - name: lisa + id: lisa + description: + location: runbooks/maintenance/lisa.tx +environments: + # devnet: + # stacks_network_id: devnet + # stacks_api_url: http://localhost:3999 + # stacks_operator_address: ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC + # testnet: + # stacks_network_id: testnet + # stacks_api_url: https://api.testnet.hiro.so + # stacks_operator_address: ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC + mainnet: + stacks_network_id: mainnet + stacks_api_url: https://api.hiro.so + stacks_deployer_address: SP1E0XBN9T4B10E9QMR7XMFJPMA19D77WY3KP2QKC + stacks_operator_address: SP1E0XBN9T4B10E9QMR7XMFJPMA19D77WY3KP2QKC + clarinet_manifest_path: './Clarinet.toml' From c786707b7a9fddf64ca26bed5c9d5423c36cb2e8 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Fri, 6 Sep 2024 22:58:24 +0800 Subject: [PATCH 6/9] remove --- runbooks/maintenance/alex-ops.tx | 62 -------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 runbooks/maintenance/alex-ops.tx diff --git a/runbooks/maintenance/alex-ops.tx b/runbooks/maintenance/alex-ops.tx deleted file mode 100644 index bd79b07..0000000 --- a/runbooks/maintenance/alex-ops.tx +++ /dev/null @@ -1,62 +0,0 @@ -// Access tutorials and documentation at [docs.txtx.sh](https://docs.txtx.sh) -// to understand the syntax and discover the powerful features of txtx. - -runtime "addon::stacks" { - defaults { - network_id = env.stacks_network_id - rpc_api_url = env.stacks_api_url - } -} - -signer "deployer" "stacks::connect" { - expected_address = env.stacks_deployer_address -} - -action "deploy_agp" "stacks::deploy_contract" { - contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "agp363") - signer = signer.deployer - fee = 2000001 -} - -// action "deploy_wgort" "stacks::deploy_contract" { -// contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "token-wgort") -// signer = signer.deployer -// fee = 2000001 -// } - -// action "deploy_wcatstacks" "stacks::deploy_contract" { -// contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "token-wcatstacks") -// signer = signer.deployer -// fee = 2000001 -// } - - - -// action "propose" "stacks::call_contract" { -// // The address and identifier of the contract to invoke. -// contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.operators" -// // The contract method to invoke. -// function_name = "propose" -// // The function arguments for the contract call. -// function_args = [ -// stacks::cv_principal("${env.stacks_deployer_address}.agp360") -// ] -// signer = signer.deployer -// } - -// action "action1" "stacks::call_contract" { -// // The address and identifier of the contract to invoke. -// contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wcorgi" -// // The contract method to invoke. -// function_name = "transfer-fixed" -// // The function arguments for the contract call. -// function_args = [ -// stacks::cv_uint(4620371943500), -// stacks::cv_principal("${env.stacks_deployer_address}"), -// stacks::cv_principal("SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.meta-bridge-endpoint-v2-01"), -// stacks::cv_none() -// ] -// signer = signer.deployer -// post_condition_mode = "allow" -// fee = 1000000 -// } From 16e939602beaf7f6516640bb48166d63f28b3598 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Sun, 8 Sep 2024 22:45:40 +0800 Subject: [PATCH 7/9] fix: burn at claim --- Clarinet.toml | 3 +- .../extensions/auto-alex-v3-endpoint-v2.clar | 61 +- .../auto-whitelist-mint-helper.clar | 2 +- contracts/extensions/lqstx-mint-endpoint.clar | 2 +- contracts/mocks/tests/alex-boot.clar | 2 +- contracts/mocks/tests/mock-boot.clar | 2 +- .../public-pools/fastpool-member.clar | 4 +- .../public-pools/xverse-member.clar | 4 +- deployments/default.simnet-plan.yaml | 1301 ++++++++++++++++- package.json | 22 +- tests/auto-alex-v3.test.ts | 33 +- 11 files changed, 1357 insertions(+), 79 deletions(-) diff --git a/Clarinet.toml b/Clarinet.toml index c1e57e4..57ed2cd 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -30,7 +30,8 @@ requirements = [ { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao" }, { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry" }, { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3" }, - { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped" } + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped" }, + { contract_id = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint" } ] [contracts.lip007] diff --git a/contracts/extensions/auto-alex-v3-endpoint-v2.clar b/contracts/extensions/auto-alex-v3-endpoint-v2.clar index 447b184..7614316 100644 --- a/contracts/extensions/auto-alex-v3-endpoint-v2.clar +++ b/contracts/extensions/auto-alex-v3-endpoint-v2.clar @@ -105,29 +105,6 @@ (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) (ok current-cycle))) -;; @desc triggers external event that claims all that's available and stake for another 32 cycles -;; @desc this can be triggered by anyone -;; @param reward-cycle the target cycle to claim (and stake for current cycle + 32 cycles). reward-cycle must be < current cycle. -(define-public (claim-and-stake (reward-cycle uint)) - (let ( - (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) - (end-cycle-v2 (get-end-cycle-v2)) - ;; claim all that's available to claim for the reward-cycle - (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) - (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) - (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) - (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 - (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) - (intrinsic (get-shares-to-tokens ONE_8)) - (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) - (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) - (asserts! (>= balance redeeming) err-redeem-imbalance) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-staked-cycle reward-cycle true))) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) - (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- balance redeeming) }))) - (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens, balance: balance }}) - (ok true))) - ;; claims alex for the reward-cycles and mint auto-alex-v3 (define-public (claim-and-mint (reward-cycles (list 200 uint))) (let ( @@ -187,14 +164,14 @@ (check-claim-and-stake (and (not (is-cycle-staked redeem-cycle)) (try! (claim-and-stake redeem-cycle)))) (current-cycle (try! (rebase))) (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1))) - (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u32))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) - (updated-request-details (merge request-details { status: FINALIZED }))) + (updated-request-details (merge request-details { status: FINALIZED })) + (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) (asserts! (not (is-redeem-paused)) err-paused) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn tokens 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex tokens (get requested-by request-details)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer tokens tx-sender (get requested-by request-details) none))) (print { notification: "finalize-redeem", payload: updated-request-details }) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request request-id updated-request-details))) (try! (rebase)) @@ -222,6 +199,30 @@ ;; private functions ;; +;; @desc triggers external event that claims all that's available and stake for another 32 cycles +;; @param reward-cycle the target cycle to claim (and stake for current cycle + 32 cycles). reward-cycle must be < current cycle. +(define-private (claim-and-stake (reward-cycle uint)) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (end-cycle-v2 (get-end-cycle-v2)) + ;; claim all that's available to claim for the reward-cycle + (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) + (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) + (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) + (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) + (intrinsic (get-shares-to-tokens ONE_8)) + (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) + (asserts! (>= tokens redeeming) err-redeem-imbalance) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-staked-cycle reward-cycle true))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) + (and (> redeeming u0) (as-contract (unwrap! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn redeeming 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3) (err redeeming)))) + (and (> redeeming u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex redeeming tx-sender)))) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens redeeming) }))) + (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens }}) + (ok true))) + (define-private (sum-claimed (claimed-response (response (tuple (entitled-token uint) (to-return uint)) uint)) (prior (response uint uint))) (match prior ok-value (match claimed-response claimed (ok (+ ok-value (get to-return claimed) (get entitled-token claimed))) err (err err)) @@ -245,16 +246,16 @@ (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) err-value previous-response)) -(define-read-only (get-reward-cycle (burn-height uint)) +(define-private (get-reward-cycle (burn-height uint)) (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) -(define-read-only (get-staking-reward (reward-cycle uint)) +(define-private (get-staking-reward (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) (define-read-only (get-staker-at-cycle (reward-cycle uint)) (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) -(define-read-only (get-user-id) +(define-private (get-user-id) (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) (define-private (stake-tokens (amount-tokens uint) (lock-period uint)) diff --git a/contracts/extensions/auto-whitelist-mint-helper.clar b/contracts/extensions/auto-whitelist-mint-helper.clar index 0a46bce..b01556d 100644 --- a/contracts/extensions/auto-whitelist-mint-helper.clar +++ b/contracts/extensions/auto-whitelist-mint-helper.clar @@ -22,7 +22,7 @@ (define-read-only (was-stacking-in-eligible-pool-height (who principal) (height uint)) (at-block (unwrap! (get-block-info? id-header-hash height) false) - (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-stacker-info who) false))) + (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-stacker-info who) false))) ) ) diff --git a/contracts/extensions/lqstx-mint-endpoint.clar b/contracts/extensions/lqstx-mint-endpoint.clar index 694007f..61e4c88 100644 --- a/contracts/extensions/lqstx-mint-endpoint.clar +++ b/contracts/extensions/lqstx-mint-endpoint.clar @@ -29,7 +29,7 @@ ;; __IF_MAINNET__ (define-data-var request-cutoff uint u300) ;; request must be made 300 blocks before prepare stage starts -(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-4 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-4 get-pox-info))) (define-constant activation-burn-block (get first-burnchain-block-height pox-info)) (define-constant reward-cycle-length (get reward-cycle-length pox-info)) (define-constant prepare-cycle-length (get prepare-cycle-length pox-info)) diff --git a/contracts/mocks/tests/alex-boot.clar b/contracts/mocks/tests/alex-boot.clar index dfb8dad..f4e189b 100644 --- a/contracts/mocks/tests/alex-boot.clar +++ b/contracts/mocks/tests/alex-boot.clar @@ -11,7 +11,7 @@ { extension: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl, enabled: true } ))) - (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl whitelist (list .auto-alex-v3) (list true))) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl whitelist (list 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3) (list true))) (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex mint ONE_8 'ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG)) (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex mint ONE_8 'ST2JHG361ZXG51QTKY2NQCVBPPRRE2KZB1HR05NNC)) diff --git a/contracts/mocks/tests/mock-boot.clar b/contracts/mocks/tests/mock-boot.clar index c72b13d..cd0fa14 100644 --- a/contracts/mocks/tests/mock-boot.clar +++ b/contracts/mocks/tests/mock-boot.clar @@ -9,7 +9,7 @@ { extension: .auto-alex-v3-endpoint-v2, enabled: true } ))) - (try! (contract-call? .auto-alex-v3-registry set-start-cycle u0)) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-start-cycle u0)) (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-create false)) (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-redeem false)) diff --git a/contracts/strategies/public-pools/fastpool-member.clar b/contracts/strategies/public-pools/fastpool-member.clar index 660b7fd..98eb7e0 100644 --- a/contracts/strategies/public-pools/fastpool-member.clar +++ b/contracts/strategies/public-pools/fastpool-member.clar @@ -4,7 +4,7 @@ (define-constant err-unauthorised (err u5000)) -(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) +(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) (define-read-only (is-strategy-caller) (ok (asserts! (is-eq contract-caller .public-pools-strategy-v2) err-unauthorised)) @@ -21,7 +21,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/contracts/strategies/public-pools/xverse-member.clar b/contracts/strategies/public-pools/xverse-member.clar index 305b7d7..c688125 100644 --- a/contracts/strategies/public-pools/xverse-member.clar +++ b/contracts/strategies/public-pools/xverse-member.clar @@ -8,7 +8,7 @@ { hashbytes: 0x827a04335a9eb22cb46979f180670c8e7ba453b5, version: 0x04 } ) -(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) +(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) (define-read-only (is-dao-or-extension) (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised)) @@ -37,7 +37,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index f8ea4eb..918f764 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -48,6 +48,12 @@ genesis: plan: batches: - id: 0 + transactions: [] + epoch: "2.0" + - id: 1 + transactions: [] + epoch: "2.05" + - id: 2 transactions: - emulated-contract-publish: contract-name: sip-010-trait-ft-standard @@ -64,9 +70,6 @@ plan: emulated-sender: SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335 path: "./.cache/requirements/SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.clar" clarity-version: 1 - epoch: "2.0" - - id: 1 - transactions: - emulated-contract-publish: contract-name: extension-trait emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 @@ -142,8 +145,188 @@ plan: emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.staking-helper.clar" clarity-version: 1 - epoch: "2.05" - - id: 2 + epoch: "2.1" + - id: 3 + transactions: [] + epoch: "2.1" + - id: 4 + transactions: [] + epoch: "2.1" + - id: 5 + transactions: [] + epoch: "2.1" + - id: 6 + transactions: [] + epoch: "2.1" + - id: 7 + transactions: [] + epoch: "2.1" + - id: 8 + transactions: [] + epoch: "2.1" + - id: 9 + transactions: [] + epoch: "2.1" + - id: 10 + transactions: [] + epoch: "2.1" + - id: 11 + transactions: [] + epoch: "2.1" + - id: 12 + transactions: [] + epoch: "2.1" + - id: 13 + transactions: [] + epoch: "2.1" + - id: 14 + transactions: [] + epoch: "2.1" + - id: 15 + transactions: [] + epoch: "2.1" + - id: 16 + transactions: [] + epoch: "2.1" + - id: 17 + transactions: [] + epoch: "2.1" + - id: 18 + transactions: [] + epoch: "2.1" + - id: 19 + transactions: [] + epoch: "2.1" + - id: 20 + transactions: [] + epoch: "2.1" + - id: 21 + transactions: [] + epoch: "2.1" + - id: 22 + transactions: [] + epoch: "2.1" + - id: 23 + transactions: [] + epoch: "2.1" + - id: 24 + transactions: [] + epoch: "2.1" + - id: 25 + transactions: [] + epoch: "2.1" + - id: 26 + transactions: [] + epoch: "2.1" + - id: 27 + transactions: [] + epoch: "2.1" + - id: 28 + transactions: [] + epoch: "2.1" + - id: 29 + transactions: [] + epoch: "2.1" + - id: 30 + transactions: [] + epoch: "2.1" + - id: 31 + transactions: [] + epoch: "2.1" + - id: 32 + transactions: [] + epoch: "2.1" + - id: 33 + transactions: [] + epoch: "2.1" + - id: 34 + transactions: [] + epoch: "2.1" + - id: 35 + transactions: [] + epoch: "2.1" + - id: 36 + transactions: [] + epoch: "2.1" + - id: 37 + transactions: [] + epoch: "2.1" + - id: 38 + transactions: [] + epoch: "2.1" + - id: 39 + transactions: [] + epoch: "2.1" + - id: 40 + transactions: [] + epoch: "2.1" + - id: 41 + transactions: [] + epoch: "2.1" + - id: 42 + transactions: [] + epoch: "2.1" + - id: 43 + transactions: [] + epoch: "2.1" + - id: 44 + transactions: [] + epoch: "2.1" + - id: 45 + transactions: [] + epoch: "2.1" + - id: 46 + transactions: [] + epoch: "2.1" + - id: 47 + transactions: [] + epoch: "2.1" + - id: 48 + transactions: [] + epoch: "2.1" + - id: 49 + transactions: [] + epoch: "2.1" + - id: 50 + transactions: [] + epoch: "2.1" + - id: 51 + transactions: [] + epoch: "2.1" + - id: 52 + transactions: [] + epoch: "2.1" + - id: 53 + transactions: [] + epoch: "2.1" + - id: 54 + transactions: [] + epoch: "2.1" + - id: 55 + transactions: [] + epoch: "2.1" + - id: 56 + transactions: [] + epoch: "2.1" + - id: 57 + transactions: [] + epoch: "2.1" + - id: 58 + transactions: [] + epoch: "2.1" + - id: 59 + transactions: [] + epoch: "2.1" + - id: 60 + transactions: [] + epoch: "2.1" + - id: 61 + transactions: [] + epoch: "2.1" + - id: 62 + transactions: [] + epoch: "2.1" + - id: 63 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -151,7 +334,190 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 3 + - id: 64 + transactions: [] + epoch: "2.3" + - id: 65 + transactions: [] + epoch: "2.3" + - id: 66 + transactions: [] + epoch: "2.3" + - id: 67 + transactions: [] + epoch: "2.3" + - id: 68 + transactions: [] + epoch: "2.3" + - id: 69 + transactions: [] + epoch: "2.3" + - id: 70 + transactions: [] + epoch: "2.3" + - id: 71 + transactions: [] + epoch: "2.3" + - id: 72 + transactions: [] + epoch: "2.3" + - id: 73 + transactions: [] + epoch: "2.3" + - id: 74 + transactions: [] + epoch: "2.3" + - id: 75 + transactions: [] + epoch: "2.3" + - id: 76 + transactions: [] + epoch: "2.3" + - id: 77 + transactions: [] + epoch: "2.3" + - id: 78 + transactions: [] + epoch: "2.3" + - id: 79 + transactions: [] + epoch: "2.3" + - id: 80 + transactions: [] + epoch: "2.3" + - id: 81 + transactions: [] + epoch: "2.3" + - id: 82 + transactions: [] + epoch: "2.3" + - id: 83 + transactions: [] + epoch: "2.3" + - id: 84 + transactions: [] + epoch: "2.3" + - id: 85 + transactions: [] + epoch: "2.3" + - id: 86 + transactions: [] + epoch: "2.3" + - id: 87 + transactions: [] + epoch: "2.3" + - id: 88 + transactions: [] + epoch: "2.3" + - id: 89 + transactions: [] + epoch: "2.3" + - id: 90 + transactions: [] + epoch: "2.3" + - id: 91 + transactions: [] + epoch: "2.3" + - id: 92 + transactions: [] + epoch: "2.3" + - id: 93 + transactions: [] + epoch: "2.3" + - id: 94 + transactions: [] + epoch: "2.3" + - id: 95 + transactions: [] + epoch: "2.3" + - id: 96 + transactions: [] + epoch: "2.3" + - id: 97 + transactions: [] + epoch: "2.3" + - id: 98 + transactions: [] + epoch: "2.3" + - id: 99 + transactions: [] + epoch: "2.3" + - id: 100 + transactions: [] + epoch: "2.3" + - id: 101 + transactions: [] + epoch: "2.3" + - id: 102 + transactions: [] + epoch: "2.3" + - id: 103 + transactions: [] + epoch: "2.3" + - id: 104 + transactions: [] + epoch: "2.3" + - id: 105 + transactions: [] + epoch: "2.3" + - id: 106 + transactions: [] + epoch: "2.3" + - id: 107 + transactions: [] + epoch: "2.3" + - id: 108 + transactions: [] + epoch: "2.3" + - id: 109 + transactions: [] + epoch: "2.3" + - id: 110 + transactions: [] + epoch: "2.3" + - id: 111 + transactions: [] + epoch: "2.3" + - id: 112 + transactions: [] + epoch: "2.3" + - id: 113 + transactions: [] + epoch: "2.3" + - id: 114 + transactions: [] + epoch: "2.3" + - id: 115 + transactions: [] + epoch: "2.3" + - id: 116 + transactions: [] + epoch: "2.3" + - id: 117 + transactions: [] + epoch: "2.3" + - id: 118 + transactions: [] + epoch: "2.3" + - id: 119 + transactions: [] + epoch: "2.3" + - id: 120 + transactions: [] + epoch: "2.3" + - id: 121 + transactions: [] + epoch: "2.3" + - id: 122 + transactions: [] + epoch: "2.3" + - id: 123 + transactions: [] + epoch: "2.3" + - id: 124 + transactions: [] + epoch: "2.3" + - id: 125 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -279,7 +645,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 4 + - id: 126 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -402,7 +768,370 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 5 + - id: 127 + transactions: [] + epoch: "2.4" + - id: 128 + transactions: [] + epoch: "2.4" + - id: 129 + transactions: [] + epoch: "2.4" + - id: 130 + transactions: [] + epoch: "2.4" + - id: 131 + transactions: [] + epoch: "2.4" + - id: 132 + transactions: [] + epoch: "2.4" + - id: 133 + transactions: [] + epoch: "2.4" + - id: 134 + transactions: [] + epoch: "2.4" + - id: 135 + transactions: [] + epoch: "2.4" + - id: 136 + transactions: [] + epoch: "2.4" + - id: 137 + transactions: [] + epoch: "2.4" + - id: 138 + transactions: [] + epoch: "2.4" + - id: 139 + transactions: [] + epoch: "2.4" + - id: 140 + transactions: [] + epoch: "2.4" + - id: 141 + transactions: [] + epoch: "2.4" + - id: 142 + transactions: [] + epoch: "2.4" + - id: 143 + transactions: [] + epoch: "2.4" + - id: 144 + transactions: [] + epoch: "2.4" + - id: 145 + transactions: [] + epoch: "2.4" + - id: 146 + transactions: [] + epoch: "2.4" + - id: 147 + transactions: [] + epoch: "2.4" + - id: 148 + transactions: [] + epoch: "2.4" + - id: 149 + transactions: [] + epoch: "2.4" + - id: 150 + transactions: [] + epoch: "2.4" + - id: 151 + transactions: [] + epoch: "2.4" + - id: 152 + transactions: [] + epoch: "2.4" + - id: 153 + transactions: [] + epoch: "2.4" + - id: 154 + transactions: [] + epoch: "2.4" + - id: 155 + transactions: [] + epoch: "2.4" + - id: 156 + transactions: [] + epoch: "2.4" + - id: 157 + transactions: [] + epoch: "2.4" + - id: 158 + transactions: [] + epoch: "2.4" + - id: 159 + transactions: [] + epoch: "2.4" + - id: 160 + transactions: [] + epoch: "2.4" + - id: 161 + transactions: [] + epoch: "2.4" + - id: 162 + transactions: [] + epoch: "2.4" + - id: 163 + transactions: [] + epoch: "2.4" + - id: 164 + transactions: [] + epoch: "2.4" + - id: 165 + transactions: [] + epoch: "2.4" + - id: 166 + transactions: [] + epoch: "2.4" + - id: 167 + transactions: [] + epoch: "2.4" + - id: 168 + transactions: [] + epoch: "2.4" + - id: 169 + transactions: [] + epoch: "2.4" + - id: 170 + transactions: [] + epoch: "2.4" + - id: 171 + transactions: [] + epoch: "2.4" + - id: 172 + transactions: [] + epoch: "2.4" + - id: 173 + transactions: [] + epoch: "2.4" + - id: 174 + transactions: [] + epoch: "2.4" + - id: 175 + transactions: [] + epoch: "2.4" + - id: 176 + transactions: [] + epoch: "2.4" + - id: 177 + transactions: [] + epoch: "2.4" + - id: 178 + transactions: [] + epoch: "2.4" + - id: 179 + transactions: [] + epoch: "2.4" + - id: 180 + transactions: [] + epoch: "2.4" + - id: 181 + transactions: [] + epoch: "2.4" + - id: 182 + transactions: [] + epoch: "2.4" + - id: 183 + transactions: [] + epoch: "2.4" + - id: 184 + transactions: [] + epoch: "2.4" + - id: 185 + transactions: [] + epoch: "2.4" + - id: 186 + transactions: [] + epoch: "2.4" + - id: 187 + transactions: [] + epoch: "2.4" + - id: 188 + transactions: [] + epoch: "2.4" + - id: 189 + transactions: [] + epoch: "2.4" + - id: 190 + transactions: [] + epoch: "2.4" + - id: 191 + transactions: [] + epoch: "2.4" + - id: 192 + transactions: [] + epoch: "2.4" + - id: 193 + transactions: [] + epoch: "2.4" + - id: 194 + transactions: [] + epoch: "2.4" + - id: 195 + transactions: [] + epoch: "2.4" + - id: 196 + transactions: [] + epoch: "2.4" + - id: 197 + transactions: [] + epoch: "2.4" + - id: 198 + transactions: [] + epoch: "2.4" + - id: 199 + transactions: [] + epoch: "2.4" + - id: 200 + transactions: [] + epoch: "2.4" + - id: 201 + transactions: [] + epoch: "2.4" + - id: 202 + transactions: [] + epoch: "2.4" + - id: 203 + transactions: [] + epoch: "2.4" + - id: 204 + transactions: [] + epoch: "2.4" + - id: 205 + transactions: [] + epoch: "2.4" + - id: 206 + transactions: [] + epoch: "2.4" + - id: 207 + transactions: [] + epoch: "2.4" + - id: 208 + transactions: [] + epoch: "2.4" + - id: 209 + transactions: [] + epoch: "2.4" + - id: 210 + transactions: [] + epoch: "2.4" + - id: 211 + transactions: [] + epoch: "2.4" + - id: 212 + transactions: [] + epoch: "2.4" + - id: 213 + transactions: [] + epoch: "2.4" + - id: 214 + transactions: [] + epoch: "2.4" + - id: 215 + transactions: [] + epoch: "2.4" + - id: 216 + transactions: [] + epoch: "2.4" + - id: 217 + transactions: [] + epoch: "2.4" + - id: 218 + transactions: [] + epoch: "2.4" + - id: 219 + transactions: [] + epoch: "2.4" + - id: 220 + transactions: [] + epoch: "2.4" + - id: 221 + transactions: [] + epoch: "2.4" + - id: 222 + transactions: [] + epoch: "2.4" + - id: 223 + transactions: [] + epoch: "2.4" + - id: 224 + transactions: [] + epoch: "2.4" + - id: 225 + transactions: [] + epoch: "2.4" + - id: 226 + transactions: [] + epoch: "2.4" + - id: 227 + transactions: [] + epoch: "2.4" + - id: 228 + transactions: [] + epoch: "2.4" + - id: 229 + transactions: [] + epoch: "2.4" + - id: 230 + transactions: [] + epoch: "2.4" + - id: 231 + transactions: [] + epoch: "2.4" + - id: 232 + transactions: [] + epoch: "2.4" + - id: 233 + transactions: [] + epoch: "2.4" + - id: 234 + transactions: [] + epoch: "2.4" + - id: 235 + transactions: [] + epoch: "2.4" + - id: 236 + transactions: [] + epoch: "2.4" + - id: 237 + transactions: [] + epoch: "2.4" + - id: 238 + transactions: [] + epoch: "2.4" + - id: 239 + transactions: [] + epoch: "2.4" + - id: 240 + transactions: [] + epoch: "2.4" + - id: 241 + transactions: [] + epoch: "2.4" + - id: 242 + transactions: [] + epoch: "2.4" + - id: 243 + transactions: [] + epoch: "2.4" + - id: 244 + transactions: [] + epoch: "2.4" + - id: 245 + transactions: [] + epoch: "2.4" + - id: 246 + transactions: [] + epoch: "2.4" + - id: 247 + transactions: [] + epoch: "2.4" + - id: 248 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -530,7 +1259,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" clarity-version: 2 epoch: "2.5" - - id: 6 + - id: 249 transactions: - emulated-contract-publish: contract-name: lip004 @@ -592,6 +1321,11 @@ plan: emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry.clar" clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint.clar" + clarity-version: 2 - emulated-contract-publish: contract-name: auto-alex-v3-wrapped emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM @@ -652,14 +1386,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip009.clar clarity-version: 2 + epoch: "2.5" + - id: 250 + transactions: - emulated-contract-publish: contract-name: lip010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip010.clar clarity-version: 2 - epoch: "2.5" - - id: 7 - transactions: - emulated-contract-publish: contract-name: lip011 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -671,3 +1405,546 @@ plan: path: contracts/mocks/tests/mock-boot.clar clarity-version: 2 epoch: "2.5" + - id: 251 + transactions: [] + epoch: "2.5" + - id: 252 + transactions: [] + epoch: "2.5" + - id: 253 + transactions: [] + epoch: "2.5" + - id: 254 + transactions: [] + epoch: "2.5" + - id: 255 + transactions: [] + epoch: "2.5" + - id: 256 + transactions: [] + epoch: "2.5" + - id: 257 + transactions: [] + epoch: "2.5" + - id: 258 + transactions: [] + epoch: "2.5" + - id: 259 + transactions: [] + epoch: "2.5" + - id: 260 + transactions: [] + epoch: "2.5" + - id: 261 + transactions: [] + epoch: "2.5" + - id: 262 + transactions: [] + epoch: "2.5" + - id: 263 + transactions: [] + epoch: "2.5" + - id: 264 + transactions: [] + epoch: "2.5" + - id: 265 + transactions: [] + epoch: "2.5" + - id: 266 + transactions: [] + epoch: "2.5" + - id: 267 + transactions: [] + epoch: "2.5" + - id: 268 + transactions: [] + epoch: "2.5" + - id: 269 + transactions: [] + epoch: "2.5" + - id: 270 + transactions: [] + epoch: "2.5" + - id: 271 + transactions: [] + epoch: "2.5" + - id: 272 + transactions: [] + epoch: "2.5" + - id: 273 + transactions: [] + epoch: "2.5" + - id: 274 + transactions: [] + epoch: "2.5" + - id: 275 + transactions: [] + epoch: "2.5" + - id: 276 + transactions: [] + epoch: "2.5" + - id: 277 + transactions: [] + epoch: "2.5" + - id: 278 + transactions: [] + epoch: "2.5" + - id: 279 + transactions: [] + epoch: "2.5" + - id: 280 + transactions: [] + epoch: "2.5" + - id: 281 + transactions: [] + epoch: "2.5" + - id: 282 + transactions: [] + epoch: "2.5" + - id: 283 + transactions: [] + epoch: "2.5" + - id: 284 + transactions: [] + epoch: "2.5" + - id: 285 + transactions: [] + epoch: "2.5" + - id: 286 + transactions: [] + epoch: "2.5" + - id: 287 + transactions: [] + epoch: "2.5" + - id: 288 + transactions: [] + epoch: "2.5" + - id: 289 + transactions: [] + epoch: "2.5" + - id: 290 + transactions: [] + epoch: "2.5" + - id: 291 + transactions: [] + epoch: "2.5" + - id: 292 + transactions: [] + epoch: "2.5" + - id: 293 + transactions: [] + epoch: "2.5" + - id: 294 + transactions: [] + epoch: "2.5" + - id: 295 + transactions: [] + epoch: "2.5" + - id: 296 + transactions: [] + epoch: "2.5" + - id: 297 + transactions: [] + epoch: "2.5" + - id: 298 + transactions: [] + epoch: "2.5" + - id: 299 + transactions: [] + epoch: "2.5" + - id: 300 + transactions: [] + epoch: "2.5" + - id: 301 + transactions: [] + epoch: "2.5" + - id: 302 + transactions: [] + epoch: "2.5" + - id: 303 + transactions: [] + epoch: "2.5" + - id: 304 + transactions: [] + epoch: "2.5" + - id: 305 + transactions: [] + epoch: "2.5" + - id: 306 + transactions: [] + epoch: "2.5" + - id: 307 + transactions: [] + epoch: "2.5" + - id: 308 + transactions: [] + epoch: "2.5" + - id: 309 + transactions: [] + epoch: "2.5" + - id: 310 + transactions: [] + epoch: "2.5" + - id: 311 + transactions: [] + epoch: "2.5" + - id: 312 + transactions: [] + epoch: "2.5" + - id: 313 + transactions: [] + epoch: "2.5" + - id: 314 + transactions: [] + epoch: "2.5" + - id: 315 + transactions: [] + epoch: "2.5" + - id: 316 + transactions: [] + epoch: "2.5" + - id: 317 + transactions: [] + epoch: "2.5" + - id: 318 + transactions: [] + epoch: "2.5" + - id: 319 + transactions: [] + epoch: "2.5" + - id: 320 + transactions: [] + epoch: "2.5" + - id: 321 + transactions: [] + epoch: "2.5" + - id: 322 + transactions: [] + epoch: "2.5" + - id: 323 + transactions: [] + epoch: "2.5" + - id: 324 + transactions: [] + epoch: "2.5" + - id: 325 + transactions: [] + epoch: "2.5" + - id: 326 + transactions: [] + epoch: "2.5" + - id: 327 + transactions: [] + epoch: "2.5" + - id: 328 + transactions: [] + epoch: "2.5" + - id: 329 + transactions: [] + epoch: "2.5" + - id: 330 + transactions: [] + epoch: "2.5" + - id: 331 + transactions: [] + epoch: "2.5" + - id: 332 + transactions: [] + epoch: "2.5" + - id: 333 + transactions: [] + epoch: "2.5" + - id: 334 + transactions: [] + epoch: "2.5" + - id: 335 + transactions: [] + epoch: "2.5" + - id: 336 + transactions: [] + epoch: "2.5" + - id: 337 + transactions: [] + epoch: "2.5" + - id: 338 + transactions: [] + epoch: "2.5" + - id: 339 + transactions: [] + epoch: "2.5" + - id: 340 + transactions: [] + epoch: "2.5" + - id: 341 + transactions: [] + epoch: "2.5" + - id: 342 + transactions: [] + epoch: "2.5" + - id: 343 + transactions: [] + epoch: "2.5" + - id: 344 + transactions: [] + epoch: "2.5" + - id: 345 + transactions: [] + epoch: "2.5" + - id: 346 + transactions: [] + epoch: "2.5" + - id: 347 + transactions: [] + epoch: "2.5" + - id: 348 + transactions: [] + epoch: "2.5" + - id: 349 + transactions: [] + epoch: "2.5" + - id: 350 + transactions: [] + epoch: "2.5" + - id: 351 + transactions: [] + epoch: "2.5" + - id: 352 + transactions: [] + epoch: "2.5" + - id: 353 + transactions: [] + epoch: "2.5" + - id: 354 + transactions: [] + epoch: "2.5" + - id: 355 + transactions: [] + epoch: "2.5" + - id: 356 + transactions: [] + epoch: "2.5" + - id: 357 + transactions: [] + epoch: "2.5" + - id: 358 + transactions: [] + epoch: "2.5" + - id: 359 + transactions: [] + epoch: "2.5" + - id: 360 + transactions: [] + epoch: "2.5" + - id: 361 + transactions: [] + epoch: "2.5" + - id: 362 + transactions: [] + epoch: "2.5" + - id: 363 + transactions: [] + epoch: "2.5" + - id: 364 + transactions: [] + epoch: "2.5" + - id: 365 + transactions: [] + epoch: "2.5" + - id: 366 + transactions: [] + epoch: "2.5" + - id: 367 + transactions: [] + epoch: "2.5" + - id: 368 + transactions: [] + epoch: "2.5" + - id: 369 + transactions: [] + epoch: "2.5" + - id: 370 + transactions: [] + epoch: "2.5" + - id: 371 + transactions: [] + epoch: "2.5" + - id: 372 + transactions: [] + epoch: "2.5" + - id: 373 + transactions: [] + epoch: "2.5" + - id: 374 + transactions: [] + epoch: "2.5" + - id: 375 + transactions: [] + epoch: "2.5" + - id: 376 + transactions: [] + epoch: "2.5" + - id: 377 + transactions: [] + epoch: "2.5" + - id: 378 + transactions: [] + epoch: "2.5" + - id: 379 + transactions: [] + epoch: "2.5" + - id: 380 + transactions: [] + epoch: "2.5" + - id: 381 + transactions: [] + epoch: "2.5" + - id: 382 + transactions: [] + epoch: "2.5" + - id: 383 + transactions: [] + epoch: "2.5" + - id: 384 + transactions: [] + epoch: "2.5" + - id: 385 + transactions: [] + epoch: "2.5" + - id: 386 + transactions: [] + epoch: "2.5" + - id: 387 + transactions: [] + epoch: "2.5" + - id: 388 + transactions: [] + epoch: "2.5" + - id: 389 + transactions: [] + epoch: "2.5" + - id: 390 + transactions: [] + epoch: "2.5" + - id: 391 + transactions: [] + epoch: "2.5" + - id: 392 + transactions: [] + epoch: "2.5" + - id: 393 + transactions: [] + epoch: "2.5" + - id: 394 + transactions: [] + epoch: "2.5" + - id: 395 + transactions: [] + epoch: "2.5" + - id: 396 + transactions: [] + epoch: "2.5" + - id: 397 + transactions: [] + epoch: "2.5" + - id: 398 + transactions: [] + epoch: "2.5" + - id: 399 + transactions: [] + epoch: "2.5" + - id: 400 + transactions: [] + epoch: "2.5" + - id: 401 + transactions: [] + epoch: "2.5" + - id: 402 + transactions: [] + epoch: "2.5" + - id: 403 + transactions: [] + epoch: "2.5" + - id: 404 + transactions: [] + epoch: "2.5" + - id: 405 + transactions: [] + epoch: "2.5" + - id: 406 + transactions: [] + epoch: "2.5" + - id: 407 + transactions: [] + epoch: "2.5" + - id: 408 + transactions: [] + epoch: "2.5" + - id: 409 + transactions: [] + epoch: "2.5" + - id: 410 + transactions: [] + epoch: "2.5" + - id: 411 + transactions: [] + epoch: "2.5" + - id: 412 + transactions: [] + epoch: "2.5" + - id: 413 + transactions: [] + epoch: "2.5" + - id: 414 + transactions: [] + epoch: "2.5" + - id: 415 + transactions: [] + epoch: "2.5" + - id: 416 + transactions: [] + epoch: "2.5" + - id: 417 + transactions: [] + epoch: "2.5" + - id: 418 + transactions: [] + epoch: "2.5" + - id: 419 + transactions: [] + epoch: "2.5" + - id: 420 + transactions: [] + epoch: "2.5" + - id: 421 + transactions: [] + epoch: "2.5" + - id: 422 + transactions: [] + epoch: "2.5" + - id: 423 + transactions: [] + epoch: "2.5" + - id: 424 + transactions: [] + epoch: "2.5" + - id: 425 + transactions: [] + epoch: "2.5" + - id: 426 + transactions: [] + epoch: "2.5" + - id: 427 + transactions: [] + epoch: "2.5" + - id: 428 + transactions: [] + epoch: "2.5" + - id: 429 + transactions: [] + epoch: "2.5" + - id: 430 + transactions: [] + epoch: "2.5" + - id: 431 + transactions: [] + epoch: "2.5" diff --git a/package.json b/package.json index 2e8d1e6..e21e5e2 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,18 @@ "description": "Run unit tests on this project.", "private": true, "scripts": { - "multisig-plan": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/create-multisig-deployment-plan.ts", - "multisig-stx-transfer": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/create-multisig-stx-transfer-plan.ts", - "multisig-sign": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/sign-multisig-deployment-plan.ts", - "multisig-broadcast": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/broadcast-multisig-deployment-plan.ts", - "multisig-analyse": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/analyse-multisig-deployment-plan.ts", - "get-keys": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/get-secret-pubkeys.ts", - "generate-secret": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/generate-secret.ts", - "error-codes": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/error-codes.ts", - "replace:mainnet": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/replace-mainnet-address.ts", - "replace:testnet": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/replace-testnet-address.ts", + "multisig-plan": "pnpm tsx ./scripts/create-multisig-deployment-plan.ts", + "multisig-stx-transfer": "pnpm tsx ./scripts/create-multisig-stx-transfer-plan.ts", + "multisig-sign": "pnpm tsx ./scripts/sign-multisig-deployment-plan.ts", + "multisig-broadcast": "pnpm tsx ./scripts/broadcast-multisig-deployment-plan.ts", + "multisig-analyse": "pnpm tsx ./scripts/analyse-multisig-deployment-plan.ts", + "get-keys": "pnpm tsx ./scripts/get-secret-pubkeys.ts", + "generate-secret": "pnpm tsx ./scripts/generate-secret.ts", + "error-codes": "pnpm tsx ./scripts/error-codes.ts", + "replace:mainnet": "pnpm tsx ./scripts/replace-mainnet-address.ts", + "replace:testnet": "pnpm tsx ./scripts/replace-testnet-address.ts", "setup:clarity": "./scripts/clarinet_manager.sh clean && ./scripts/clarinet_manager.sh install", - "simulate": "node --no-warnings=ExperimentalWarning --loader ts-node/esm scripts/simulate.ts", + "simulate": "pnpm tsx scripts/simulate.ts", "test": "npm run replace:mainnet && vitest run && npm run replace:testnet", "test:init": "vitest run -t notests", "test:report": "npm run replace:mainnet && vitest run -- --coverage --costs && npm run replace:testnet", diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index 66978f8..5f90928 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -47,27 +47,26 @@ describe('auto-alex-v3', () => { // console.log(`auto-alex-v2 bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2")], wallet_1).result.value.value}`); // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); - if (cycle > 1) { - console.log('cycle', cycle); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-user-id', [], wallet_1).result); - console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); - console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); - console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); - // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); - console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle)], wallet_1).result.data); - // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); - // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); - // console.log('balance', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); - // console.log('balance', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); - } - response = simnet.mineBlock([ tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer) ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); + expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); + + console.log('cycle', cycle + 1); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-user-id', [], wallet_1).result); + console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); + console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); + console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); + // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); + console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle + 1)], wallet_1).result.data); + // console.log('staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staker-at-cycle-or-default', [Cl.uint(cycle), Cl.uint(1)], wallet_1).result.data); + // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); + // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); + console.log('balance', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); + // console.log('balance', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); if (cycle == 2) { response = simnet.mineBlock([ @@ -125,7 +124,7 @@ describe('auto-alex-v3', () => { tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); - } + } } }); From 0dd8e11b4e119bb554662a962f9f6e5917ab0d43 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Tue, 10 Sep 2024 10:28:54 +0800 Subject: [PATCH 8/9] auto-alex-v3-endpoint-v2: staking optimisation added --- .../extensions/auto-alex-v3-endpoint-v2.clar | 48 +- .../auto-whitelist-mint-helper.clar | 2 +- contracts/extensions/lqstx-mint-endpoint.clar | 2 +- contracts/mocks/tests/legacy-boot.clar | 3 +- .../public-pools/fastpool-member.clar | 4 +- .../public-pools/xverse-member.clar | 4 +- deployments/default.simnet-plan.yaml | 1448 ++++------------- package.json | 16 +- pnpm-lock.yaml | 410 ++--- tests/auto-alex-v3.test.ts | 76 +- tests/clients/mock-client.ts | 1 + 11 files changed, 627 insertions(+), 1387 deletions(-) diff --git a/contracts/extensions/auto-alex-v3-endpoint-v2.clar b/contracts/extensions/auto-alex-v3-endpoint-v2.clar index 7614316..4a740e8 100644 --- a/contracts/extensions/auto-alex-v3-endpoint-v2.clar +++ b/contracts/extensions/auto-alex-v3-endpoint-v2.clar @@ -13,7 +13,6 @@ (define-constant err-claim-and-stake (err u10018)) (define-constant err-no-redeem-revoke (err u10019)) (define-constant err-request-finalized-or-revoked (err u10020)) -(define-constant err-redeem-imbalance (err u10021)) (define-constant err-end-cycle-v2 (err u10022)) (define-constant ONE_8 u100000000) @@ -81,6 +80,15 @@ (define-read-only (get-intrinsic) (get-shares-to-tokens ONE_8)) +(define-read-only (get-reward-cycle (burn-height uint)) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) + +(define-read-only (get-staking-reward (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) + +(define-read-only (get-staker-at-cycle (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) + ;; governance calls (define-public (pause-create (pause bool)) @@ -101,8 +109,7 @@ (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) (start-cycle (get-start-cycle)) (check-start-cycle (asserts! (<= start-cycle current-cycle) err-not-activated))) - (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) + (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) (ok current-cycle))) ;; claims alex for the reward-cycles and mint auto-alex-v3 @@ -164,10 +171,9 @@ (check-claim-and-stake (and (not (is-cycle-staked redeem-cycle)) (try! (claim-and-stake redeem-cycle)))) (current-cycle (try! (rebase))) (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1))) - (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u32))) (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) - (updated-request-details (merge request-details { status: FINALIZED })) - (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (updated-request-details (merge request-details { status: FINALIZED }))) (asserts! (not (is-redeem-paused)) err-paused) (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) @@ -208,18 +214,17 @@ ;; claim all that's available to claim for the reward-cycle (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) - (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) + (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 - (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) - (intrinsic (get-shares-to-tokens ONE_8)) - (balance (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33)))))) (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) - (asserts! (>= tokens redeeming) err-redeem-imbalance) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-staked-cycle reward-cycle true))) - (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle intrinsic))) - (and (> redeeming u0) (as-contract (unwrap! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn redeeming 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3) (err redeeming)))) - (and (> redeeming u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex redeeming tx-sender)))) - (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens redeeming) }))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle (get-shares-to-tokens ONE_8)))) + (and (> (min tokens redeeming) u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn (min tokens redeeming) 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (and (> (min tokens redeeming) u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex (min tokens redeeming) tx-sender)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens (min tokens redeeming)) }))) (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens }}) (ok true))) @@ -233,7 +238,8 @@ ok-value (let ( (reward-cycle (+ (get current-cycle ok-value) cycles-to-stake)) - (redeeming (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle))) + (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + (div-down (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) (returning (+ (get to-return (get-staker-at-cycle reward-cycle)) (get-staking-reward reward-cycle))) (staking (if (is-eq cycles-to-stake max-cycles) (get remaining ok-value) @@ -246,15 +252,6 @@ (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) err-value previous-response)) -(define-private (get-reward-cycle (burn-height uint)) - (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) - -(define-private (get-staking-reward (reward-cycle uint)) - (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) - -(define-read-only (get-staker-at-cycle (reward-cycle uint)) - (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) - (define-private (get-user-id) (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) @@ -283,4 +280,5 @@ (if (is-eq a u0) u0 (/ (* a ONE_8) b))) (define-private (max (a uint) (b uint)) (if (> a b) a b)) +(define-private (min (a uint) (b uint)) (if (< a b) a b)) diff --git a/contracts/extensions/auto-whitelist-mint-helper.clar b/contracts/extensions/auto-whitelist-mint-helper.clar index b01556d..0a46bce 100644 --- a/contracts/extensions/auto-whitelist-mint-helper.clar +++ b/contracts/extensions/auto-whitelist-mint-helper.clar @@ -22,7 +22,7 @@ (define-read-only (was-stacking-in-eligible-pool-height (who principal) (height uint)) (at-block (unwrap! (get-block-info? id-header-hash height) false) - (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-stacker-info who) false))) + (is-eligible-pox-address (get pox-addr (unwrap! (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-stacker-info who) false))) ) ) diff --git a/contracts/extensions/lqstx-mint-endpoint.clar b/contracts/extensions/lqstx-mint-endpoint.clar index 61e4c88..694007f 100644 --- a/contracts/extensions/lqstx-mint-endpoint.clar +++ b/contracts/extensions/lqstx-mint-endpoint.clar @@ -29,7 +29,7 @@ ;; __IF_MAINNET__ (define-data-var request-cutoff uint u300) ;; request must be made 300 blocks before prepare stage starts -(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-4 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-4 get-pox-info))) (define-constant activation-burn-block (get first-burnchain-block-height pox-info)) (define-constant reward-cycle-length (get reward-cycle-length pox-info)) (define-constant prepare-cycle-length (get prepare-cycle-length pox-info)) diff --git a/contracts/mocks/tests/legacy-boot.clar b/contracts/mocks/tests/legacy-boot.clar index 12a82e2..df4bb4c 100644 --- a/contracts/mocks/tests/legacy-boot.clar +++ b/contracts/mocks/tests/legacy-boot.clar @@ -20,8 +20,9 @@ (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token mint-fixed ONE_8 'ST2CY5V39NHDPWSXMW9QDT3HC3GD6Q6XX4CFRK9AG)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-vault add-approved-token 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool add-token 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token)) - (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool set-activation-block 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token u20)) + (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool set-activation-block 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token block-height)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool set-coinbase-amount 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token ONE_8 ONE_8 ONE_8 ONE_8 ONE_8)) + ;; (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool set-coinbase-amount 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token u0 u0 u0 u0 u0)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 set-start-cycle u0)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 set-bounty-in-fixed u1)) (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 pause-create false)) diff --git a/contracts/strategies/public-pools/fastpool-member.clar b/contracts/strategies/public-pools/fastpool-member.clar index 98eb7e0..660b7fd 100644 --- a/contracts/strategies/public-pools/fastpool-member.clar +++ b/contracts/strategies/public-pools/fastpool-member.clar @@ -4,7 +4,7 @@ (define-constant err-unauthorised (err u5000)) -(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox4-fast-pool-v3 none)) (define-read-only (is-strategy-caller) (ok (asserts! (is-eq contract-caller .public-pools-strategy-v2) err-unauthorised)) @@ -21,7 +21,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/contracts/strategies/public-pools/xverse-member.clar b/contracts/strategies/public-pools/xverse-member.clar index c688125..305b7d7 100644 --- a/contracts/strategies/public-pools/xverse-member.clar +++ b/contracts/strategies/public-pools/xverse-member.clar @@ -8,7 +8,7 @@ { hashbytes: 0x827a04335a9eb22cb46979f180670c8e7ba453b5, version: 0x04 } ) -(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox4-pools none)) (define-read-only (is-dao-or-extension) (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised)) @@ -37,7 +37,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-4 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-4 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 918f764..a6c2547 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -213,120 +213,6 @@ plan: transactions: [] epoch: "2.1" - id: 25 - transactions: [] - epoch: "2.1" - - id: 26 - transactions: [] - epoch: "2.1" - - id: 27 - transactions: [] - epoch: "2.1" - - id: 28 - transactions: [] - epoch: "2.1" - - id: 29 - transactions: [] - epoch: "2.1" - - id: 30 - transactions: [] - epoch: "2.1" - - id: 31 - transactions: [] - epoch: "2.1" - - id: 32 - transactions: [] - epoch: "2.1" - - id: 33 - transactions: [] - epoch: "2.1" - - id: 34 - transactions: [] - epoch: "2.1" - - id: 35 - transactions: [] - epoch: "2.1" - - id: 36 - transactions: [] - epoch: "2.1" - - id: 37 - transactions: [] - epoch: "2.1" - - id: 38 - transactions: [] - epoch: "2.1" - - id: 39 - transactions: [] - epoch: "2.1" - - id: 40 - transactions: [] - epoch: "2.1" - - id: 41 - transactions: [] - epoch: "2.1" - - id: 42 - transactions: [] - epoch: "2.1" - - id: 43 - transactions: [] - epoch: "2.1" - - id: 44 - transactions: [] - epoch: "2.1" - - id: 45 - transactions: [] - epoch: "2.1" - - id: 46 - transactions: [] - epoch: "2.1" - - id: 47 - transactions: [] - epoch: "2.1" - - id: 48 - transactions: [] - epoch: "2.1" - - id: 49 - transactions: [] - epoch: "2.1" - - id: 50 - transactions: [] - epoch: "2.1" - - id: 51 - transactions: [] - epoch: "2.1" - - id: 52 - transactions: [] - epoch: "2.1" - - id: 53 - transactions: [] - epoch: "2.1" - - id: 54 - transactions: [] - epoch: "2.1" - - id: 55 - transactions: [] - epoch: "2.1" - - id: 56 - transactions: [] - epoch: "2.1" - - id: 57 - transactions: [] - epoch: "2.1" - - id: 58 - transactions: [] - epoch: "2.1" - - id: 59 - transactions: [] - epoch: "2.1" - - id: 60 - transactions: [] - epoch: "2.1" - - id: 61 - transactions: [] - epoch: "2.1" - - id: 62 - transactions: [] - epoch: "2.1" - - id: 63 transactions: - emulated-contract-publish: contract-name: auto-alex-v2 @@ -334,190 +220,76 @@ plan: path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" clarity-version: 2 epoch: "2.3" - - id: 64 - transactions: [] - epoch: "2.3" - - id: 65 - transactions: [] - epoch: "2.3" - - id: 66 - transactions: [] - epoch: "2.3" - - id: 67 - transactions: [] - epoch: "2.3" - - id: 68 - transactions: [] - epoch: "2.3" - - id: 69 - transactions: [] - epoch: "2.3" - - id: 70 - transactions: [] - epoch: "2.3" - - id: 71 - transactions: [] - epoch: "2.3" - - id: 72 - transactions: [] - epoch: "2.3" - - id: 73 - transactions: [] - epoch: "2.3" - - id: 74 - transactions: [] - epoch: "2.3" - - id: 75 - transactions: [] - epoch: "2.3" - - id: 76 - transactions: [] - epoch: "2.3" - - id: 77 - transactions: [] - epoch: "2.3" - - id: 78 - transactions: [] - epoch: "2.3" - - id: 79 - transactions: [] - epoch: "2.3" - - id: 80 - transactions: [] - epoch: "2.3" - - id: 81 - transactions: [] - epoch: "2.3" - - id: 82 - transactions: [] - epoch: "2.3" - - id: 83 - transactions: [] - epoch: "2.3" - - id: 84 - transactions: [] - epoch: "2.3" - - id: 85 - transactions: [] - epoch: "2.3" - - id: 86 - transactions: [] - epoch: "2.3" - - id: 87 - transactions: [] - epoch: "2.3" - - id: 88 - transactions: [] - epoch: "2.3" - - id: 89 - transactions: [] - epoch: "2.3" - - id: 90 - transactions: [] - epoch: "2.3" - - id: 91 - transactions: [] - epoch: "2.3" - - id: 92 - transactions: [] - epoch: "2.3" - - id: 93 - transactions: [] - epoch: "2.3" - - id: 94 - transactions: [] - epoch: "2.3" - - id: 95 - transactions: [] - epoch: "2.3" - - id: 96 + - id: 26 transactions: [] epoch: "2.3" - - id: 97 + - id: 27 transactions: [] epoch: "2.3" - - id: 98 + - id: 28 transactions: [] epoch: "2.3" - - id: 99 + - id: 29 transactions: [] epoch: "2.3" - - id: 100 + - id: 30 transactions: [] epoch: "2.3" - - id: 101 + - id: 31 transactions: [] epoch: "2.3" - - id: 102 + - id: 32 transactions: [] epoch: "2.3" - - id: 103 + - id: 33 transactions: [] epoch: "2.3" - - id: 104 + - id: 34 transactions: [] epoch: "2.3" - - id: 105 + - id: 35 transactions: [] epoch: "2.3" - - id: 106 + - id: 36 transactions: [] epoch: "2.3" - - id: 107 + - id: 37 transactions: [] epoch: "2.3" - - id: 108 + - id: 38 transactions: [] epoch: "2.3" - - id: 109 + - id: 39 transactions: [] epoch: "2.3" - - id: 110 + - id: 40 transactions: [] epoch: "2.3" - - id: 111 + - id: 41 transactions: [] epoch: "2.3" - - id: 112 + - id: 42 transactions: [] epoch: "2.3" - - id: 113 + - id: 43 transactions: [] epoch: "2.3" - - id: 114 + - id: 44 transactions: [] epoch: "2.3" - - id: 115 + - id: 45 transactions: [] epoch: "2.3" - - id: 116 + - id: 46 transactions: [] epoch: "2.3" - - id: 117 + - id: 47 transactions: [] epoch: "2.3" - - id: 118 + - id: 48 transactions: [] epoch: "2.3" - - id: 119 - transactions: [] - epoch: "2.3" - - id: 120 - transactions: [] - epoch: "2.3" - - id: 121 - transactions: [] - epoch: "2.3" - - id: 122 - transactions: [] - epoch: "2.3" - - id: 123 - transactions: [] - epoch: "2.3" - - id: 124 - transactions: [] - epoch: "2.3" - - id: 125 + - id: 49 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -645,7 +417,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 126 + - id: 50 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -768,370 +540,142 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 127 - transactions: [] - epoch: "2.4" - - id: 128 - transactions: [] - epoch: "2.4" - - id: 129 - transactions: [] - epoch: "2.4" - - id: 130 - transactions: [] - epoch: "2.4" - - id: 131 - transactions: [] - epoch: "2.4" - - id: 132 - transactions: [] - epoch: "2.4" - - id: 133 - transactions: [] - epoch: "2.4" - - id: 134 - transactions: [] - epoch: "2.4" - - id: 135 - transactions: [] - epoch: "2.4" - - id: 136 - transactions: [] - epoch: "2.4" - - id: 137 - transactions: [] - epoch: "2.4" - - id: 138 - transactions: [] - epoch: "2.4" - - id: 139 - transactions: [] - epoch: "2.4" - - id: 140 - transactions: [] - epoch: "2.4" - - id: 141 - transactions: [] - epoch: "2.4" - - id: 142 - transactions: [] - epoch: "2.4" - - id: 143 - transactions: [] - epoch: "2.4" - - id: 144 - transactions: [] - epoch: "2.4" - - id: 145 - transactions: [] - epoch: "2.4" - - id: 146 - transactions: [] - epoch: "2.4" - - id: 147 - transactions: [] - epoch: "2.4" - - id: 148 - transactions: [] - epoch: "2.4" - - id: 149 - transactions: [] - epoch: "2.4" - - id: 150 - transactions: [] - epoch: "2.4" - - id: 151 - transactions: [] - epoch: "2.4" - - id: 152 - transactions: [] - epoch: "2.4" - - id: 153 - transactions: [] - epoch: "2.4" - - id: 154 - transactions: [] - epoch: "2.4" - - id: 155 - transactions: [] - epoch: "2.4" - - id: 156 - transactions: [] - epoch: "2.4" - - id: 157 - transactions: [] - epoch: "2.4" - - id: 158 - transactions: [] - epoch: "2.4" - - id: 159 - transactions: [] - epoch: "2.4" - - id: 160 - transactions: [] - epoch: "2.4" - - id: 161 - transactions: [] - epoch: "2.4" - - id: 162 - transactions: [] - epoch: "2.4" - - id: 163 - transactions: [] - epoch: "2.4" - - id: 164 - transactions: [] - epoch: "2.4" - - id: 165 - transactions: [] - epoch: "2.4" - - id: 166 - transactions: [] - epoch: "2.4" - - id: 167 - transactions: [] - epoch: "2.4" - - id: 168 - transactions: [] - epoch: "2.4" - - id: 169 - transactions: [] - epoch: "2.4" - - id: 170 - transactions: [] - epoch: "2.4" - - id: 171 - transactions: [] - epoch: "2.4" - - id: 172 - transactions: [] - epoch: "2.4" - - id: 173 - transactions: [] - epoch: "2.4" - - id: 174 - transactions: [] - epoch: "2.4" - - id: 175 - transactions: [] - epoch: "2.4" - - id: 176 - transactions: [] - epoch: "2.4" - - id: 177 - transactions: [] - epoch: "2.4" - - id: 178 - transactions: [] - epoch: "2.4" - - id: 179 - transactions: [] - epoch: "2.4" - - id: 180 - transactions: [] - epoch: "2.4" - - id: 181 - transactions: [] - epoch: "2.4" - - id: 182 - transactions: [] - epoch: "2.4" - - id: 183 - transactions: [] - epoch: "2.4" - - id: 184 - transactions: [] - epoch: "2.4" - - id: 185 - transactions: [] - epoch: "2.4" - - id: 186 - transactions: [] - epoch: "2.4" - - id: 187 - transactions: [] - epoch: "2.4" - - id: 188 - transactions: [] - epoch: "2.4" - - id: 189 - transactions: [] - epoch: "2.4" - - id: 190 - transactions: [] - epoch: "2.4" - - id: 191 - transactions: [] - epoch: "2.4" - - id: 192 - transactions: [] - epoch: "2.4" - - id: 193 - transactions: [] - epoch: "2.4" - - id: 194 - transactions: [] - epoch: "2.4" - - id: 195 - transactions: [] - epoch: "2.4" - - id: 196 - transactions: [] - epoch: "2.4" - - id: 197 - transactions: [] - epoch: "2.4" - - id: 198 - transactions: [] - epoch: "2.4" - - id: 199 - transactions: [] - epoch: "2.4" - - id: 200 - transactions: [] - epoch: "2.4" - - id: 201 - transactions: [] - epoch: "2.4" - - id: 202 + - id: 51 transactions: [] epoch: "2.4" - - id: 203 + - id: 52 transactions: [] epoch: "2.4" - - id: 204 + - id: 53 transactions: [] epoch: "2.4" - - id: 205 + - id: 54 transactions: [] epoch: "2.4" - - id: 206 + - id: 55 transactions: [] epoch: "2.4" - - id: 207 + - id: 56 transactions: [] epoch: "2.4" - - id: 208 + - id: 57 transactions: [] epoch: "2.4" - - id: 209 + - id: 58 transactions: [] epoch: "2.4" - - id: 210 + - id: 59 transactions: [] epoch: "2.4" - - id: 211 + - id: 60 transactions: [] epoch: "2.4" - - id: 212 + - id: 61 transactions: [] epoch: "2.4" - - id: 213 + - id: 62 transactions: [] epoch: "2.4" - - id: 214 + - id: 63 transactions: [] epoch: "2.4" - - id: 215 + - id: 64 transactions: [] epoch: "2.4" - - id: 216 + - id: 65 transactions: [] epoch: "2.4" - - id: 217 + - id: 66 transactions: [] epoch: "2.4" - - id: 218 + - id: 67 transactions: [] epoch: "2.4" - - id: 219 + - id: 68 transactions: [] epoch: "2.4" - - id: 220 + - id: 69 transactions: [] epoch: "2.4" - - id: 221 + - id: 70 transactions: [] epoch: "2.4" - - id: 222 + - id: 71 transactions: [] epoch: "2.4" - - id: 223 + - id: 72 transactions: [] epoch: "2.4" - - id: 224 + - id: 73 transactions: [] epoch: "2.4" - - id: 225 + - id: 74 transactions: [] epoch: "2.4" - - id: 226 + - id: 75 transactions: [] epoch: "2.4" - - id: 227 + - id: 76 transactions: [] epoch: "2.4" - - id: 228 + - id: 77 transactions: [] epoch: "2.4" - - id: 229 + - id: 78 transactions: [] epoch: "2.4" - - id: 230 + - id: 79 transactions: [] epoch: "2.4" - - id: 231 + - id: 80 transactions: [] epoch: "2.4" - - id: 232 + - id: 81 transactions: [] epoch: "2.4" - - id: 233 + - id: 82 transactions: [] epoch: "2.4" - - id: 234 + - id: 83 transactions: [] epoch: "2.4" - - id: 235 + - id: 84 transactions: [] epoch: "2.4" - - id: 236 + - id: 85 transactions: [] epoch: "2.4" - - id: 237 + - id: 86 transactions: [] epoch: "2.4" - - id: 238 + - id: 87 transactions: [] epoch: "2.4" - - id: 239 + - id: 88 transactions: [] epoch: "2.4" - - id: 240 + - id: 89 transactions: [] epoch: "2.4" - - id: 241 + - id: 90 transactions: [] epoch: "2.4" - - id: 242 + - id: 91 transactions: [] epoch: "2.4" - - id: 243 + - id: 92 transactions: [] epoch: "2.4" - - id: 244 + - id: 93 transactions: [] epoch: "2.4" - - id: 245 + - id: 94 transactions: [] epoch: "2.4" - - id: 246 + - id: 95 transactions: [] epoch: "2.4" - - id: 247 - transactions: [] - epoch: "2.4" - - id: 248 + - id: 96 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -1215,736 +759,394 @@ plan: clarity-version: 2 - emulated-contract-publish: contract-name: xverse-v2-member4 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member5 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member6 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member7 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member8 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: xverse-v2-member9 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint-v2-01 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: public-pools-strategy-manager-v2 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" - clarity-version: 2 - epoch: "2.5" - - id: 249 - transactions: - - emulated-contract-publish: - contract-name: lip004 - emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V - path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip005 - emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B - path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: extension-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: executor-dao - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: trait-sip-010 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: token-alex - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-staking-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: migrate-legacy-v2-wl - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3 - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-registry - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-endpoint - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-wrapped - emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM - path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip006 - emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 - path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: alex-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/alex-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-registry - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-registry.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-endpoint - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/auto-alex-v3-endpoint.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-endpoint-v2 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/auto-alex-v3-endpoint-v2.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: auto-alex-v3-wrapped - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/auto-alex-v3-wrapped.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: legacy-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/legacy-boot.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip007 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip007.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip008 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip008.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip009 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip009.clar - clarity-version: 2 - epoch: "2.5" - - id: 250 - transactions: - - emulated-contract-publish: - contract-name: lip010 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip010.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lip011 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/proposals/lip011.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: mock-boot - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/mocks/tests/mock-boot.clar - clarity-version: 2 - epoch: "2.5" - - id: 251 - transactions: [] - epoch: "2.5" - - id: 252 - transactions: [] - epoch: "2.5" - - id: 253 - transactions: [] - epoch: "2.5" - - id: 254 - transactions: [] - epoch: "2.5" - - id: 255 - transactions: [] - epoch: "2.5" - - id: 256 - transactions: [] - epoch: "2.5" - - id: 257 - transactions: [] - epoch: "2.5" - - id: 258 - transactions: [] - epoch: "2.5" - - id: 259 - transactions: [] - epoch: "2.5" - - id: 260 - transactions: [] - epoch: "2.5" - - id: 261 - transactions: [] - epoch: "2.5" - - id: 262 - transactions: [] - epoch: "2.5" - - id: 263 - transactions: [] - epoch: "2.5" - - id: 264 - transactions: [] - epoch: "2.5" - - id: 265 - transactions: [] - epoch: "2.5" - - id: 266 - transactions: [] - epoch: "2.5" - - id: 267 - transactions: [] - epoch: "2.5" - - id: 268 - transactions: [] - epoch: "2.5" - - id: 269 - transactions: [] - epoch: "2.5" - - id: 270 - transactions: [] - epoch: "2.5" - - id: 271 - transactions: [] - epoch: "2.5" - - id: 272 - transactions: [] - epoch: "2.5" - - id: 273 - transactions: [] - epoch: "2.5" - - id: 274 - transactions: [] - epoch: "2.5" - - id: 275 - transactions: [] - epoch: "2.5" - - id: 276 - transactions: [] - epoch: "2.5" - - id: 277 - transactions: [] - epoch: "2.5" - - id: 278 - transactions: [] - epoch: "2.5" - - id: 279 - transactions: [] - epoch: "2.5" - - id: 280 - transactions: [] - epoch: "2.5" - - id: 281 - transactions: [] - epoch: "2.5" - - id: 282 - transactions: [] - epoch: "2.5" - - id: 283 - transactions: [] - epoch: "2.5" - - id: 284 - transactions: [] - epoch: "2.5" - - id: 285 - transactions: [] - epoch: "2.5" - - id: 286 - transactions: [] - epoch: "2.5" - - id: 287 - transactions: [] - epoch: "2.5" - - id: 288 - transactions: [] - epoch: "2.5" - - id: 289 - transactions: [] - epoch: "2.5" - - id: 290 - transactions: [] - epoch: "2.5" - - id: 291 - transactions: [] - epoch: "2.5" - - id: 292 - transactions: [] - epoch: "2.5" - - id: 293 - transactions: [] - epoch: "2.5" - - id: 294 - transactions: [] - epoch: "2.5" - - id: 295 - transactions: [] - epoch: "2.5" - - id: 296 - transactions: [] - epoch: "2.5" - - id: 297 - transactions: [] - epoch: "2.5" - - id: 298 - transactions: [] - epoch: "2.5" - - id: 299 - transactions: [] - epoch: "2.5" - - id: 300 - transactions: [] - epoch: "2.5" - - id: 301 - transactions: [] - epoch: "2.5" - - id: 302 - transactions: [] - epoch: "2.5" - - id: 303 - transactions: [] - epoch: "2.5" - - id: 304 - transactions: [] - epoch: "2.5" - - id: 305 - transactions: [] - epoch: "2.5" - - id: 306 - transactions: [] - epoch: "2.5" - - id: 307 - transactions: [] - epoch: "2.5" - - id: 308 - transactions: [] - epoch: "2.5" - - id: 309 - transactions: [] - epoch: "2.5" - - id: 310 - transactions: [] - epoch: "2.5" - - id: 311 - transactions: [] - epoch: "2.5" - - id: 312 - transactions: [] - epoch: "2.5" - - id: 313 - transactions: [] - epoch: "2.5" - - id: 314 - transactions: [] - epoch: "2.5" - - id: 315 - transactions: [] - epoch: "2.5" - - id: 316 - transactions: [] - epoch: "2.5" - - id: 317 - transactions: [] - epoch: "2.5" - - id: 318 - transactions: [] - epoch: "2.5" - - id: 319 - transactions: [] - epoch: "2.5" - - id: 320 - transactions: [] - epoch: "2.5" - - id: 321 - transactions: [] - epoch: "2.5" - - id: 322 - transactions: [] - epoch: "2.5" - - id: 323 - transactions: [] - epoch: "2.5" - - id: 324 - transactions: [] - epoch: "2.5" - - id: 325 - transactions: [] - epoch: "2.5" - - id: 326 - transactions: [] - epoch: "2.5" - - id: 327 - transactions: [] - epoch: "2.5" - - id: 328 - transactions: [] - epoch: "2.5" - - id: 329 - transactions: [] - epoch: "2.5" - - id: 330 - transactions: [] - epoch: "2.5" - - id: 331 - transactions: [] - epoch: "2.5" - - id: 332 - transactions: [] - epoch: "2.5" - - id: 333 - transactions: [] - epoch: "2.5" - - id: 334 - transactions: [] - epoch: "2.5" - - id: 335 - transactions: [] - epoch: "2.5" - - id: 336 - transactions: [] - epoch: "2.5" - - id: 337 - transactions: [] - epoch: "2.5" - - id: 338 - transactions: [] - epoch: "2.5" - - id: 339 - transactions: [] - epoch: "2.5" - - id: 340 - transactions: [] - epoch: "2.5" - - id: 341 - transactions: [] - epoch: "2.5" - - id: 342 - transactions: [] - epoch: "2.5" - - id: 343 - transactions: [] - epoch: "2.5" - - id: 344 - transactions: [] - epoch: "2.5" - - id: 345 - transactions: [] - epoch: "2.5" - - id: 346 - transactions: [] - epoch: "2.5" - - id: 347 - transactions: [] - epoch: "2.5" - - id: 348 - transactions: [] - epoch: "2.5" - - id: 349 - transactions: [] - epoch: "2.5" - - id: 350 - transactions: [] - epoch: "2.5" - - id: 351 - transactions: [] - epoch: "2.5" - - id: 352 - transactions: [] - epoch: "2.5" - - id: 353 - transactions: [] - epoch: "2.5" - - id: 354 - transactions: [] - epoch: "2.5" - - id: 355 - transactions: [] - epoch: "2.5" - - id: 356 - transactions: [] - epoch: "2.5" - - id: 357 - transactions: [] - epoch: "2.5" - - id: 358 - transactions: [] - epoch: "2.5" - - id: 359 - transactions: [] - epoch: "2.5" - - id: 360 - transactions: [] - epoch: "2.5" - - id: 361 - transactions: [] - epoch: "2.5" - - id: 362 - transactions: [] + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member4.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member5 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member5.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member6 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member6.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member7 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member7.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member8 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member8.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: xverse-v2-member9 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.xverse-v2-member9.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint-v2-01 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lqstx-mint-endpoint-v2-01.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: public-pools-strategy-manager-v2 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" + clarity-version: 2 epoch: "2.5" - - id: 363 - transactions: [] + - id: 97 + transactions: + - emulated-contract-publish: + contract-name: lip004 + emulated-sender: SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V + path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip004.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip005 + emulated-sender: SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B + path: "./.cache/requirements/SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B.lip005.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: extension-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.extension-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: proposal-trait + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: executor-dao + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.executor-dao.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: trait-sip-010 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.trait-sip-010.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: token-alex + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-staking-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: migrate-legacy-v2-wl + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3 + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-registry + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-endpoint.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-wrapped + emulated-sender: SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM + path: "./.cache/requirements/SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-wrapped.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip006 + emulated-sender: SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 + path: "./.cache/requirements/SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7.lip006.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: alex-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/alex-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-registry + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-registry.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint-v2 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint-v2.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-wrapped + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/auto-alex-v3-wrapped.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: legacy-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/legacy-boot.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip007 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip007.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip008 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip008.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip009 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip009.clar + clarity-version: 2 epoch: "2.5" - - id: 364 - transactions: [] + - id: 98 + transactions: + - emulated-contract-publish: + contract-name: lip010 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip010.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lip011 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip011.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: mock-boot + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/mocks/tests/mock-boot.clar + clarity-version: 2 epoch: "2.5" - - id: 365 + - id: 99 transactions: [] epoch: "2.5" - - id: 366 + - id: 100 transactions: [] epoch: "2.5" - - id: 367 + - id: 101 transactions: [] epoch: "2.5" - - id: 368 + - id: 102 transactions: [] epoch: "2.5" - - id: 369 + - id: 103 transactions: [] epoch: "2.5" - - id: 370 + - id: 104 transactions: [] epoch: "2.5" - - id: 371 + - id: 105 transactions: [] epoch: "2.5" - - id: 372 + - id: 106 transactions: [] epoch: "2.5" - - id: 373 + - id: 107 transactions: [] epoch: "2.5" - - id: 374 + - id: 108 transactions: [] epoch: "2.5" - - id: 375 + - id: 109 transactions: [] epoch: "2.5" - - id: 376 + - id: 110 transactions: [] epoch: "2.5" - - id: 377 + - id: 111 transactions: [] epoch: "2.5" - - id: 378 + - id: 112 transactions: [] epoch: "2.5" - - id: 379 + - id: 113 transactions: [] epoch: "2.5" - - id: 380 + - id: 114 transactions: [] epoch: "2.5" - - id: 381 + - id: 115 transactions: [] epoch: "2.5" - - id: 382 + - id: 116 transactions: [] epoch: "2.5" - - id: 383 + - id: 117 transactions: [] epoch: "2.5" - - id: 384 + - id: 118 transactions: [] epoch: "2.5" - - id: 385 + - id: 119 transactions: [] epoch: "2.5" - - id: 386 + - id: 120 transactions: [] epoch: "2.5" - - id: 387 + - id: 121 transactions: [] epoch: "2.5" - - id: 388 + - id: 122 transactions: [] epoch: "2.5" - - id: 389 + - id: 123 transactions: [] epoch: "2.5" - - id: 390 + - id: 124 transactions: [] epoch: "2.5" - - id: 391 + - id: 125 transactions: [] epoch: "2.5" - - id: 392 + - id: 126 transactions: [] epoch: "2.5" - - id: 393 + - id: 127 transactions: [] epoch: "2.5" - - id: 394 + - id: 128 transactions: [] epoch: "2.5" - - id: 395 + - id: 129 transactions: [] epoch: "2.5" - - id: 396 + - id: 130 transactions: [] epoch: "2.5" - - id: 397 + - id: 131 transactions: [] epoch: "2.5" - - id: 398 + - id: 132 transactions: [] epoch: "2.5" - - id: 399 + - id: 133 transactions: [] epoch: "2.5" - - id: 400 + - id: 134 transactions: [] epoch: "2.5" - - id: 401 + - id: 135 transactions: [] epoch: "2.5" - - id: 402 + - id: 136 transactions: [] epoch: "2.5" - - id: 403 + - id: 137 transactions: [] epoch: "2.5" - - id: 404 + - id: 138 transactions: [] epoch: "2.5" - - id: 405 + - id: 139 transactions: [] epoch: "2.5" - - id: 406 + - id: 140 transactions: [] epoch: "2.5" - - id: 407 + - id: 141 transactions: [] epoch: "2.5" - - id: 408 + - id: 142 transactions: [] epoch: "2.5" - - id: 409 + - id: 143 transactions: [] epoch: "2.5" - - id: 410 + - id: 144 transactions: [] epoch: "2.5" - - id: 411 + - id: 145 transactions: [] epoch: "2.5" - - id: 412 + - id: 146 transactions: [] epoch: "2.5" - - id: 413 + - id: 147 transactions: [] epoch: "2.5" - - id: 414 + - id: 148 transactions: [] epoch: "2.5" - - id: 415 + - id: 149 transactions: [] epoch: "2.5" - - id: 416 + - id: 150 transactions: [] epoch: "2.5" - - id: 417 + - id: 151 transactions: [] epoch: "2.5" - - id: 418 + - id: 152 transactions: [] epoch: "2.5" - - id: 419 + - id: 153 transactions: [] epoch: "2.5" - - id: 420 + - id: 154 transactions: [] epoch: "2.5" - - id: 421 + - id: 155 transactions: [] epoch: "2.5" - - id: 422 + - id: 156 transactions: [] epoch: "2.5" - - id: 423 + - id: 157 transactions: [] epoch: "2.5" - - id: 424 + - id: 158 transactions: [] epoch: "2.5" - - id: 425 + - id: 159 transactions: [] epoch: "2.5" - - id: 426 + - id: 160 transactions: [] epoch: "2.5" - - id: 427 + - id: 161 transactions: [] epoch: "2.5" - - id: 428 + - id: 162 transactions: [] epoch: "2.5" - - id: 429 + - id: 163 transactions: [] epoch: "2.5" - - id: 430 + - id: 164 transactions: [] epoch: "2.5" - - id: 431 + - id: 165 transactions: [] epoch: "2.5" diff --git a/package.json b/package.json index e21e5e2..b687fab 100644 --- a/package.json +++ b/package.json @@ -30,25 +30,25 @@ "prettier": "@stacks/prettier-config", "dependencies": { "@hirosystems/clarinet-sdk": "2.6.0", - "@stacks/common": "^6.13.0", - "@stacks/network": "^6.13.0", + "@stacks/common": "^6.16.0", + "@stacks/network": "^6.16.0", "@stacks/prettier-config": "^0.0.10", "@stacks/stacking": "6.15.0", - "@stacks/transactions": "^6.15.0", + "@stacks/transactions": "^6.16.1", "c32check": "^2.0.0", "chokidar-cli": "^3.0.0", "print-diff": "^2.0.0", "ts-clarity": "^0.0.21", - "vite": "^5.2.11", + "vite": "^5.4.3", "vitest": "^1.6.0", "vitest-environment-clarinet": "^2.1.0", - "yaml": "^2.4.2" + "yaml": "^2.5.1" }, "resolutions": {}, "devDependencies": { - "@types/node": "^20.14.2", + "@types/node": "^20.16.5", "ts-node": "^10.9.2", - "tslib": "^2.6.3", - "typescript": "^5.4.5" + "tslib": "^2.7.0", + "typescript": "^5.5.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ed8dc8..ffa2f29 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,13 +7,13 @@ settings: dependencies: '@hirosystems/clarinet-sdk': specifier: 2.6.0 - version: 2.6.0(@types/node@20.14.2) + version: 2.6.0(@types/node@20.16.5) '@stacks/common': - specifier: ^6.13.0 - version: 6.13.0 + specifier: ^6.16.0 + version: 6.16.0 '@stacks/network': - specifier: ^6.13.0 - version: 6.13.0 + specifier: ^6.16.0 + version: 6.16.0 '@stacks/prettier-config': specifier: ^0.0.10 version: 0.0.10 @@ -21,8 +21,8 @@ dependencies: specifier: 6.15.0 version: 6.15.0 '@stacks/transactions': - specifier: ^6.15.0 - version: 6.15.0 + specifier: ^6.16.1 + version: 6.16.1 c32check: specifier: ^2.0.0 version: 2.0.0 @@ -34,33 +34,33 @@ dependencies: version: 2.0.0 ts-clarity: specifier: ^0.0.21 - version: 0.0.21(typescript@5.4.5) + version: 0.0.21(typescript@5.5.4) vite: - specifier: ^5.2.11 - version: 5.3.0(@types/node@20.14.2) + specifier: ^5.4.3 + version: 5.4.3(@types/node@20.16.5) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.14.2) + version: 1.6.0(@types/node@20.16.5) vitest-environment-clarinet: specifier: ^2.1.0 version: 2.1.0(@hirosystems/clarinet-sdk@2.6.0)(vitest@1.6.0) yaml: - specifier: ^2.4.2 - version: 2.4.5 + specifier: ^2.5.1 + version: 2.5.1 devDependencies: '@types/node': - specifier: ^20.14.2 - version: 20.14.2 + specifier: ^20.16.5 + version: 20.16.5 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.14.2)(typescript@5.4.5) + version: 10.9.2(@types/node@20.16.5)(typescript@5.5.4) tslib: - specifier: ^2.6.3 - version: 2.6.3 + specifier: ^2.7.0 + version: 2.7.0 typescript: - specifier: ^5.4.5 - version: 5.4.5 + specifier: ^5.5.4 + version: 5.5.4 packages: @@ -278,23 +278,23 @@ packages: dev: false optional: true - /@hirosystems/clarinet-sdk-wasm@2.6.0: - resolution: {integrity: sha512-cUpYrnLX4VnpnumlYTCUNf1gFfl2kL18q63C1qFzUzkjFszffR+x0U2lxOQrz3EY3/U6eWeZvZPdKbOFO3zgqQ==} + /@hirosystems/clarinet-sdk-wasm@2.8.0: + resolution: {integrity: sha512-Lkr7YHzirierK50fTKTtVpXUvvUfPT+U70bDzB+13oK3NUtWG18zq6JNQ5A2NLWniU/szPJ4M9C63ba7+U091Q==} dev: false - /@hirosystems/clarinet-sdk@2.6.0(@types/node@20.14.2): + /@hirosystems/clarinet-sdk@2.6.0(@types/node@20.16.5): resolution: {integrity: sha512-8qyvpaeTmhn/Lrsg7zjNpIr9Ova1zVfzMNeBC4+y42tqxHX0j6MM58nr5m56bz5/0u+KPOvQpAhuVxGR27/NiA==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@hirosystems/clarinet-sdk-wasm': 2.6.0 - '@stacks/encryption': 6.15.0 - '@stacks/network': 6.13.0 + '@hirosystems/clarinet-sdk-wasm': 2.8.0 + '@stacks/encryption': 6.16.1 + '@stacks/network': 6.16.0 '@stacks/stacking': 6.15.0 - '@stacks/transactions': 6.15.0 + '@stacks/transactions': 6.16.1 kolorist: 1.8.0 prompts: 2.4.2 - vitest: 1.6.0(@types/node@20.14.2) + vitest: 1.6.0(@types/node@20.16.5) yargs: 17.7.2 transitivePeerDependencies: - '@edge-runtime/vm' @@ -307,6 +307,7 @@ packages: - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color @@ -325,151 +326,151 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/sourcemap-codec@1.5.0: + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@noble/hashes@1.1.5: resolution: {integrity: sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ==} dev: false - /@noble/hashes@1.4.0: - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} + /@noble/hashes@1.5.0: + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} dev: false /@noble/secp256k1@1.7.1: resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} dev: false - /@rollup/rollup-android-arm-eabi@4.18.0: - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + /@rollup/rollup-android-arm-eabi@4.21.2: + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} cpu: [arm] os: [android] requiresBuild: true dev: false optional: true - /@rollup/rollup-android-arm64@4.18.0: - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + /@rollup/rollup-android-arm64@4.21.2: + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} cpu: [arm64] os: [android] requiresBuild: true dev: false optional: true - /@rollup/rollup-darwin-arm64@4.18.0: - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + /@rollup/rollup-darwin-arm64@4.21.2: + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} cpu: [arm64] os: [darwin] requiresBuild: true dev: false optional: true - /@rollup/rollup-darwin-x64@4.18.0: - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + /@rollup/rollup-darwin-x64@4.21.2: + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} cpu: [x64] os: [darwin] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.18.0: - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + /@rollup/rollup-linux-arm-gnueabihf@4.21.2: + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} cpu: [arm] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm-musleabihf@4.18.0: - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + /@rollup/rollup-linux-arm-musleabihf@4.21.2: + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} cpu: [arm] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm64-gnu@4.18.0: - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + /@rollup/rollup-linux-arm64-gnu@4.21.2: + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-arm64-musl@4.18.0: - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + /@rollup/rollup-linux-arm64-musl@4.21.2: + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} cpu: [arm64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + /@rollup/rollup-linux-powerpc64le-gnu@4.21.2: + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} cpu: [ppc64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-riscv64-gnu@4.18.0: - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + /@rollup/rollup-linux-riscv64-gnu@4.21.2: + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} cpu: [riscv64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-s390x-gnu@4.18.0: - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + /@rollup/rollup-linux-s390x-gnu@4.21.2: + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} cpu: [s390x] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-x64-gnu@4.18.0: - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + /@rollup/rollup-linux-x64-gnu@4.21.2: + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-linux-x64-musl@4.18.0: - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + /@rollup/rollup-linux-x64-musl@4.21.2: + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} cpu: [x64] os: [linux] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-arm64-msvc@4.18.0: - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + /@rollup/rollup-win32-arm64-msvc@4.21.2: + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} cpu: [arm64] os: [win32] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-ia32-msvc@4.18.0: - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + /@rollup/rollup-win32-ia32-msvc@4.21.2: + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} cpu: [ia32] os: [win32] requiresBuild: true dev: false optional: true - /@rollup/rollup-win32-x64-msvc@4.18.0: - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + /@rollup/rollup-win32-x64-msvc@4.21.2: + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} cpu: [x64] os: [win32] requiresBuild: true @@ -480,46 +481,46 @@ packages: resolution: {integrity: sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==} dev: false - /@scure/base@1.1.7: - resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==} + /@scure/base@1.1.8: + resolution: {integrity: sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg==} dev: false /@scure/bip39@1.1.0: resolution: {integrity: sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==} dependencies: '@noble/hashes': 1.1.5 - '@scure/base': 1.1.7 + '@scure/base': 1.1.8 dev: false /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: false - /@stacks/common@6.13.0: - resolution: {integrity: sha512-wwzyihjaSdmL6NxKvDeayy3dqM0L0Q2sawmdNtzJDi0FnXuJGm5PeapJj7bEfcI9XwI7Bw5jZoC6mCn9nc5YIw==} + /@stacks/common@6.16.0: + resolution: {integrity: sha512-PnzvhrdGRMVZvxTulitlYafSK4l02gPCBBoI9QEoTqgSnv62oaOXhYAUUkTMFKxdHW1seVEwZsrahuXiZPIAwg==} dependencies: '@types/bn.js': 5.1.5 - '@types/node': 18.19.34 + '@types/node': 18.19.50 dev: false - /@stacks/encryption@6.15.0: - resolution: {integrity: sha512-506BdBvWhbXY1jxCdUcdbBzcSJctO2nzgzfenQwUuoBABSc1N/MFwQdlR9ZusY+E31zBxQPLfbr36V05/p2cfQ==} + /@stacks/encryption@6.16.1: + resolution: {integrity: sha512-DtVNNW/iipyxxRDz73S9DbLfRmBMqQCCog89F1Q1i6JUnl2kBB1PR9SPQfYv9zcAJ37oHoNB4i4b2tJWYr01vg==} dependencies: '@noble/hashes': 1.1.5 '@noble/secp256k1': 1.7.1 '@scure/bip39': 1.1.0 - '@stacks/common': 6.13.0 - '@types/node': 18.19.34 + '@stacks/common': 6.16.0 + '@types/node': 18.19.50 base64-js: 1.5.1 bs58: 5.0.0 ripemd160-min: 0.0.6 varuint-bitcoin: 1.1.2 dev: false - /@stacks/network@6.13.0: - resolution: {integrity: sha512-Ss/Da4BNyPBBj1OieM981fJ7SkevKqLPkzoI1+Yo7cYR2df+0FipIN++Z4RfpJpc8ne60vgcx7nJZXQsiGhKBQ==} + /@stacks/network@6.16.0: + resolution: {integrity: sha512-uqz9Nb6uf+SeyCKENJN+idt51HAfEeggQKrOMfGjpAeFgZV2CR66soB/ci9+OVQR/SURvasncAz2ScI1blfS8A==} dependencies: - '@stacks/common': 6.13.0 + '@stacks/common': 6.16.0 cross-fetch: 3.1.8 transitivePeerDependencies: - encoding @@ -536,11 +537,11 @@ packages: dependencies: '@noble/hashes': 1.1.5 '@scure/base': 1.1.1 - '@stacks/common': 6.13.0 - '@stacks/encryption': 6.15.0 - '@stacks/network': 6.13.0 + '@stacks/common': 6.16.0 + '@stacks/encryption': 6.16.1 + '@stacks/network': 6.16.0 '@stacks/stacks-blockchain-api-types': 0.61.0 - '@stacks/transactions': 6.15.0 + '@stacks/transactions': 6.16.1 bs58: 5.0.0 transitivePeerDependencies: - encoding @@ -550,17 +551,17 @@ packages: resolution: {integrity: sha512-yPOfTUboo5eA9BZL/hqMcM71GstrFs9YWzOrJFPeP4cOO1wgYvAcckgBRbgiE3NqeX0A7SLZLDAXLZbATuRq9w==} dev: false - /@stacks/stacks-blockchain-api-types@7.11.0: - resolution: {integrity: sha512-R1H5qVJ+KkytWEGrQ4Jk2Ba2NjXexRPniFyY4MVmv+gm5eZ4rtfkmIwsGwGUNo9egUG+KvfKPROaVmiiN0930w==} + /@stacks/stacks-blockchain-api-types@7.14.1: + resolution: {integrity: sha512-65hvhXxC+EUqHJAQsqlBCqXB+zwfxZICSKYJugdg6BCp9I9qniyfz5XyQeC4RMVo0tgEoRdS/b5ZCFo5kLWmxA==} dev: false - /@stacks/transactions@6.15.0: - resolution: {integrity: sha512-P6XKDcqqycPy+KBJBw8+5N+u57D8moJN7msYdde1gYXERmvOo9ht/MNREWWQ7SAM7Nlhau5mpezCdYCzXOCilQ==} + /@stacks/transactions@6.16.1: + resolution: {integrity: sha512-yCtUM+8IN0QJbnnlFhY1wBW7Q30Cxje3Zmy8DgqdBoM/EPPWadez/8wNWFANVAMyUZeQ9V/FY+8MAw4E+pCReA==} dependencies: '@noble/hashes': 1.1.5 '@noble/secp256k1': 1.7.1 - '@stacks/common': 6.13.0 - '@stacks/network': 6.13.0 + '@stacks/common': 6.16.0 + '@stacks/network': 6.16.0 c32check: 2.0.0 lodash.clonedeep: 4.5.0 transitivePeerDependencies: @@ -586,30 +587,30 @@ packages: /@types/bn.js@5.1.5: resolution: {integrity: sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==} dependencies: - '@types/node': 20.14.2 + '@types/node': 20.16.5 dev: false /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: false - /@types/node@18.19.34: - resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==} + /@types/node@18.19.50: + resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} dependencies: undici-types: 5.26.5 dev: false - /@types/node@20.14.2: - resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} + /@types/node@20.16.5: + resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 /@vitest/expect@1.6.0: resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} dependencies: '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - chai: 4.4.1 + chai: 4.5.0 dev: false /@vitest/runner@1.6.0: @@ -623,7 +624,7 @@ packages: /@vitest/snapshot@1.6.0: resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} dependencies: - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 pretty-format: 29.7.0 dev: false @@ -643,12 +644,14 @@ packages: pretty-format: 29.7.0 dev: false - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + /acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} + dependencies: + acorn: 8.12.1 - /acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + /acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -727,7 +730,7 @@ packages: resolution: {integrity: sha512-rpwfAcS/CMqo0oCqDf3r9eeLgScRE3l/xHDCXhM3UyrfvIn7PrLq63uHh7yYbv8NzaZn5MVsVhIRpQ+5GZ5HyA==} engines: {node: '>=8'} dependencies: - '@noble/hashes': 1.4.0 + '@noble/hashes': 1.5.0 base-x: 4.0.0 dev: false @@ -741,8 +744,8 @@ packages: engines: {node: '>=6'} dev: false - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + /chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 @@ -751,7 +754,7 @@ packages: get-func-name: 2.0.2 loupe: 2.3.7 pathval: 1.1.1 - type-detect: 4.0.8 + type-detect: 4.1.0 dev: false /check-error@1.0.3: @@ -786,7 +789,7 @@ packages: fsevents: 2.3.3 dev: false - /clarity-abi@0.0.20(typescript@5.4.5): + /clarity-abi@0.0.20(typescript@5.5.4): resolution: {integrity: sha512-uAkKEp84Z3LnM8qruLJyB1LP2NEGwns6Sl6zBOiKeIgTfFMm3GrQlTgkFUboVV/RQwk0dJYc72sV8pvSrtn+Sg==} peerDependencies: typescript: '>=5.0.4' @@ -794,7 +797,7 @@ packages: typescript: optional: true dependencies: - typescript: 5.4.5 + typescript: 5.5.4 dev: false /cliui@5.0.0: @@ -868,8 +871,8 @@ packages: which: 2.0.2 dev: false - /debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + /debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -877,7 +880,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.2 + ms: 2.1.3 dev: false /decamelize@1.2.0: @@ -889,7 +892,7 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} dependencies: - type-detect: 4.0.8 + type-detect: 4.1.0 dev: false /diff-sequences@29.6.3: @@ -946,8 +949,8 @@ packages: '@esbuild/win32-x64': 0.21.5 dev: false - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + /escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} dev: false @@ -1081,7 +1084,7 @@ packages: engines: {node: '>=14'} dependencies: mlly: 1.7.1 - pkg-types: 1.1.1 + pkg-types: 1.2.0 dev: false /locate-path@3.0.0: @@ -1110,10 +1113,10 @@ packages: get-func-name: 2.0.2 dev: false - /magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} + /magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: false /make-error@1.3.6: @@ -1132,14 +1135,14 @@ packages: /mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} dependencies: - acorn: 8.12.0 + acorn: 8.12.1 pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 + pkg-types: 1.2.0 + ufo: 1.5.4 dev: false - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: false /nanoid@3.3.7: @@ -1190,7 +1193,7 @@ packages: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 dev: false /p-locate@3.0.0: @@ -1228,8 +1231,8 @@ packages: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: false - /picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + /picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} dev: false /picomatch@2.3.1: @@ -1237,21 +1240,21 @@ packages: engines: {node: '>=8.6'} dev: false - /pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + /pkg-types@1.2.0: + resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==} dependencies: confbox: 0.1.7 mlly: 1.7.1 pathe: 1.1.2 dev: false - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + /postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 dev: false /prettier@2.5.1: @@ -1309,29 +1312,29 @@ packages: engines: {node: '>=8'} dev: false - /rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + /rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 fsevents: 2.3.3 dev: false @@ -1368,8 +1371,8 @@ packages: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: false - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + /source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} dev: false @@ -1424,8 +1427,8 @@ packages: js-tokens: 9.0.0 dev: false - /tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + /tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} dev: false /tinypool@0.8.4: @@ -1449,19 +1452,19 @@ packages: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: false - /ts-clarity@0.0.21(typescript@5.4.5): + /ts-clarity@0.0.21(typescript@5.5.4): resolution: {integrity: sha512-kZGf43x8t/B2HqWW2//UvLTsGQP41pWs6H2qBDVXLMbpCtxYicj2fQIsF9rUH6hoVYmOFzCkt2znpiZKsb9upw==} dependencies: - '@stacks/stacks-blockchain-api-types': 7.11.0 - '@stacks/transactions': 6.15.0 - clarity-abi: 0.0.20(typescript@5.4.5) + '@stacks/stacks-blockchain-api-types': 7.14.1 + '@stacks/transactions': 6.16.1 + clarity-abi: 0.0.20(typescript@5.5.4) cross-fetch: 4.0.0 transitivePeerDependencies: - encoding - typescript dev: false - /ts-node@10.9.2(@types/node@20.14.2)(typescript@5.4.5): + /ts-node@10.9.2(@types/node@20.16.5)(typescript@5.5.4): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -1480,38 +1483,42 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.14.2 - acorn: 8.12.0 - acorn-walk: 8.3.2 + '@types/node': 20.16.5 + acorn: 8.12.1 + acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.5 + typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + /tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} dev: true - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + /type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} dev: false - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + /typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - /ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + /ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} dev: false /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: false + + /undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -1523,29 +1530,30 @@ packages: safe-buffer: 5.2.1 dev: false - /vite-node@1.6.0(@types/node@20.14.2): + /vite-node@1.6.0(@types/node@20.16.5): resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.7 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.3.0(@types/node@20.14.2) + picocolors: 1.1.0 + vite: 5.4.3(@types/node@20.16.5) transitivePeerDependencies: - '@types/node' - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser dev: false - /vite@5.3.0(@types/node@20.14.2): - resolution: {integrity: sha512-hA6vAVK977NyW1Qw+fLvqSo7xDPej7von7C3DwwqPRmnnnK36XEBC/J3j1V5lP8fbt7y0TgTKJbpNGSwM+Bdeg==} + /vite@5.4.3(@types/node@20.16.5): + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1553,6 +1561,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -1565,6 +1574,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -1572,10 +1583,10 @@ packages: terser: optional: true dependencies: - '@types/node': 20.14.2 + '@types/node': 20.16.5 esbuild: 0.21.5 - postcss: 8.4.38 - rollup: 4.18.0 + postcss: 8.4.45 + rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 dev: false @@ -1586,11 +1597,11 @@ packages: '@hirosystems/clarinet-sdk': '>=2.6.0' vitest: ^1.5.2 dependencies: - '@hirosystems/clarinet-sdk': 2.6.0(@types/node@20.14.2) - vitest: 1.6.0(@types/node@20.14.2) + '@hirosystems/clarinet-sdk': 2.6.0(@types/node@20.16.5) + vitest: 1.6.0(@types/node@20.16.5) dev: false - /vitest@1.6.0(@types/node@20.14.2): + /vitest@1.6.0(@types/node@20.16.5): resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -1615,31 +1626,32 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.14.2 + '@types/node': 20.16.5 '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 '@vitest/snapshot': 1.6.0 '@vitest/spy': 1.6.0 '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.5 + acorn-walk: 8.3.4 + chai: 4.5.0 + debug: 4.3.7 execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.10 + magic-string: 0.30.11 pathe: 1.1.2 - picocolors: 1.0.1 + picocolors: 1.1.0 std-env: 3.7.0 strip-literal: 2.1.0 - tinybench: 2.8.0 + tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.3.0(@types/node@20.14.2) - vite-node: 1.6.0(@types/node@20.14.2) - why-is-node-running: 2.2.2 + vite: 5.4.3(@types/node@20.16.5) + vite-node: 1.6.0(@types/node@20.16.5) + why-is-node-running: 2.3.0 transitivePeerDependencies: - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color @@ -1669,8 +1681,8 @@ packages: isexe: 2.0.0 dev: false - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + /why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} hasBin: true dependencies: @@ -1705,8 +1717,8 @@ packages: engines: {node: '>=10'} dev: false - /yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + /yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true dev: false @@ -1743,7 +1755,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -1756,7 +1768,7 @@ packages: engines: {node: '>=6'} dev: true - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + /yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} dev: false diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index 5f90928..3b7a86d 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: BUSL-1.1 import { Cl, ClarityType } from '@stacks/transactions'; -import { beforeEach, describe, expect, it } from 'vitest'; +import { assert, beforeEach, describe, expect, it } from 'vitest'; import { createClientMockSetup } from './clients/mock-client'; @@ -17,14 +17,13 @@ describe('auto-alex-v3', () => { const wallet_3 = user2; const wallet_4 = operator3; const dx = 1e8; - const end_cycle = 32; - const ACTIVATION_BLOCK = 20; + const end_cycle = 32; prepareALEX(); - if (simnet.blockHeight < ACTIVATION_BLOCK) { - simnet.mineEmptyBlocks(ACTIVATION_BLOCK - simnet.blockHeight); - } + const ACTIVATION_BLOCK = Number(simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool', 'get-activation-block-or-default', [Cl.principal('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token')], wallet_1).result.value); + + simnet.mineEmptyBlocks(ACTIVATION_BLOCK - simnet.blockHeight); // add some legacy auto-alex-v2 position and new auto-alex-v3 positions. let response = simnet.mineBlock([ @@ -39,7 +38,7 @@ describe('auto-alex-v3', () => { const redeem_cycle = end_cycle + 2; - for (let cycle = 0; cycle < redeem_cycle + 10; cycle++) { + for (let cycle = 0; cycle < redeem_cycle + 20; cycle++) { simnet.mineEmptyBlocks(ACTIVATION_BLOCK + (cycle + 1) * 525 - simnet.blockHeight); // console.log(`current block: ${simnet.blockHeight}`); // console.log(`current cycle: ${simnet.callReadOnlyFn("SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2", "get-reward-cycle", [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value}`); @@ -47,6 +46,14 @@ describe('auto-alex-v3', () => { // console.log(`auto-alex-v2 bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2")], wallet_1).result.value.value}`); // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); + const reward_cycle = Number(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value); + console.log('cycle', reward_cycle); + console.log('pre-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); + // console.log('pre-balance alex-legacy', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); + console.log('pre-balance alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); + console.log('pre-supply alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-total-supply', [], wallet_1).result); + + response = simnet.mineBlock([ tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer) @@ -54,31 +61,43 @@ describe('auto-alex-v3', () => { expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); - console.log('cycle', cycle + 1); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result); + console.log('post-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); + // console.log('post-balance alex-legacy', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); + console.log('post-balance alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); + console.log('post-supply alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-total-supply', [], wallet_1).result); + console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(reward_cycle - 1)], wallet_1).result.value); + console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 2, 0))], wallet_1).result.value); + console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 34, 0))], wallet_1).result.value); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-user-id', [], wallet_1).result); - console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(cycle)], wallet_1).result.value); - console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 1, 0))], wallet_1).result.value); - console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(cycle - 33, 0))], wallet_1).result.value); + // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle + 1)], wallet_1).result.data); + console.log('staked + 1', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle + 2)], wallet_1).result.data); + console.log('staked (v2)', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool', 'get-staker-at-cycle-or-default', [Cl.principal('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token'), Cl.uint(cycle + 1), Cl.uint(1)], wallet_1).result.data); // console.log('staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staker-at-cycle-or-default', [Cl.uint(cycle), Cl.uint(1)], wallet_1).result.data); // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); - // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); - console.log('balance', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); - // console.log('balance', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3')], wallet_1).result); + // console.log('coinbase', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-coinbase-amount-or-default', [Cl.uint(cycle)], wallet_1).result); if (cycle == 2) { response = simnet.mineBlock([ // this fixes a minor bug in auto-alex-v2 that bounty must be greater than 0 tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), // upgrade legacy auto-alex-v2 to v3 - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'upgrade', [Cl.uint(dx)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'upgrade', [Cl.uint(dx)], wallet_1) + ]); + response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); + + const bal1 = Number(simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal(wallet_1)], wallet_1).result.value.value); + const bal2 = Number(simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal(wallet_2)], wallet_2).result.value.value); + const bal4 = Number(simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal(wallet_4)], wallet_4).result.value.value); + + response = simnet.mineBlock([ // test redeems - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_1), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_4), - // test revoke redeem request + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal1)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal4)], wallet_4), + // // test revoke redeem request tx.callPublicFn('auto-alex-v3-endpoint-v2', 'revoke-redeem', [Cl.uint(3)], wallet_4), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); @@ -93,8 +112,9 @@ describe('auto-alex-v3', () => { } if (cycle == 3) { + const bal3 = Number(simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal(wallet_3)], wallet_3).result.value.value); response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(dx)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal3)], wallet_3), ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); } @@ -107,18 +127,24 @@ describe('auto-alex-v3', () => { tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), // finalize redeem works tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(1)], wallet_1), // cannot finalize again tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10019)); expect(response[1].result).toBeErr(Cl.uint(10017)); expect(response[2].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[3].result).toHaveClarityType(ClarityType.ResponseOk); - expect(response[4].result).toBeErr(Cl.uint(10020)); + expect(response[3].result).toBeErr(Cl.uint(10020)); } - if (cycle == redeem_cycle + 2) { + if (cycle == redeem_cycle + 4) { + response = simnet.mineBlock([ + // finalize redeem works + tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(1)], wallet_1), + ]); + expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); + } + + if (cycle == redeem_cycle + 19) { response = simnet.mineBlock([ // finalize redeem works tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), diff --git a/tests/clients/mock-client.ts b/tests/clients/mock-client.ts index 0db0100..9c2107e 100644 --- a/tests/clients/mock-client.ts +++ b/tests/clients/mock-client.ts @@ -84,6 +84,7 @@ export const createClientMockSetup = () => { expect(result[2].result).toBeOk(Cl.bool(true)); expect(result[3].result).toBeOk(Cl.bool(true)); }; + const executeLip = (lipContractId: string) => { simnet.mineBlock([ tx.callPublicFn( From 22274bc60bdd98c9c4baa7c7112e0726b0cfaf90 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Fri, 13 Sep 2024 15:54:36 +0800 Subject: [PATCH 9/9] auto-alex-v3-endpoint-v2-01 --- Clarinet.toml | 4 + .../auto-alex-v3-endpoint-v2-01.clar | 284 +++++++++++++++ contracts/mocks/tests/mock-boot.clar | 6 +- contracts/proposals/lip012.clar | 15 + deployments/default.simnet-plan.yaml | 324 ++++++++++++------ runbooks/maintenance/lisa.tx | 8 +- tests/auto-alex-v3.test.ts | 60 ++-- 7 files changed, 560 insertions(+), 141 deletions(-) create mode 100644 contracts/extensions/auto-alex-v3-endpoint-v2-01.clar create mode 100644 contracts/proposals/lip012.clar diff --git a/Clarinet.toml b/Clarinet.toml index 57ed2cd..0824ada 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -97,4 +97,8 @@ epoch = 2.5 [contracts.lip011] path = "contracts/proposals/lip011.clar" +epoch = 2.5 + +[contracts.auto-alex-v3-endpoint-v2-01] +path = "contracts/extensions/auto-alex-v3-endpoint-v2-01.clar" epoch = 2.5 \ No newline at end of file diff --git a/contracts/extensions/auto-alex-v3-endpoint-v2-01.clar b/contracts/extensions/auto-alex-v3-endpoint-v2-01.clar new file mode 100644 index 0000000..8ce2d16 --- /dev/null +++ b/contracts/extensions/auto-alex-v3-endpoint-v2-01.clar @@ -0,0 +1,284 @@ +;; SPDX-License-Identifier: BUSL-1.1 + +;; -- autoALEX creation/staking/redemption + +;; constants +;; +(define-constant err-unauthorised (err u1000)) +(define-constant err-invalid-liquidity (err u2003)) +(define-constant err-not-activated (err u2043)) +(define-constant err-paused (err u2046)) +(define-constant err-staking-not-available (err u10015)) +(define-constant err-reward-cycle-not-completed (err u10017)) +(define-constant err-claim-and-stake (err u10018)) +(define-constant err-no-redeem-revoke (err u10019)) +(define-constant err-request-finalized-or-revoked (err u10020)) +(define-constant err-end-cycle-v2 (err u10022)) + +(define-constant ONE_8 u100000000) +(define-constant REWARD-CYCLE-INDEXES (list u1 u2 u3 u4 u5 u6 u7 u8 u9 u10 u11 u12 u13 u14 u15 u16 u17 u18 u19 u20 u21 u22 u23 u24 u25 u26 u27 u28 u29 u30 u31 u32)) + +(define-constant PENDING 0x00) +(define-constant FINALIZED 0x01) +(define-constant REVOKED 0x02) + +;; data maps and vars +;; + +(define-data-var create-paused bool true) +(define-data-var redeem-paused bool true) + +(define-constant max-cycles u32) + +;; read-only calls + +(define-read-only (is-dao-or-extension) + (ok (asserts! (or (is-eq tx-sender 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao is-extension contract-caller)) err-unauthorised))) + +(define-read-only (get-start-cycle) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-start-cycle)) + +(define-read-only (is-cycle-staked (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry is-cycle-staked reward-cycle)) + +(define-read-only (get-shares-to-tokens-per-cycle-or-default (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-shares-to-tokens-per-cycle-or-default reward-cycle)) + +(define-read-only (get-redeem-shares-per-cycle-or-default (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-redeem-shares-per-cycle-or-default reward-cycle)) + +(define-read-only (get-redeem-request-or-fail (request-id uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry get-redeem-request-or-fail request-id)) + +(define-read-only (is-create-paused) + (var-get create-paused)) + +(define-read-only (is-redeem-paused) + (var-get redeem-paused)) + +;; @desc get the next capital base of the vault +;; @desc next-base = principal to be staked at the next cycle +;; @desc + principal to be claimed at the next cycle and staked for the following cycle +;; @desc + reward to be claimed at the next cycle and staked for the following cycle +;; @desc + balance of ALEX in the contract +;; @desc + intrinsic of autoALEXv2 in the contract +(define-read-only (get-next-base) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (auto-alex-v2-bal (unwrap-panic (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (asserts! (or (is-eq current-cycle (get-start-cycle)) (is-cycle-staked (- current-cycle u1))) err-claim-and-stake) + (ok + (+ + (get amount-staked (as-contract (get-staker-at-cycle (+ current-cycle u1)))) + (get to-return (as-contract (get-staker-at-cycle current-cycle))) + (as-contract (get-staking-reward current-cycle)) + (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex get-balance 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)) + (if (is-eq auto-alex-v2-bal u0) u0 (mul-down auto-alex-v2-bal (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))))))) + +;; @desc get the intrinsic value of auto-alex-v3 +;; @desc intrinsic = next capital base of the vault / total supply of auto-alex-v3 +(define-read-only (get-intrinsic) + (get-shares-to-tokens ONE_8)) + +(define-read-only (get-reward-cycle (burn-height uint)) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool get-reward-cycle 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token burn-height)) + +(define-read-only (get-staking-reward (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staking-reward (get-user-id) reward-cycle)) + +(define-read-only (get-staker-at-cycle (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-staker-at-cycle-or-default reward-cycle (get-user-id))) + +;; governance calls + +(define-public (pause-create (pause bool)) + (begin + (try! (is-dao-or-extension)) + (ok (var-set create-paused pause)))) + +(define-public (pause-redeem (pause bool)) + (begin + (try! (is-dao-or-extension)) + (ok (var-set redeem-paused pause)))) + +;; public functions +;; + +(define-public (rebase) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (start-cycle (get-start-cycle)) + (check-start-cycle (asserts! (<= start-cycle current-cycle) err-not-activated))) + (and (> current-cycle start-cycle) (not (is-cycle-staked (- current-cycle u1))) (try! (claim-and-stake (- current-cycle u1)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) + (ok current-cycle))) + +;; claims alex for the reward-cycles and mint auto-alex-v3 +(define-public (claim-and-mint (reward-cycles (list 200 uint))) + (let ( + (claimed (unwrap-panic (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 claim-staking-reward-many reward-cycles)))) + (try! (add-to-position (try! (fold sum-claimed claimed (ok u0))))) + (ok claimed))) + +;; @desc add to position +;; @desc transfers dx to vault, stake them for 32 cycles and mints auto-alex-v3, the number of which is determined as % of total supply / next base +;; @param dx the number of $ALEX in 8-digit fixed point notation +(define-public (add-to-position (dx uint)) + (let ( + (current-cycle (try! (rebase))) + (sender tx-sender)) + (asserts! (> dx u0) err-invalid-liquidity) + (asserts! (not (is-create-paused)) err-paused) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer dx sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: dx }))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 mint dx sender))) + (print { notification: "position-added", payload: { new-supply: dx, sender: sender } }) + (try! (rebase)) + (ok true))) + +(define-public (upgrade (dx uint)) + (let ( + (end-cycle-v2 (get-end-cycle-v2)) + (current-cycle (try! (rebase))) + (intrinsic-dx (mul-down dx (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-intrinsic)))) + (sender tx-sender)) + (asserts! (> intrinsic-dx u0) err-invalid-liquidity) + (asserts! (not (is-create-paused)) err-paused) + (asserts! (< end-cycle-v2 (+ current-cycle max-cycles)) err-end-cycle-v2) ;; auto-alex-v2 is not configured correctly + (try! (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 transfer dx sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) + (and (< end-cycle-v2 current-cycle) (begin (as-contract (try! (reduce-position-v2))) true)) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 mint intrinsic-dx sender))) + (print { notification: "upgrade-position-added", payload: { new-supply: intrinsic-dx, sender: sender } }) + (try! (rebase)) + (ok true))) + +(define-public (request-redeem (amount uint)) + (let ( + (current-cycle (try! (rebase))) + (redeem-cycle (+ current-cycle max-cycles)) + (request-details { requested-by: tx-sender, amount: amount, redeem-cycle: redeem-cycle, status: PENDING }) + (request-id (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request u0 request-details))))) + (asserts! (not (is-redeem-paused)) err-paused) + (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer amount tx-sender 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 none)) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (+ (get-redeem-shares-per-cycle-or-default redeem-cycle) amount)))) + (print { notification: "redeem-request", payload: request-details }) + (try! (rebase)) + (ok request-id))) + +(define-public (finalize-redeem (request-id uint)) + (let ( + (request-details (try! (get-redeem-request-or-fail request-id))) + (redeem-cycle (get redeem-cycle request-details)) + (check-claim-and-stake (and (not (is-cycle-staked redeem-cycle)) (try! (claim-and-stake redeem-cycle)))) + (current-cycle (try! (rebase))) + (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u1))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u32))) + (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) + (updated-request-details (merge request-details { status: FINALIZED }))) + (asserts! (not (is-redeem-paused)) err-paused) + (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) + + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex transfer tokens tx-sender (get requested-by request-details) none))) + (print { notification: "finalize-redeem", payload: updated-request-details }) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (try! (rebase)) + (ok true))) + +(define-public (revoke-redeem (request-id uint)) + (let ( + (request-details (try! (get-redeem-request-or-fail request-id))) + (current-cycle (try! (rebase))) + (redeem-cycle (get redeem-cycle request-details)) + (check-cycle (asserts! (> redeem-cycle current-cycle) err-no-redeem-revoke)) + (prev-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- current-cycle u1))) + (base-shares-to-tokens (get-shares-to-tokens-per-cycle-or-default (- redeem-cycle u33))) + (tokens (div-down (mul-down prev-shares-to-tokens (get amount request-details)) base-shares-to-tokens)) + (updated-request-details (merge request-details { status: REVOKED }))) + (asserts! (is-eq tx-sender (get requested-by request-details)) err-unauthorised) + (asserts! (is-eq PENDING (get status request-details)) err-request-finalized-or-revoked) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 tokens (get requested-by request-details)))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-shares-per-cycle redeem-cycle (- (get-redeem-shares-per-cycle-or-default redeem-cycle) (get amount request-details))))) + (print { notification: "revoke-redeem", payload: updated-request-details }) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-redeem-request request-id updated-request-details))) + (try! (rebase)) + (ok true))) + +;; private functions +;; + +;; @desc triggers external event that claims all that's available and stake for another 32 cycles +;; @param reward-cycle the target cycle to claim (and stake for current cycle + 32 cycles). reward-cycle must be < current cycle. +(define-private (claim-and-stake (reward-cycle uint)) + (let ( + (current-cycle (unwrap! (get-reward-cycle block-height) err-staking-not-available)) + (end-cycle-v2 (get-end-cycle-v2)) + ;; claim all that's available to claim for the reward-cycle + (claimed (as-contract (try! (claim-staking-reward reward-cycle)))) + (claimed-v2 (if (< end-cycle-v2 current-cycle) (as-contract (try! (reduce-position-v2))) (begin (try! (claim-and-stake-v2 reward-cycle)) u0))) + (tokens (+ (get to-return claimed) (get entitled-token claimed) claimed-v2)) + (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + (div-down (mul-down (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u1)) (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33)))))) + (asserts! (> current-cycle reward-cycle) err-reward-cycle-not-completed) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-staked-cycle reward-cycle true))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 set-reserve (try! (get-next-base))))) + (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-shares-to-tokens-per-cycle reward-cycle (get-shares-to-tokens ONE_8)))) + (and (> (min tokens redeeming) u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 burn (min tokens redeeming) 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3)))) + (and (> (min tokens redeeming) u0) (as-contract (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 transfer-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex (min tokens redeeming) tx-sender)))) + (try! (fold stake-tokens-iter REWARD-CYCLE-INDEXES (ok { current-cycle: current-cycle, remaining: (- tokens (min tokens redeeming)) }))) + (print { notification: "claim-and-stake", payload: { redeeming: redeeming, tokens: tokens }}) + (ok true))) + +(define-private (sum-claimed (claimed-response (response (tuple (entitled-token uint) (to-return uint)) uint)) (prior (response uint uint))) + (match prior + ok-value (match claimed-response claimed (ok (+ ok-value (get to-return claimed) (get entitled-token claimed))) err (err err)) + err-value (err err-value))) + +(define-private (stake-tokens-iter (cycles-to-stake uint) (previous-response (response { current-cycle: uint, remaining: uint } uint))) + (match previous-response + ok-value + (let ( + (reward-cycle (+ (get current-cycle ok-value) cycles-to-stake)) + (redeeming (if (is-eq (get-redeem-shares-per-cycle-or-default reward-cycle) u0) u0 + (div-down (get-shares-to-tokens (get-redeem-shares-per-cycle-or-default reward-cycle)) (get-shares-to-tokens-per-cycle-or-default (- reward-cycle u33))))) + (returning (+ (get to-return (get-staker-at-cycle reward-cycle)) (get-staking-reward reward-cycle))) + (staking (if (is-eq cycles-to-stake max-cycles) + (get remaining ok-value) + (if (> returning redeeming) + u0 + (if (> (get remaining ok-value) (- redeeming returning)) + (- redeeming returning) + (get remaining ok-value)))))) + (and (> staking u0) (as-contract (try! (stake-tokens staking cycles-to-stake)))) + (ok { current-cycle: (get current-cycle ok-value), remaining: (- (get remaining ok-value) staking) })) + err-value previous-response)) + +(define-private (get-user-id) + (default-to u0 (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2 get-user-id 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3))) + +(define-private (stake-tokens (amount-tokens uint) (lock-period uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 stake-tokens amount-tokens lock-period)) + +(define-private (claim-staking-reward (reward-cycle uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 claim-staking-reward reward-cycle)) + +(define-private (reduce-position-v2) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 reduce-position-v2)) + +(define-private (get-shares-to-tokens (dx uint)) + (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3 get-shares-to-tokens dx)) + +(define-private (claim-and-stake-v2 (reward-cycle uint)) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 claim-and-stake reward-cycle)) + +(define-private (get-end-cycle-v2) + (contract-call? 'SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2 get-end-cycle)) + +(define-private (mul-down (a uint) (b uint)) + (/ (* a b) ONE_8)) + +(define-private (div-down (a uint) (b uint)) + (if (is-eq a u0) u0 (/ (* a ONE_8) b))) + +(define-private (max (a uint) (b uint)) (if (> a b) a b)) +(define-private (min (a uint) (b uint)) (if (< a b) a b)) + diff --git a/contracts/mocks/tests/mock-boot.clar b/contracts/mocks/tests/mock-boot.clar index cd0fa14..e94155d 100644 --- a/contracts/mocks/tests/mock-boot.clar +++ b/contracts/mocks/tests/mock-boot.clar @@ -6,12 +6,12 @@ (define-public (execute (sender principal)) (begin (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extensions (list - { extension: .auto-alex-v3-endpoint-v2, enabled: true } + { extension: .auto-alex-v3-endpoint-v2-01, enabled: true } ))) (try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3-registry set-start-cycle u0)) - (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-create false)) - (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-redeem false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2-01 pause-create false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2-01 pause-redeem false)) (ok true) ) diff --git a/contracts/proposals/lip012.clar b/contracts/proposals/lip012.clar new file mode 100644 index 0000000..77929f7 --- /dev/null +++ b/contracts/proposals/lip012.clar @@ -0,0 +1,15 @@ + +;; SPDX-License-Identifier: BUSL-1.1 + +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) + +(define-public (execute (sender principal)) + (begin + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extensions (list + { extension: .auto-alex-v3-endpoint-v2, enabled: false } + { extension: .auto-alex-v3-endpoint-v2-01, enabled: true } ))) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-create true)) + (try! (contract-call? .auto-alex-v3-endpoint-v2 pause-redeem true)) + (try! (contract-call? .auto-alex-v3-endpoint-v2-01 pause-create false)) + (try! (contract-call? .auto-alex-v3-endpoint-v2-01 pause-redeem false)) + (ok true))) \ No newline at end of file diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index a6c2547..d1e6d8c 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -213,27 +213,27 @@ plan: transactions: [] epoch: "2.1" - id: 25 - transactions: - - emulated-contract-publish: - contract-name: auto-alex-v2 - emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 - path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" - clarity-version: 2 - epoch: "2.3" + transactions: [] + epoch: "2.1" - id: 26 transactions: [] - epoch: "2.3" + epoch: "2.1" - id: 27 transactions: [] - epoch: "2.3" + epoch: "2.1" - id: 28 transactions: [] - epoch: "2.3" + epoch: "2.1" - id: 29 transactions: [] - epoch: "2.3" + epoch: "2.1" - id: 30 - transactions: [] + transactions: + - emulated-contract-publish: + contract-name: auto-alex-v2 + emulated-sender: SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9 + path: "./.cache/requirements/SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2.clar" + clarity-version: 2 epoch: "2.3" - id: 31 transactions: [] @@ -290,6 +290,36 @@ plan: transactions: [] epoch: "2.3" - id: 49 + transactions: [] + epoch: "2.3" + - id: 50 + transactions: [] + epoch: "2.3" + - id: 51 + transactions: [] + epoch: "2.3" + - id: 52 + transactions: [] + epoch: "2.3" + - id: 53 + transactions: [] + epoch: "2.3" + - id: 54 + transactions: [] + epoch: "2.3" + - id: 55 + transactions: [] + epoch: "2.3" + - id: 56 + transactions: [] + epoch: "2.3" + - id: 57 + transactions: [] + epoch: "2.3" + - id: 58 + transactions: [] + epoch: "2.3" + - id: 59 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -417,7 +447,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member1.clar" clarity-version: 2 epoch: "2.4" - - id: 50 + - id: 60 transactions: - emulated-contract-publish: contract-name: xverse-member10 @@ -540,36 +570,6 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.lip003.clar" clarity-version: 2 epoch: "2.4" - - id: 51 - transactions: [] - epoch: "2.4" - - id: 52 - transactions: [] - epoch: "2.4" - - id: 53 - transactions: [] - epoch: "2.4" - - id: 54 - transactions: [] - epoch: "2.4" - - id: 55 - transactions: [] - epoch: "2.4" - - id: 56 - transactions: [] - epoch: "2.4" - - id: 57 - transactions: [] - epoch: "2.4" - - id: 58 - transactions: [] - epoch: "2.4" - - id: 59 - transactions: [] - epoch: "2.4" - - id: 60 - transactions: [] - epoch: "2.4" - id: 61 transactions: [] epoch: "2.4" @@ -676,6 +676,66 @@ plan: transactions: [] epoch: "2.4" - id: 96 + transactions: [] + epoch: "2.4" + - id: 97 + transactions: [] + epoch: "2.4" + - id: 98 + transactions: [] + epoch: "2.4" + - id: 99 + transactions: [] + epoch: "2.4" + - id: 100 + transactions: [] + epoch: "2.4" + - id: 101 + transactions: [] + epoch: "2.4" + - id: 102 + transactions: [] + epoch: "2.4" + - id: 103 + transactions: [] + epoch: "2.4" + - id: 104 + transactions: [] + epoch: "2.4" + - id: 105 + transactions: [] + epoch: "2.4" + - id: 106 + transactions: [] + epoch: "2.4" + - id: 107 + transactions: [] + epoch: "2.4" + - id: 108 + transactions: [] + epoch: "2.4" + - id: 109 + transactions: [] + epoch: "2.4" + - id: 110 + transactions: [] + epoch: "2.4" + - id: 111 + transactions: [] + epoch: "2.4" + - id: 112 + transactions: [] + epoch: "2.4" + - id: 113 + transactions: [] + epoch: "2.4" + - id: 114 + transactions: [] + epoch: "2.4" + - id: 115 + transactions: [] + epoch: "2.4" + - id: 116 transactions: - emulated-contract-publish: contract-name: pox4-fast-pool-v3 @@ -803,7 +863,7 @@ plan: path: "./.cache/requirements/SM3KNVZS30WM7F89SXKVVFY4SN9RMPZZ9FX929N0V.public-pools-strategy-manager-v2.clar" clarity-version: 2 epoch: "2.5" - - id: 97 + - id: 117 transactions: - emulated-contract-publish: contract-name: lip004 @@ -905,6 +965,11 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/extensions/auto-alex-v3-endpoint-v2.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-alex-v3-endpoint-v2-01 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-alex-v3-endpoint-v2-01.clar + clarity-version: 2 - emulated-contract-publish: contract-name: auto-alex-v3-wrapped emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -925,14 +990,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip008.clar clarity-version: 2 + epoch: "2.5" + - id: 118 + transactions: - emulated-contract-publish: contract-name: lip009 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip009.clar clarity-version: 2 - epoch: "2.5" - - id: 98 - transactions: - emulated-contract-publish: contract-name: lip010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -949,66 +1014,6 @@ plan: path: contracts/mocks/tests/mock-boot.clar clarity-version: 2 epoch: "2.5" - - id: 99 - transactions: [] - epoch: "2.5" - - id: 100 - transactions: [] - epoch: "2.5" - - id: 101 - transactions: [] - epoch: "2.5" - - id: 102 - transactions: [] - epoch: "2.5" - - id: 103 - transactions: [] - epoch: "2.5" - - id: 104 - transactions: [] - epoch: "2.5" - - id: 105 - transactions: [] - epoch: "2.5" - - id: 106 - transactions: [] - epoch: "2.5" - - id: 107 - transactions: [] - epoch: "2.5" - - id: 108 - transactions: [] - epoch: "2.5" - - id: 109 - transactions: [] - epoch: "2.5" - - id: 110 - transactions: [] - epoch: "2.5" - - id: 111 - transactions: [] - epoch: "2.5" - - id: 112 - transactions: [] - epoch: "2.5" - - id: 113 - transactions: [] - epoch: "2.5" - - id: 114 - transactions: [] - epoch: "2.5" - - id: 115 - transactions: [] - epoch: "2.5" - - id: 116 - transactions: [] - epoch: "2.5" - - id: 117 - transactions: [] - epoch: "2.5" - - id: 118 - transactions: [] - epoch: "2.5" - id: 119 transactions: [] epoch: "2.5" @@ -1150,3 +1155,108 @@ plan: - id: 165 transactions: [] epoch: "2.5" + - id: 166 + transactions: [] + epoch: "2.5" + - id: 167 + transactions: [] + epoch: "2.5" + - id: 168 + transactions: [] + epoch: "2.5" + - id: 169 + transactions: [] + epoch: "2.5" + - id: 170 + transactions: [] + epoch: "2.5" + - id: 171 + transactions: [] + epoch: "2.5" + - id: 172 + transactions: [] + epoch: "2.5" + - id: 173 + transactions: [] + epoch: "2.5" + - id: 174 + transactions: [] + epoch: "2.5" + - id: 175 + transactions: [] + epoch: "2.5" + - id: 176 + transactions: [] + epoch: "2.5" + - id: 177 + transactions: [] + epoch: "2.5" + - id: 178 + transactions: [] + epoch: "2.5" + - id: 179 + transactions: [] + epoch: "2.5" + - id: 180 + transactions: [] + epoch: "2.5" + - id: 181 + transactions: [] + epoch: "2.5" + - id: 182 + transactions: [] + epoch: "2.5" + - id: 183 + transactions: [] + epoch: "2.5" + - id: 184 + transactions: [] + epoch: "2.5" + - id: 185 + transactions: [] + epoch: "2.5" + - id: 186 + transactions: [] + epoch: "2.5" + - id: 187 + transactions: [] + epoch: "2.5" + - id: 188 + transactions: [] + epoch: "2.5" + - id: 189 + transactions: [] + epoch: "2.5" + - id: 190 + transactions: [] + epoch: "2.5" + - id: 191 + transactions: [] + epoch: "2.5" + - id: 192 + transactions: [] + epoch: "2.5" + - id: 193 + transactions: [] + epoch: "2.5" + - id: 194 + transactions: [] + epoch: "2.5" + - id: 195 + transactions: [] + epoch: "2.5" + - id: 196 + transactions: [] + epoch: "2.5" + - id: 197 + transactions: [] + epoch: "2.5" + - id: 198 + transactions: [] + epoch: "2.5" + - id: 199 + transactions: [] + epoch: "2.5" + - id: 200 + transactions: [] + epoch: "2.5" diff --git a/runbooks/maintenance/lisa.tx b/runbooks/maintenance/lisa.tx index 1501c48..6c185b6 100644 --- a/runbooks/maintenance/lisa.tx +++ b/runbooks/maintenance/lisa.tx @@ -12,8 +12,14 @@ signer "deployer" "stacks::connect" { expected_address = env.stacks_deployer_address } -action "deploy_lip" "stacks::deploy_contract" { +action "deploy_1" "stacks::deploy_contract" { contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "lip011") signer = signer.deployer fee = 2000001 } + +action "deploy_2" "stacks::deploy_contract" { + contract = stacks::get_contract_from_clarinet_project(env.clarinet_manifest_path, "auto-alex-v3-endpoint-v2") + signer = signer.deployer + fee = 2000001 +} diff --git a/tests/auto-alex-v3.test.ts b/tests/auto-alex-v3.test.ts index 3b7a86d..684d7d8 100644 --- a/tests/auto-alex-v3.test.ts +++ b/tests/auto-alex-v3.test.ts @@ -28,11 +28,11 @@ describe('auto-alex-v3', () => { // add some legacy auto-alex-v2 position and new auto-alex-v3 positions. let response = simnet.mineBlock([ tx.callPublicFn(contracts.autoAlexV2, "add-to-position", [Cl.uint(dx)], wallet_1), - // tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_1), - tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_2), - tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_3), - tx.callPublicFn("auto-alex-v3-endpoint-v2", "add-to-position", [Cl.uint(dx)], wallet_4), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer), + // tx.callPublicFn("auto-alex-v3-endpoint-v2-01", "add-to-position", [Cl.uint(dx)], wallet_1), + tx.callPublicFn("auto-alex-v3-endpoint-v2-01", "add-to-position", [Cl.uint(dx)], wallet_2), + tx.callPublicFn("auto-alex-v3-endpoint-v2-01", "add-to-position", [Cl.uint(dx)], wallet_3), + tx.callPublicFn("auto-alex-v3-endpoint-v2-01", "add-to-position", [Cl.uint(dx)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'rebase', [], simnet.deployer), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); @@ -44,11 +44,11 @@ describe('auto-alex-v3', () => { // console.log(`current cycle: ${simnet.callReadOnlyFn("SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2", "get-reward-cycle", [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value}`); // console.log(`alex-vault bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-vault")], wallet_1).result.value.value}`); // console.log(`auto-alex-v2 bal: ${simnet.callReadOnlyFn("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token", "get-balance-fixed", [Cl.principal("SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.auto-alex-v2")], wallet_1).result.value.value}`); - // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); + // console.log(`redeem: ${simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-redeem-request-or-fail', [Cl.uint(2)], wallet_1).result.value.data.amount.value}`); - const reward_cycle = Number(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value); + const reward_cycle = Number(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-reward-cycle', [Cl.uint(simnet.blockHeight)], wallet_1).result.value.value); console.log('cycle', reward_cycle); - console.log('pre-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); + console.log('pre-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2-01')], wallet_1).result); // console.log('pre-balance alex-legacy', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); console.log('pre-balance alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); console.log('pre-supply alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-total-supply', [], wallet_1).result); @@ -56,24 +56,24 @@ describe('auto-alex-v3', () => { response = simnet.mineBlock([ tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'rebase', [], simnet.deployer) + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'rebase', [], simnet.deployer) ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); expect(response[1].result).toHaveClarityType(ClarityType.ResponseOk); - console.log('post-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2')], wallet_1).result); + console.log('post-balance alex', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-alex', 'get-balance', [Cl.principal(simnet.deployer + '.auto-alex-v3-endpoint-v2-01')], wallet_1).result); // console.log('post-balance alex-legacy', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); console.log('post-balance alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3')], wallet_1).result); console.log('post-supply alex-v3', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-total-supply', [], wallet_1).result); - console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(reward_cycle - 1)], wallet_1).result.value); - console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 2, 0))], wallet_1).result.value); - console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 34, 0))], wallet_1).result.value); + console.log('redeem-shares', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-redeem-shares-per-cycle-or-default', [Cl.uint(reward_cycle - 1)], wallet_1).result.value); + console.log('prev-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 2, 0))], wallet_1).result.value); + console.log('base-shares-to-token', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-shares-to-tokens-per-cycle-or-default', [Cl.uint(Math.max(reward_cycle - 34, 0))], wallet_1).result.value); - // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-user-id', [], wallet_1).result); + // console.log(simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-user-id', [], wallet_1).result); - // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); - console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle + 1)], wallet_1).result.data); - console.log('staked + 1', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2', 'get-staker-at-cycle', [Cl.uint(cycle + 2)], wallet_1).result.data); + // console.log('reward', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-staking-reward', [Cl.uint(cycle)], wallet_1).result.value); + console.log('staked', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-staker-at-cycle', [Cl.uint(cycle + 1)], wallet_1).result.data); + console.log('staked + 1', simnet.callReadOnlyFn('auto-alex-v3-endpoint-v2-01', 'get-staker-at-cycle', [Cl.uint(cycle + 2)], wallet_1).result.data); console.log('staked (v2)', simnet.callReadOnlyFn('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.alex-reserve-pool', 'get-staker-at-cycle-or-default', [Cl.principal('SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9.age000-governance-token'), Cl.uint(cycle + 1), Cl.uint(1)], wallet_1).result.data); // console.log('staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staker-at-cycle-or-default', [Cl.uint(cycle), Cl.uint(1)], wallet_1).result.data); // console.log('total staked', simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.alex-staking-v2', 'get-staking-stats-at-cycle-or-default', [Cl.uint(cycle)], wallet_1).result); @@ -84,7 +84,7 @@ describe('auto-alex-v3', () => { // this fixes a minor bug in auto-alex-v2 that bounty must be greater than 0 tx.callPublicFn(contracts.oldAlex, 'mint-fixed', [Cl.uint(3), Cl.principal(contracts.autoAlexV2)], simnet.deployer), // upgrade legacy auto-alex-v2 to v3 - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'upgrade', [Cl.uint(dx)], wallet_1) + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'upgrade', [Cl.uint(dx)], wallet_1) ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); @@ -94,11 +94,11 @@ describe('auto-alex-v3', () => { response = simnet.mineBlock([ // test redeems - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal1)], wallet_1), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal2)], wallet_2), - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal4)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'request-redeem', [Cl.uint(bal1)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'request-redeem', [Cl.uint(bal2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'request-redeem', [Cl.uint(bal4)], wallet_4), // // test revoke redeem request - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'revoke-redeem', [Cl.uint(3)], wallet_4), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'revoke-redeem', [Cl.uint(3)], wallet_4), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); } @@ -106,7 +106,7 @@ describe('auto-alex-v3', () => { if (cycle >= 2 && cycle < redeem_cycle + 1) { response = simnet.mineBlock([ // you cannot finalize redeem until end cycle - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10017)); } @@ -114,7 +114,7 @@ describe('auto-alex-v3', () => { if (cycle == 3) { const bal3 = Number(simnet.callReadOnlyFn('SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.auto-alex-v3', 'get-balance', [Cl.principal(wallet_3)], wallet_3).result.value.value); response = simnet.mineBlock([ - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'request-redeem', [Cl.uint(bal3)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'request-redeem', [Cl.uint(bal3)], wallet_3), ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); } @@ -122,13 +122,13 @@ describe('auto-alex-v3', () => { if (cycle == redeem_cycle + 1) { response = simnet.mineBlock([ // you cannot revoke after end_cycle - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'revoke-redeem', [Cl.uint(2)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'revoke-redeem', [Cl.uint(2)], wallet_3), // cannot finalize yet - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(4)], wallet_3), // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(2)], wallet_2), // cannot finalize again - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(2)], wallet_2), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(2)], wallet_2), ]); expect(response[0].result).toBeErr(Cl.uint(10019)); expect(response[1].result).toBeErr(Cl.uint(10017)); @@ -139,7 +139,7 @@ describe('auto-alex-v3', () => { if (cycle == redeem_cycle + 4) { response = simnet.mineBlock([ // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(1)], wallet_1), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(1)], wallet_1), ]); expect(response[0].result).toHaveClarityType(ClarityType.ResponseOk); } @@ -147,7 +147,7 @@ describe('auto-alex-v3', () => { if (cycle == redeem_cycle + 19) { response = simnet.mineBlock([ // finalize redeem works - tx.callPublicFn('auto-alex-v3-endpoint-v2', 'finalize-redeem', [Cl.uint(4)], wallet_3), + tx.callPublicFn('auto-alex-v3-endpoint-v2-01', 'finalize-redeem', [Cl.uint(4)], wallet_3), ]); response.map((e: any) => expect(e.result).toHaveClarityType(ClarityType.ResponseOk)); }