From f0a05151285ec2f8461b1f147b4d48180c0d1f20 Mon Sep 17 00:00:00 2001 From: MarvinJanssen Date: Wed, 27 Mar 2024 11:38:27 +0100 Subject: [PATCH 1/8] chore: multisig script updates --- .gitignore | 1 + deployments/default.simnet-plan.yaml | 13 +- scripts/create-multisig-deployment-plan.ts | 152 +++++++++++++++++---- scripts/sign-multisig-deployment-plan.ts | 4 +- 4 files changed, 134 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index d9c3413..960a868 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ node_modules contracts_modules plan.json config.json* +.DS_Store diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 235bd84..a4c6e91 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -64,9 +64,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: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -112,8 +109,8 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts_modules/alex_v1/traits/trait-vault.clar clarity-version: 1 - epoch: "2.05" - - id: 2 + epoch: "2.1" + - id: 1 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -241,7 +238,7 @@ plan: path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member5.clar" clarity-version: 2 epoch: "2.4" - - id: 3 + - id: 2 transactions: - emulated-contract-publish: contract-name: xverse-member6 @@ -369,7 +366,7 @@ plan: path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 epoch: "2.4" - - id: 4 + - id: 3 transactions: - emulated-contract-publish: contract-name: fastpool-member5 @@ -497,7 +494,7 @@ plan: path: contracts/extensions/token-vesting.clar clarity-version: 2 epoch: "2.4" - - id: 5 + - id: 4 transactions: - emulated-contract-publish: contract-name: token-wlqstx diff --git a/scripts/create-multisig-deployment-plan.ts b/scripts/create-multisig-deployment-plan.ts index 039c52d..8b24d7a 100755 --- a/scripts/create-multisig-deployment-plan.ts +++ b/scripts/create-multisig-deployment-plan.ts @@ -16,6 +16,7 @@ import { ClarityValue, contractPrincipalCV, makeUnsignedSTXTokenTransfer, + getNonce, } from '@stacks/transactions'; import type { StacksNetworkName } from '@stacks/network'; import { initSimnet } from '@hirosystems/clarinet-sdk'; @@ -29,16 +30,70 @@ const manifestFile = './Clarinet.toml'; const simnetDeployFile = 'deployments/default.simnet-plan.yaml'; const lisaDaoContractName = 'lisa-dao'; -const contractsToSkip = ['regtest-boot', 'token-vesting', 'simnet-boot']; +const contractsToSkip = [ + "regtest-boot", + "token-vesting", + "simnet-boot", + "extension-trait", + "proposal-trait", + "lisa-dao", + "lqstx-mint-registry", + "proxy-trait", + "strategy-trait", + "lqstx-vault", + "stx-transfer-proxy", + "token-lqstx", + "token-vlqstx", + "lqstx-mint-endpoint-v1-01", + "operators", + "fastpool-member1", + "fastpool-member10", + "fastpool-member2", + "fastpool-member3", + "fastpool-member4", + "fastpool-member5", + "fastpool-member6", + "fastpool-member7", + "fastpool-member8", + "fastpool-member9", + "xverse-member1", + "xverse-member10", + "xverse-member2", + "xverse-member3", + "xverse-member4", + "xverse-member5", + "xverse-member6", + "xverse-member7", + "xverse-member8", + "xverse-member9", + "public-pools-strategy", + "public-pools-strategy-manager", + "token-lisa", + "boot", + "commission-trait", + "lisa-rebase", + "lisa-transfer-proxy", + "rebase-strategy-trait", + "lqstx-mint-endpoint", + "lqstx-transfer-proxy", + "nft-trait", + "rebase-1", + "rebase-strategy-trait-v1-01", + "sip-010-extensions-trait", + "sip-010-trait", + "sip-010-transferable-trait", + "stx-transfer-many-proxy", + "treasury", +]; const network = getNetwork(); const mainnetDeploy = isMainnet(); const address = getStacksAddress(); const pubKeys = getStacksPubkeys(); -let nonce = 0; -const feeMultiplier = 10000; // transaction bytes * feeMultiplier -const feeAddition = 1; // add a flat amount on top -const feeCap = 0; //15 * 1000000; // 15 STX +let nonce = -1; // set to -1 to fetch from network +const feeMultiplier = 1000; // transaction bytes * feeMultiplier +const feeAddition = 0; // add a flat amount on top +const feeCap = 7 * 1000000; // 7 STX const testnetAddressReplacements = { // zero address @@ -59,9 +114,18 @@ const testnetAddressReplacements = { SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B: 'ST2REHHS5J3CERCRBEPMGH7921Q6PYKAADT7JP2VB', }; +const fundingTransactions = { + SP12BFYTH3NJ6N63KE0S50GHSYV0M91NGQND2B704: 10 * 1000000, + SP1ZPTDQ3801C1AYEZ37NJWNDZ3HM60HC2TCFP228: 10 * 1000000, + SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B: 10 * 1000000 +}; + +//createMultisigStxTransaction + const multisigSpendConditionByteLength = 66; // don't change let tempTotalFee = 0n; +let includesBootContract = false; type PlanItem = { contractName: string; @@ -157,7 +221,7 @@ async function createMultisigDeployTransaction( assertSigner(tx.auth.spendingCondition, checkSigner); let calculatedFee = (tx.serialize().byteLength + multisigSpendConditionByteLength * pubKeys.length) * - feeMultiplier + + feeMultiplier + feeAddition; if (feeCap > 0 && calculatedFee > feeCap) calculatedFee = feeCap; tx.setFee(calculatedFee); @@ -200,10 +264,11 @@ async function createMultisigStxTransaction( assertSigner(tx.auth.spendingCondition, signer); let calculatedFee = (tx.serialize().byteLength + multisigSpendConditionByteLength * pubKeys.length) * - feeMultiplier + + feeMultiplier + feeAddition; if (feeCap > 0 && calculatedFee > feeCap) calculatedFee = feeCap; tx.setFee(calculatedFee); + verboseLog(`Created STX transfer to ${recipient} to the amount of ${amount}, calculated fee is ${calculatedFee}`); tempTotalFee += BigInt(calculatedFee); return tx; } @@ -252,12 +317,12 @@ async function createMultisigBootTransaction( assertSigner(tx.auth.spendingCondition, signer); let calculatedFee = (tx.serialize().byteLength + multisigSpendConditionByteLength * pubKeys.length) * - feeMultiplier + + feeMultiplier + feeAddition; if (feeCap > 0 && calculatedFee > feeCap) calculatedFee = feeCap; tx.setFee(calculatedFee); tempTotalFee += BigInt(calculatedFee); - verboseLog(`Created boot transaction`); + verboseLog(`Created boot transaction, calculated fee is ${calculatedFee}`); return tx; } @@ -287,7 +352,24 @@ function findStxBootstrapAmountAtom(items: any[]): bigint | null { return null; } -deployPlan() +async function fetchNonce() { + if (nonce !== -1) + return; + const addressString = addressToString(address); + let currentNonce = 0n; + try { + currentNonce = await getNonce(addressString, network); + } + catch (error) { + console.log('Failed to fetch current nonce - might happen on devnet'); + throw error; + } + verboseLog(`${addressString} account nonce is ${currentNonce}`); + nonce = Number(currentNonce); +} + +fetchNonce() + .then(deployPlan) .then(plan => plan.filter(item => { if (contractsToSkip.indexOf(item.contractName) !== -1) { @@ -296,6 +378,8 @@ deployPlan() ); return false; } + if (item.contractName === "boot") + includesBootContract = true; return true; }) ) @@ -339,22 +423,40 @@ deployPlan() plan.push(bytesToHex(addPubkeyFields(fundingTx, pubKeys).serialize())); } - const bootTx = await createMultisigBootTransaction( - addressString, - lisaDaoContractName, - 'construct', - [contractPrincipalCV(addressString, 'boot')], - feeMultiplier, - nonce++, - pubKeys.length, - pubKeys, - network, - address, - bootstrapStxAmount ?? 0n, - `${addressString}.${lisaDaoContractName}` - ); + for (const [recipient, amount] of Object.entries(fundingTransactions)) { + const fundingTx = await createMultisigStxTransaction( + BigInt(amount), + recipient, + feeMultiplier, + nonce++, + pubKeys.length, + pubKeys, + address + ); + plan.push(bytesToHex(addPubkeyFields(fundingTx, pubKeys).serialize())); + } - plan.push(bytesToHex(addPubkeyFields(bootTx, pubKeys).serialize())); + if (includesBootContract) { + const bootTx = await createMultisigBootTransaction( + addressString, + lisaDaoContractName, + 'construct', + [contractPrincipalCV(addressString, 'boot')], + feeMultiplier, + nonce++, + pubKeys.length, + pubKeys, + network, + address, + bootstrapStxAmount ?? 0n, + `${addressString}.${lisaDaoContractName}` + ); + + plan.push(bytesToHex(addPubkeyFields(bootTx, pubKeys).serialize())); + } + else { + verboseLog('Skipping boot transaction because plan does not include boot contract'); + } return plan; }) .then(plan => { diff --git a/scripts/sign-multisig-deployment-plan.ts b/scripts/sign-multisig-deployment-plan.ts index 0e18057..0ce75f6 100644 --- a/scripts/sign-multisig-deployment-plan.ts +++ b/scripts/sign-multisig-deployment-plan.ts @@ -17,9 +17,7 @@ import { import { bytesToHex } from '@stacks/common'; import fs from "fs"; import { getStacksAddress, getStacksPrivateKeys, getStacksPubkeys } from "./config.ts"; -import { assertSigner, equalByteArrays, readPlan, verboseLog } from "./utils.ts"; - -const planFile = "plan.json"; +import { planFile, assertSigner, equalByteArrays, readPlan, verboseLog } from "./utils.ts"; const privateKeys = getStacksPrivateKeys(); const address = getStacksAddress(); From 8c81aa860b42cd65efd2536e938dd98682df44ba Mon Sep 17 00:00:00 2001 From: MarvinJanssen Date: Wed, 27 Mar 2024 11:40:18 +0100 Subject: [PATCH 2/8] chore: remove comment --- scripts/create-multisig-deployment-plan.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/create-multisig-deployment-plan.ts b/scripts/create-multisig-deployment-plan.ts index 8b24d7a..93d6136 100755 --- a/scripts/create-multisig-deployment-plan.ts +++ b/scripts/create-multisig-deployment-plan.ts @@ -120,8 +120,6 @@ const fundingTransactions = { SPGAB1P3YV109E22KXFJYM63GK0G21BYX50CQ80B: 10 * 1000000 }; -//createMultisigStxTransaction - const multisigSpendConditionByteLength = 66; // don't change let tempTotalFee = 0n; From d14e91deff877af15b17614822169d82a7598013 Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Wed, 27 Mar 2024 19:34:50 +0800 Subject: [PATCH 3/8] fix lip001 --- Clarinet.toml | 18 ++-- README.md | 24 ++++- contracts/boot.clar | 10 +-- contracts/deployed/lisa-rebase.clar | 2 +- .../deployed/lqstx-mint-endpoint-v1-01.clar | 2 +- contracts/deployed/lqstx-mint-endpoint.clar | 4 +- contracts/deployed/rebase-1.clar | 6 +- contracts/extensions/lqstx-mint-endpoint.clar | 2 +- contracts/proposals/lip001.clar | 4 +- .../public-pools/fastpool-member.clar | 4 +- .../public-pools/xverse-member.clar | 4 +- deployments/default.simnet-plan.yaml | 90 ++++++++++--------- 12 files changed, 98 insertions(+), 72 deletions(-) diff --git a/Clarinet.toml b/Clarinet.toml index 6852032..d16df44 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -45,6 +45,12 @@ contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.stx-transfer-proxy" [[project.requirements]] contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy" +[[project.requirements]] +contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint" + +[[project.requirements]] +contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01" + # [contracts.lisa-dao] # path = "contracts/lisa-dao.clar" # epoch = 2.4 @@ -217,13 +223,13 @@ epoch = 2.4 path = "contracts/extensions/lqstx-mint-endpoint.clar" epoch = 2.4 -[contracts.lqstx-mint-endpoint-v1-01] -path = "contracts/deployed/lqstx-mint-endpoint-v1-01.clar" -epoch = 2.4 +# [contracts.lqstx-mint-endpoint-v1-01] +# path = "contracts/deployed/lqstx-mint-endpoint-v1-01.clar" +# epoch = 2.4 -[contracts.lqstx-mint-endpoint] -path = "contracts/deployed/lqstx-mint-endpoint.clar" -epoch = 2.4 +# [contracts.lqstx-mint-endpoint] +# path = "contracts/deployed/lqstx-mint-endpoint.clar" +# epoch = 2.4 # [contracts.lqstx-mint-registry] # path = "contracts/aux/lqstx-mint-registry.clar" diff --git a/README.md b/README.md index f7c621b..c7a68ad 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,8 @@ are in the form `(err uint)` and they are unique across all contracts. ### Error table - | Contract | Constant | Value | Description | -| ------------------------------- | -------------------------------- | ----------- | ----------- | +|---------------------------------|----------------------------------|-------------|-------------| | lisa-dao | err-unauthorised | (err u1000) | | | lqstx-mint-endpoint | err-unauthorised | (err u1000) | | | lqstx-mint-endpoint-v1-01 | err-unauthorised | (err u1000) | | @@ -86,24 +85,44 @@ are in the form `(err uint)` and they are unique across all contracts. | pox-fast-pool-v2 | err-too-early | (err u500) | | | pox-pools-1-cycle-v2 | err-non-positive-amount | (err u500) | | | fastpool-member1 | err-unauthorised | (err u5000) | | +| fastpool-member1 | err-unauthorised | (err u5000) | | +| fastpool-member10 | err-unauthorised | (err u5000) | | | fastpool-member10 | err-unauthorised | (err u5000) | | | fastpool-member2 | err-unauthorised | (err u5000) | | +| fastpool-member2 | err-unauthorised | (err u5000) | | +| fastpool-member3 | err-unauthorised | (err u5000) | | | fastpool-member3 | err-unauthorised | (err u5000) | | | fastpool-member4 | err-unauthorised | (err u5000) | | +| fastpool-member4 | err-unauthorised | (err u5000) | | +| fastpool-member5 | err-unauthorised | (err u5000) | | | fastpool-member5 | err-unauthorised | (err u5000) | | | fastpool-member6 | err-unauthorised | (err u5000) | | +| fastpool-member6 | err-unauthorised | (err u5000) | | +| fastpool-member7 | err-unauthorised | (err u5000) | | | fastpool-member7 | err-unauthorised | (err u5000) | | | fastpool-member8 | err-unauthorised | (err u5000) | | +| fastpool-member8 | err-unauthorised | (err u5000) | | +| fastpool-member9 | err-unauthorised | (err u5000) | | | fastpool-member9 | err-unauthorised | (err u5000) | | | xverse-member1 | err-unauthorised | (err u5000) | | +| xverse-member1 | err-unauthorised | (err u5000) | | +| xverse-member10 | err-unauthorised | (err u5000) | | | xverse-member10 | err-unauthorised | (err u5000) | | | xverse-member2 | err-unauthorised | (err u5000) | | +| xverse-member2 | err-unauthorised | (err u5000) | | +| xverse-member3 | err-unauthorised | (err u5000) | | | xverse-member3 | err-unauthorised | (err u5000) | | | xverse-member4 | err-unauthorised | (err u5000) | | +| xverse-member4 | err-unauthorised | (err u5000) | | +| xverse-member5 | err-unauthorised | (err u5000) | | | xverse-member5 | err-unauthorised | (err u5000) | | | xverse-member6 | err-unauthorised | (err u5000) | | +| xverse-member6 | err-unauthorised | (err u5000) | | +| xverse-member7 | err-unauthorised | (err u5000) | | | xverse-member7 | err-unauthorised | (err u5000) | | | xverse-member8 | err-unauthorised | (err u5000) | | +| xverse-member8 | err-unauthorised | (err u5000) | | +| xverse-member9 | err-unauthorised | (err u5000) | | | xverse-member9 | err-unauthorised | (err u5000) | | | pox-pools-1-cycle-v2 | err-no-stacker-info | (err u501) | | | pox-pools-1-cycle-v2 | err-no-user-info | (err u502) | | @@ -136,7 +155,6 @@ are in the form `(err uint)` and they are unique across all contracts. | token-vesting | err-event-not-vested | (err u9002) | | | token-vesting | err-event-already-claimed | (err u9003) | | | token-vesting | err-recipient-exists | (err u9004) | | - ## References diff --git a/contracts/boot.clar b/contracts/boot.clar index 8a25b36..c865200 100644 --- a/contracts/boot.clar +++ b/contracts/boot.clar @@ -6,8 +6,8 @@ (define-public (execute (sender principal)) (begin (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extensions (list - { extension: .lqstx-mint-endpoint, enabled: false } - { extension: .lqstx-mint-endpoint-v1-01, enabled: true } + { extension: 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint, enabled: false } + { extension: 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01, enabled: true } { extension: 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault, enabled: true } { extension: .treasury, enabled: true } { extension: .token-vesting, enabled: true } @@ -41,8 +41,8 @@ ))) ;; Enable whitelist - (try! (contract-call? .lqstx-mint-endpoint-v1-01 set-use-whitelist true)) - (try! (contract-call? .lqstx-mint-endpoint-v1-01 set-whitelisted-many + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 set-use-whitelist true)) + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 set-whitelisted-many (list 'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 'SP2VZBR9GCVM33BN0WXA05VJP6QV7CJ3Z3SQKJ5HH @@ -57,7 +57,7 @@ true true ))) - (try! (contract-call? .lqstx-mint-endpoint-v1-01 set-paused false)) + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 set-paused false)) (ok true) ) ) diff --git a/contracts/deployed/lisa-rebase.clar b/contracts/deployed/lisa-rebase.clar index 588231c..1716730 100644 --- a/contracts/deployed/lisa-rebase.clar +++ b/contracts/deployed/lisa-rebase.clar @@ -14,7 +14,7 @@ ) (define-public (rebase (strategies (list 20 ))) - (let ((total-stx (- (+ (stx-get-balance 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault) (try! (fold sum-strategy-amounts strategies (ok u0)))) (contract-call? .lqstx-mint-endpoint-v1-01 get-mint-requests-pending-amount)))) + (let ((total-stx (- (+ (stx-get-balance 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault) (try! (fold sum-strategy-amounts strategies (ok u0)))) (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 get-mint-requests-pending-amount)))) (try! (is-dao-or-extension)) (as-contract (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-lqstx set-reserve total-stx))) (ok total-stx) diff --git a/contracts/deployed/lqstx-mint-endpoint-v1-01.clar b/contracts/deployed/lqstx-mint-endpoint-v1-01.clar index 74a076f..e4a4cb5 100644 --- a/contracts/deployed/lqstx-mint-endpoint-v1-01.clar +++ b/contracts/deployed/lqstx-mint-endpoint-v1-01.clar @@ -26,7 +26,7 @@ (define-data-var mint-delay uint u432) ;; mint available 3 day after cycle starts ;; __IF_MAINNET__ -(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-3 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/deployed/lqstx-mint-endpoint.clar b/contracts/deployed/lqstx-mint-endpoint.clar index 110f941..c10f56c 100644 --- a/contracts/deployed/lqstx-mint-endpoint.clar +++ b/contracts/deployed/lqstx-mint-endpoint.clar @@ -83,14 +83,14 @@ ;; @dev used for testing only (define-read-only (get-reward-cycle (stacks-height uint)) - ;; (some (contract-call? 'SP000000000000000000002Q6VF78.pox-3 current-pox-reward-cycle))) + ;; (some (contract-call? 'ST000000000000000000002AMW42H.pox-3 current-pox-reward-cycle))) (if (>= stacks-height (var-get activation-block)) (some (/ (- stacks-height (var-get activation-block)) (var-get reward-cycle-length))) none)) ;; @dev used for testing only (define-read-only (get-first-stacks-block-in-reward-cycle (reward-cycle uint)) - ;; (contract-call? 'SP000000000000000000002Q6VF78.pox-3 reward-cycle-to-burn-height reward-cycle)) + ;; (contract-call? 'ST000000000000000000002AMW42H.pox-3 reward-cycle-to-burn-height reward-cycle)) (+ (var-get activation-block) (* (var-get reward-cycle-length) reward-cycle))) (define-read-only (get-mint-delay) diff --git a/contracts/deployed/rebase-1.clar b/contracts/deployed/rebase-1.clar index ff41ac1..a0818d2 100644 --- a/contracts/deployed/rebase-1.clar +++ b/contracts/deployed/rebase-1.clar @@ -13,14 +13,14 @@ (define-public (finalize-mint (request-id uint)) (begin (try! (rebase)) - (as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 finalize-mint request-id))) + (as-contract (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 finalize-mint request-id))) (try! (rebase)) (ok true))) (define-public (finalize-burn (request-id uint)) (begin (try! (rebase)) - (as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 finalize-burn request-id))) + (as-contract (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 finalize-burn request-id))) (try! (rebase)) (ok true))) @@ -28,7 +28,7 @@ (let ( (sender tx-sender) (send-token (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-lqstx transfer amount sender (as-contract tx-sender) none))) - (request-data (as-contract (try! (contract-call? .lqstx-mint-endpoint-v1-01 request-burn sender amount))))) + (request-data (as-contract (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 request-burn sender amount))))) (match (finalize-burn (get request-id request-data)) ok-value (ok { request-id: (get request-id request-data), status: FINALIZED }) err-value (ok request-data)))) diff --git a/contracts/extensions/lqstx-mint-endpoint.clar b/contracts/extensions/lqstx-mint-endpoint.clar index bcb0df2..431f600 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-3 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-3 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/proposals/lip001.clar b/contracts/proposals/lip001.clar index 0de76fc..b671c0a 100644 --- a/contracts/proposals/lip001.clar +++ b/contracts/proposals/lip001.clar @@ -39,8 +39,8 @@ true true ))) - (try! (contract-call? .lqstx-mint-endpoint set-paused true)) - (try! (contract-call? .lqstx-mint-endpoint-v1-01 set-paused true)) + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint set-paused true)) + (try! (contract-call? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01 set-paused true)) (try! (contract-call? .lqstx-mint-endpoint-v1-02 set-paused false)) (try! (contract-call? .endpoint-whitelist-helper-v1-02 set-authorised-operator 'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7 true)) diff --git a/contracts/strategies/public-pools/fastpool-member.clar b/contracts/strategies/public-pools/fastpool-member.clar index fb14147..317346c 100644 --- a/contracts/strategies/public-pools/fastpool-member.clar +++ b/contracts/strategies/public-pools/fastpool-member.clar @@ -3,7 +3,7 @@ (define-constant err-unauthorised (err u5000)) -(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none)) +(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none)) (define-read-only (is-strategy-caller) (ok (asserts! (is-eq contract-caller 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy) err-unauthorised)) @@ -20,7 +20,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx)) + (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 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 71ae4fb..8c5b7cf 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-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none)) +(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 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-3 revoke-delegate-stx)) + (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 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 235bd84..aae106a 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -64,9 +64,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: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -112,8 +109,8 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts_modules/alex_v1/traits/trait-vault.clar clarity-version: 1 - epoch: "2.05" - - id: 2 + epoch: "2.1" + - id: 1 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -205,11 +202,44 @@ plan: emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-vault.clar" clarity-version: 2 + - emulated-contract-publish: + contract-name: rebase-strategy-trait + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.rebase-strategy-trait.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 + - emulated-contract-publish: + contract-name: token-vlqstx + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-vlqstx.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint.clar" + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint-v1-01 + emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH + path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01.clar" + clarity-version: 2 - emulated-contract-publish: contract-name: pox-pools-1-cycle-v2 emulated-sender: SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2.clar" clarity-version: 2 + epoch: "2.4" + - id: 2 + transactions: - emulated-contract-publish: contract-name: xverse-member1 emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH @@ -240,9 +270,6 @@ plan: emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.xverse-member5.clar" clarity-version: 2 - epoch: "2.4" - - id: 3 - transactions: - emulated-contract-publish: contract-name: xverse-member6 emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH @@ -268,26 +295,6 @@ plan: emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy.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 - - emulated-contract-publish: - contract-name: token-vlqstx - emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH - path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.token-vlqstx.clar" - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint-v1-01 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/deployed/lqstx-mint-endpoint-v1-01.clar - clarity-version: 2 - emulated-contract-publish: contract-name: proposal-trait emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -358,6 +365,9 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 + epoch: "2.4" + - id: 3 + transactions: - emulated-contract-publish: contract-name: fastpool-member3 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -368,9 +378,6 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 - epoch: "2.4" - - id: 4 - transactions: - emulated-contract-publish: contract-name: fastpool-member5 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -396,16 +403,6 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 - - emulated-contract-publish: - contract-name: rebase-strategy-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/deployed/rebase-strategy-trait.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/deployed/lqstx-mint-endpoint.clar - clarity-version: 2 - emulated-contract-publish: contract-name: lip001 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -456,6 +453,11 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/deployed/rebase-1.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: rebase-strategy-trait + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/deployed/rebase-strategy-trait.clar + clarity-version: 2 - emulated-contract-publish: contract-name: rebase-strategy-trait-v1-01 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -491,14 +493,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 + epoch: "2.4" + - id: 4 + transactions: - emulated-contract-publish: contract-name: token-vesting emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/extensions/token-vesting.clar clarity-version: 2 - epoch: "2.4" - - id: 5 - transactions: - emulated-contract-publish: contract-name: token-wlqstx emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM From a9ca665f9fd06fc4e2b952ae45a1751651e8246e Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Wed, 27 Mar 2024 19:38:00 +0800 Subject: [PATCH 4/8] replace testnet address --- contracts/deployed/lqstx-mint-endpoint-v1-01.clar | 2 +- contracts/deployed/lqstx-mint-endpoint.clar | 4 ++-- contracts/extensions/lqstx-mint-endpoint.clar | 2 +- contracts/strategies/public-pools/fastpool-member.clar | 4 ++-- contracts/strategies/public-pools/xverse-member.clar | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/contracts/deployed/lqstx-mint-endpoint-v1-01.clar b/contracts/deployed/lqstx-mint-endpoint-v1-01.clar index e4a4cb5..74a076f 100644 --- a/contracts/deployed/lqstx-mint-endpoint-v1-01.clar +++ b/contracts/deployed/lqstx-mint-endpoint-v1-01.clar @@ -26,7 +26,7 @@ (define-data-var mint-delay uint u432) ;; mint available 3 day after cycle starts ;; __IF_MAINNET__ -(define-constant pox-info (unwrap-panic (contract-call? 'ST000000000000000000002AMW42H.pox-3 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 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/deployed/lqstx-mint-endpoint.clar b/contracts/deployed/lqstx-mint-endpoint.clar index c10f56c..110f941 100644 --- a/contracts/deployed/lqstx-mint-endpoint.clar +++ b/contracts/deployed/lqstx-mint-endpoint.clar @@ -83,14 +83,14 @@ ;; @dev used for testing only (define-read-only (get-reward-cycle (stacks-height uint)) - ;; (some (contract-call? 'ST000000000000000000002AMW42H.pox-3 current-pox-reward-cycle))) + ;; (some (contract-call? 'SP000000000000000000002Q6VF78.pox-3 current-pox-reward-cycle))) (if (>= stacks-height (var-get activation-block)) (some (/ (- stacks-height (var-get activation-block)) (var-get reward-cycle-length))) none)) ;; @dev used for testing only (define-read-only (get-first-stacks-block-in-reward-cycle (reward-cycle uint)) - ;; (contract-call? 'ST000000000000000000002AMW42H.pox-3 reward-cycle-to-burn-height reward-cycle)) + ;; (contract-call? 'SP000000000000000000002Q6VF78.pox-3 reward-cycle-to-burn-height reward-cycle)) (+ (var-get activation-block) (* (var-get reward-cycle-length) reward-cycle))) (define-read-only (get-mint-delay) diff --git a/contracts/extensions/lqstx-mint-endpoint.clar b/contracts/extensions/lqstx-mint-endpoint.clar index 431f600..bcb0df2 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-3 get-pox-info))) +(define-constant pox-info (unwrap-panic (contract-call? 'SP000000000000000000002Q6VF78.pox-3 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/strategies/public-pools/fastpool-member.clar b/contracts/strategies/public-pools/fastpool-member.clar index 317346c..fb14147 100644 --- a/contracts/strategies/public-pools/fastpool-member.clar +++ b/contracts/strategies/public-pools/fastpool-member.clar @@ -3,7 +3,7 @@ (define-constant err-unauthorised (err u5000)) -(as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP21YTSM60CAY6D011EZVEVNKXVW8FVZE198XEFFP.pox-fast-pool-v2 none)) (define-read-only (is-strategy-caller) (ok (asserts! (is-eq contract-caller 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy) err-unauthorised)) @@ -20,7 +20,7 @@ (define-public (revoke-delegate-stx) (begin (try! (is-strategy-caller)) - (match (as-contract (contract-call? 'ST000000000000000000002AMW42H.pox-3 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 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 8c5b7cf..71ae4fb 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-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none)) +(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 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-3 revoke-delegate-stx)) + (match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx)) ok-val (ok ok-val) err-val (err (to-uint err-val)) ) From 8331459fd323794e47b0b8290047d641309c80ed Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Wed, 27 Mar 2024 19:53:01 +0800 Subject: [PATCH 5/8] proposal-trait --- Clarinet.toml | 9 ++++++--- contracts/boot.clar | 2 +- contracts/extensions/operators.clar | 2 +- contracts/lisa-dao.clar | 2 +- contracts/mocks/mock-proposal.clar | 2 +- contracts/proposals/lip001.clar | 2 +- contracts/regtest-boot.clar | 2 +- contracts/simnet-boot.clar | 2 +- deployments/default.simnet-plan.yaml | 26 ++++++++++++-------------- 9 files changed, 25 insertions(+), 24 deletions(-) diff --git a/Clarinet.toml b/Clarinet.toml index d16df44..aad01f4 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -51,6 +51,9 @@ contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint" [[project.requirements]] contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lqstx-mint-endpoint-v1-01" +[[project.requirements]] +contract_id = "SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait" + # [contracts.lisa-dao] # path = "contracts/lisa-dao.clar" # epoch = 2.4 @@ -91,9 +94,9 @@ epoch = 2.4 path = "contracts/traits/extension-trait.clar" epoch = 2.4 -[contracts.proposal-trait] -path = "contracts/traits/proposal-trait.clar" -epoch = 2.4 +# [contracts.proposal-trait] +# path = "contracts/traits/proposal-trait.clar" +# epoch = 2.4 [contracts.proxy-trait] path = "contracts/traits/proxy-trait.clar" diff --git a/contracts/boot.clar b/contracts/boot.clar index c865200..fa28d9d 100644 --- a/contracts/boot.clar +++ b/contracts/boot.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(impl-trait .proposal-trait.proposal-trait) +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-public (execute (sender principal)) (begin diff --git a/contracts/extensions/operators.clar b/contracts/extensions/operators.clar index 1262be6..22a5b6e 100644 --- a/contracts/extensions/operators.clar +++ b/contracts/extensions/operators.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(use-trait proposal-trait .proposal-trait.proposal-trait) +(use-trait proposal-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-constant err-unauthorised (err u1000)) (define-constant err-not-operator (err u1001)) diff --git a/contracts/lisa-dao.clar b/contracts/lisa-dao.clar index c6baa65..bac6d18 100644 --- a/contracts/lisa-dao.clar +++ b/contracts/lisa-dao.clar @@ -3,7 +3,7 @@ ;; lisa dao -(use-trait proposal-trait .proposal-trait.proposal-trait) +(use-trait proposal-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (use-trait extension-trait .extension-trait.extension-trait) (define-constant err-unauthorised (err u1000)) diff --git a/contracts/mocks/mock-proposal.clar b/contracts/mocks/mock-proposal.clar index 864da9f..6a63250 100644 --- a/contracts/mocks/mock-proposal.clar +++ b/contracts/mocks/mock-proposal.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(impl-trait .proposal-trait.proposal-trait) +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-public (execute (sender principal)) (begin diff --git a/contracts/proposals/lip001.clar b/contracts/proposals/lip001.clar index b671c0a..1a3bb21 100644 --- a/contracts/proposals/lip001.clar +++ b/contracts/proposals/lip001.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(impl-trait .proposal-trait.proposal-trait) +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-public (execute (sender principal)) (begin diff --git a/contracts/regtest-boot.clar b/contracts/regtest-boot.clar index 9cdcc9b..c46daab 100644 --- a/contracts/regtest-boot.clar +++ b/contracts/regtest-boot.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(impl-trait .proposal-trait.proposal-trait) +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-public (execute (sender principal)) (begin diff --git a/contracts/simnet-boot.clar b/contracts/simnet-boot.clar index 6bb7a1d..7c7641d 100644 --- a/contracts/simnet-boot.clar +++ b/contracts/simnet-boot.clar @@ -1,7 +1,7 @@ ;; SPDX-License-Identifier: BUSL-1.1 -(impl-trait .proposal-trait.proposal-trait) +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) (define-public (execute (sender principal)) (begin diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index aae106a..98255e2 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -64,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: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -109,8 +112,8 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts_modules/alex_v1/traits/trait-vault.clar clarity-version: 1 - epoch: "2.1" - - id: 1 + epoch: "2.05" + - id: 2 transactions: - emulated-contract-publish: contract-name: extension-trait @@ -238,7 +241,7 @@ plan: path: "./.cache/requirements/SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2.clar" clarity-version: 2 epoch: "2.4" - - id: 2 + - id: 3 transactions: - emulated-contract-publish: contract-name: xverse-member1 @@ -295,11 +298,6 @@ plan: emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy.clar" clarity-version: 2 - - emulated-contract-publish: - contract-name: proposal-trait - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/traits/proposal-trait.clar - clarity-version: 2 - emulated-contract-publish: contract-name: operators emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -365,14 +363,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 - epoch: "2.4" - - id: 3 - transactions: - emulated-contract-publish: contract-name: fastpool-member3 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 + epoch: "2.4" + - id: 4 + transactions: - emulated-contract-publish: contract-name: fastpool-member4 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -493,14 +491,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 - epoch: "2.4" - - id: 4 - transactions: - emulated-contract-publish: contract-name: token-vesting emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/extensions/token-vesting.clar clarity-version: 2 + epoch: "2.4" + - id: 5 + transactions: - emulated-contract-publish: contract-name: token-wlqstx emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM From add65507aeb9890ff0e1722a955bef6be4d2efcf Mon Sep 17 00:00:00 2001 From: fiftyeightandeight Date: Thu, 28 Mar 2024 00:33:12 +0800 Subject: [PATCH 6/8] lip002 --- Clarinet.toml | 4 ++++ contracts/proposals/lip002.clar | 14 ++++++++++++++ deployments/default.simnet-plan.yaml | 11 ++++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 contracts/proposals/lip002.clar diff --git a/Clarinet.toml b/Clarinet.toml index aad01f4..eab0755 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -342,6 +342,10 @@ epoch = 2.4 path = "contracts/aux/endpoint-whitelist-helper.clar" epoch = 2.4 +[contracts.lip002] +path = "contracts/proposals/lip002.clar" +epoch = 2.4 + # [repl.analysis] # passes = ["check_checker"] # check_checker = { trusted_sender = false, trusted_caller = false, callee_filter = false } diff --git a/contracts/proposals/lip002.clar b/contracts/proposals/lip002.clar new file mode 100644 index 0000000..5dd8aba --- /dev/null +++ b/contracts/proposals/lip002.clar @@ -0,0 +1,14 @@ + +;; SPDX-License-Identifier: BUSL-1.1 + +(impl-trait 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.proposal-trait.proposal-trait) + +(define-public (execute (sender principal)) + (begin + (try! (contract-call? .li-stx-mint-nft mint u2 u0 'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7)) + (try! (contract-call? .li-stx-mint-nft mint u3 u0 'SP3BQ65DRM8DMTYDD5HWMN60EYC0JFS5NC2V5CWW7)) + (try! (contract-call? .li-stx-mint-nft mint u4 u0 'SPFJVM9Y1A4KJ31T8ZBDESZH36YGPDAZ9WXEFC53)) + (try! (contract-call? .li-stx-mint-nft mint u5 u0 'SP2VZBR9GCVM33BN0WXA05VJP6QV7CJ3Z3SQKJ5HH)) + (ok true) + ) +) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 98255e2..eaae4ac 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -406,6 +406,11 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip001.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: lip002 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip002.clar + clarity-version: 2 - emulated-contract-publish: contract-name: lisa-rebase emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -491,14 +496,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 + epoch: "2.4" + - id: 5 + transactions: - emulated-contract-publish: contract-name: token-vesting emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/extensions/token-vesting.clar clarity-version: 2 - epoch: "2.4" - - id: 5 - transactions: - emulated-contract-publish: contract-name: token-wlqstx emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM From 06c9085bb928483dd33a2b25957f21c634970560 Mon Sep 17 00:00:00 2001 From: MarvinJanssen Date: Thu, 28 Mar 2024 19:51:58 +0100 Subject: [PATCH 7/8] feat: auto-whitelist mint helper --- Clarinet.toml | 8 +++ .../auto-whitelist-mint-helper.clar | 46 ++++++++++++++++ contracts/proposals/lip003.clar | 11 ++++ deployments/default.simnet-plan.yaml | 52 +++++++++++-------- 4 files changed, 96 insertions(+), 21 deletions(-) create mode 100644 contracts/extensions/auto-whitelist-mint-helper.clar create mode 100644 contracts/proposals/lip003.clar diff --git a/Clarinet.toml b/Clarinet.toml index eab0755..27bf124 100644 --- a/Clarinet.toml +++ b/Clarinet.toml @@ -346,6 +346,14 @@ epoch = 2.4 path = "contracts/proposals/lip002.clar" epoch = 2.4 +[contracts.auto-whitelist-mint-helper] +path = "contracts/extensions/auto-whitelist-mint-helper.clar" +epoch = 2.4 + +[contracts.lip003] +path = "contracts/proposals/lip003.clar" +epoch = 2.4 + # [repl.analysis] # passes = ["check_checker"] # check_checker = { trusted_sender = false, trusted_caller = false, callee_filter = false } diff --git a/contracts/extensions/auto-whitelist-mint-helper.clar b/contracts/extensions/auto-whitelist-mint-helper.clar new file mode 100644 index 0000000..1107f3e --- /dev/null +++ b/contracts/extensions/auto-whitelist-mint-helper.clar @@ -0,0 +1,46 @@ + +;; SPDX-License-Identifier: BUSL-1.1 + +;; TODO: select snapshot heights +(define-constant stacks-snapshot-height1 block-height) +(define-constant stacks-snapshot-height2 block-height) + +;; TODO: set pox addresses +(define-constant fastpool-pox-address { version: 0x00, hashbytes: 0x00 }) +(define-constant xverse-pox-address { version: 0x00, hashbytes: 0x00 }) + +(define-read-only (is-eligible-pox-address (pox-address { version: (buff 1), hashbytes: (buff 32) })) + (or (is-eq pox-address fastpool-pox-address) (is-eq pox-address xverse-pox-address)) +) + +(define-read-only (is-whitelisted (who principal)) + (contract-call? .lqstx-mint-endpoint-v1-02 is-whitelisted-or-mint-for-all who) +) + +(define-private (set-whitelisted (who principal)) + (contract-call? .lqstx-mint-endpoint-v1-02 set-whitelisted who true) +) + +(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))) + ) +) + +(define-read-only (was-stacking-in-eligible-pool (who principal)) + (or + (was-stacking-in-eligible-pool-height who stacks-snapshot-height1) + (was-stacking-in-eligible-pool-height who stacks-snapshot-height2) + ) +) + +(define-public (request-mint (amount uint)) + (begin + (and + (not (is-whitelisted tx-sender)) + (was-stacking-in-eligible-pool tx-sender) + (try! (set-whitelisted tx-sender)) + ) + (contract-call? .lqstx-mint-endpoint-v1-02 request-mint amount) + ) +) diff --git a/contracts/proposals/lip003.clar b/contracts/proposals/lip003.clar new file mode 100644 index 0000000..510d915 --- /dev/null +++ b/contracts/proposals/lip003.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? 'SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.lisa-dao set-extension .auto-whitelist-mint-helper true)) + (ok true) + ) +) diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index eaae4ac..44b7a41 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -298,6 +298,26 @@ plan: emulated-sender: SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH path: "./.cache/requirements/SM26NBC8SFHNW4P1Y4DFH27974P56WN86C92HPEHH.public-pools-strategy.clar" clarity-version: 2 + - emulated-contract-publish: + contract-name: li-stx-burn-nft + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/li-stx-burn-nft.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: li-stx-mint-nft + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/aux/li-stx-mint-nft.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: lqstx-mint-endpoint-v1-02 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/lqstx-mint-endpoint.clar + clarity-version: 2 + - emulated-contract-publish: + contract-name: auto-whitelist-mint-helper + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/extensions/auto-whitelist-mint-helper.clar + clarity-version: 2 - emulated-contract-publish: contract-name: operators emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -323,21 +343,6 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/traits/commission-trait.clar clarity-version: 2 - - emulated-contract-publish: - contract-name: li-stx-burn-nft - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/li-stx-burn-nft.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: li-stx-mint-nft - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/aux/li-stx-mint-nft.clar - clarity-version: 2 - - emulated-contract-publish: - contract-name: lqstx-mint-endpoint-v1-02 - emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM - path: contracts/extensions/lqstx-mint-endpoint.clar - clarity-version: 2 - emulated-contract-publish: contract-name: endpoint-whitelist-helper-v1-02 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -363,14 +368,14 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 + epoch: "2.4" + - id: 4 + transactions: - emulated-contract-publish: contract-name: fastpool-member3 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/strategies/public-pools/fastpool-member.clar clarity-version: 2 - epoch: "2.4" - - id: 4 - transactions: - emulated-contract-publish: contract-name: fastpool-member4 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -411,6 +416,11 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proposals/lip002.clar clarity-version: 2 + - emulated-contract-publish: + contract-name: lip003 + emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM + path: contracts/proposals/lip003.clar + clarity-version: 2 - emulated-contract-publish: contract-name: lisa-rebase emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -486,6 +496,9 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/traits/sip-010-trait.clar clarity-version: 2 + epoch: "2.4" + - id: 5 + transactions: - emulated-contract-publish: contract-name: sip-010-transferable-trait emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -496,9 +509,6 @@ plan: emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 - epoch: "2.4" - - id: 5 - transactions: - emulated-contract-publish: contract-name: token-vesting emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM From 2e96b95a7a47d49ae33b1c7b88464aed0bc5bcfd Mon Sep 17 00:00:00 2001 From: friedger Date: Thu, 28 Mar 2024 22:40:31 +0100 Subject: [PATCH 8/8] feat: add mainnet data --- contracts/extensions/auto-whitelist-mint-helper.clar | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/contracts/extensions/auto-whitelist-mint-helper.clar b/contracts/extensions/auto-whitelist-mint-helper.clar index 1107f3e..9bec8b4 100644 --- a/contracts/extensions/auto-whitelist-mint-helper.clar +++ b/contracts/extensions/auto-whitelist-mint-helper.clar @@ -1,13 +1,12 @@ ;; SPDX-License-Identifier: BUSL-1.1 -;; TODO: select snapshot heights -(define-constant stacks-snapshot-height1 block-height) -(define-constant stacks-snapshot-height2 block-height) +;; snapshot block height for cycle #80 and #81 +(define-constant stacks-snapshot-height1 u144186) ;; btc height 836387 +(define-constant stacks-snapshot-height2 u142306) ;; btc height 834056 -;; TODO: set pox addresses -(define-constant fastpool-pox-address { version: 0x00, hashbytes: 0x00 }) -(define-constant xverse-pox-address { version: 0x00, hashbytes: 0x00 }) +(define-constant fastpool-pox-address {version: 0x04, hashbytes: 0x83ed66860315e334010bbfb76eb3eef887efee0a}) ;; bc1qs0kkdpsrzh3ngqgth7mkavlwlzr7lms2zv3wxe +(define-constant xverse-pox-address {version: 0x04, hashbytes: 0xdb14133a9dbb1d0e16b60513453e48b6ff2847a9}) ;; bc1qmv2pxw5ahvwsu94kq5f520jgkmljs3af8ly6tr (define-read-only (is-eligible-pox-address (pox-address { version: (buff 1), hashbytes: (buff 32) })) (or (is-eq pox-address fastpool-pox-address) (is-eq pox-address xverse-pox-address))