difftreelog
Merge pull request #1039 from UniqueNetwork/chore/council-proposal-script
in: master
2 files changed
js-packages/scripts/package.jsondiffbeforeafterboth1{2 "author": "",3 "license": "SEE LICENSE IN ../../../LICENSE",4 "description": "Interfaces for interacting with contracts and contract ABIs",5 "engines": {6 "node": ">=16"7 },8 "name": "@unique/scripts",9 "type": "module",10 "version": "1.0.0",11 "main": "",12 "scripts": {13 "benchMintingFee": "yarn ts-node benchmarks/mintFee/benchmark.ts",14 "loadTransfer": "yarn ts-node transfer.nload.ts",15 "generateEnv": "yarn ts-node --esm ./generateEnv.ts",16 "propose-upgrade": "yarn ts-node --esm ./proposeupgrade.ts",17 "propose-fast-track": "yarn ts-node --esm ./proposefasttrack.ts"18 }19}1{2 "author": "",3 "license": "SEE LICENSE IN ../../../LICENSE",4 "description": "Interfaces for interacting with contracts and contract ABIs",5 "engines": {6 "node": ">=16"7 },8 "name": "@unique/scripts",9 "type": "module",10 "version": "1.0.0",11 "main": "",12 "scripts": {13 "benchMintingFee": "yarn ts-node benchmarks/mintFee/benchmark.ts",14 "loadTransfer": "yarn ts-node transfer.nload.ts",15 "generateEnv": "yarn ts-node --esm ./generateEnv.ts",16 "propose-upgrade": "yarn ts-node --esm ./proposeupgrade.ts",17 "propose-fast-track": "yarn ts-node --esm ./proposefasttrack.ts",18 "council-democracy-proposal": "yarn ts-node --esm ./councilproposal.ts"19 }20}js-packages/tests/councilproposal.tsdiffbeforeafterboth--- /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();