diff --git a/deployments/default.simnet-plan.yaml b/deployments/default.simnet-plan.yaml index 14e07cb..88e4ce7 100644 --- a/deployments/default.simnet-plan.yaml +++ b/deployments/default.simnet-plan.yaml @@ -39,6 +39,7 @@ genesis: - pox - pox-2 - pox-3 + - pox-4 - lockup - costs-2 - costs-3 @@ -53,9 +54,6 @@ plan: emulated-sender: SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE path: "./.cache/requirements/SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.clar" clarity-version: 1 - epoch: "2.0" - - id: 1 - transactions: - emulated-contract-publish: contract-name: trait-sip-010 emulated-sender: ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM @@ -101,8 +99,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: pox-fast-pool-v2 @@ -230,7 +228,7 @@ plan: path: contracts/traits/proposal-trait.clar clarity-version: 2 epoch: "2.4" - - id: 3 + - id: 2 transactions: - emulated-contract-publish: contract-name: lisa-dao @@ -358,7 +356,7 @@ plan: path: contracts/proxies/stx-transfer-many-proxy.clar clarity-version: 2 epoch: "2.4" - - id: 4 + - id: 3 transactions: - emulated-contract-publish: contract-name: token-wlqstx diff --git a/package.json b/package.json index d7596a3..bf4b15c 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "multisig-plan": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./scripts/create-multisig-deployment-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", "setup:clarity": "./scripts/clarinet_manager.sh clean && ./scripts/clarinet_manager.sh install", "test": "vitest run", diff --git a/scripts/analyse-multisig-deployment-plan.ts b/scripts/analyse-multisig-deployment-plan.ts new file mode 100644 index 0000000..322142c --- /dev/null +++ b/scripts/analyse-multisig-deployment-plan.ts @@ -0,0 +1,28 @@ +import { + MultiSigSpendingCondition, + StacksMessageType, + deserializeTransaction, +} from "@stacks/transactions"; +import { assertSigner, readPlan } from "./utils.ts"; +import { getStacksAddress, getStacksPubkeys } from "./config.ts"; +import { inspect } from "util"; + +const address = getStacksAddress(); +const pubkeys = getStacksPubkeys(); + +readPlan() + .then(plan => plan.map(tx => deserializeTransaction(tx))) + .then(plan => { + console.log(`Plan contains ${plan.length} transactions`); + plan.map(tx => { + try { + assertSigner(tx.auth.spendingCondition, address); + } + catch (error) { + console.log(`Transaction with txid ${tx.txid()}, signer is invalid for currently set address`); + } + console.log(inspect(tx, { showHidden: false, depth: null, colors: true })); + const missingSigs = pubkeys.length - (tx.auth.spendingCondition as MultiSigSpendingCondition).fields.reduce((sum, field) => sum + (field.contents.type === StacksMessageType.MessageSignature ? 1 : 0), 0); + console.log(missingSigs === 0 ? 'Transaction is fully signed' : `Transaction needs ${missingSigs} signature(s)`); + }); + });