From 25775a5120f231e85f4d3d9ae22a08aeb76e9ae1 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Thu, 16 Nov 2023 11:55:30 +0000 Subject: [PATCH] Merge pull request #1039 from UniqueNetwork/chore/council-proposal-script --- --- a/js-packages/scripts/package.json +++ b/js-packages/scripts/package.json @@ -14,6 +14,7 @@ "loadTransfer": "yarn ts-node transfer.nload.ts", "generateEnv": "yarn ts-node --esm ./generateEnv.ts", "propose-upgrade": "yarn ts-node --esm ./proposeupgrade.ts", - "propose-fast-track": "yarn ts-node --esm ./proposefasttrack.ts" + "propose-fast-track": "yarn ts-node --esm ./proposefasttrack.ts", + "council-democracy-proposal": "yarn ts-node --esm ./councilproposal.ts" } } --- /dev/null +++ b/js-packages/tests/councilproposal.ts @@ -0,0 +1,41 @@ +import {ApiPromise, WsProvider} from '@polkadot/api'; +import {blake2AsHex} from '@polkadot/util-crypto'; + +async function main() { + const networkUrl = process.argv[2]; + const democracyProposalContent = process.argv[3]; + + const wsProvider = new WsProvider(networkUrl); + const api = await ApiPromise.create({provider: wsProvider}); + + const councilMembers = (await api.query.council.members()).toJSON() as any[]; + const councilProposalThreshold = Math.floor(councilMembers.length / 2) + 1; + + const democracyProposalHash = blake2AsHex(democracyProposalContent, 256); + const democracyProposalPreimage = api.tx.preimage.notePreimage(democracyProposalContent).method.toHex(); + + const democracyProposal = api.tx.democracy.externalProposeDefault({ + Legacy: democracyProposalHash, + }); + + const councilProposal = api.tx.council.propose( + councilProposalThreshold, + democracyProposal, + democracyProposal.method.encodedLength, + ).method.toHex(); + + const proposeUpgradeBatch = api.tx.utility.batchAll([ + democracyProposalPreimage, + councilProposal, + ]); + + const encodedCall = proposeUpgradeBatch.method.toHex(); + + console.log('-----------------'); + console.log('Council Proposal: ', `https://polkadot.js.org/apps/?rpc=${networkUrl}#/extrinsics/decode/${encodedCall}`); + console.log('-----------------'); + + await api.disconnect(); +} + +await main(); -- gitstuff