git.delta.rocks / unique-network / refs/commits / 5bf7ef40777d

difftreelog

source

js-packages/scripts/councilproposal.ts1.3 KiBsourcehistory
1import {ApiPromise, WsProvider} from '@polkadot/api';2import {blake2AsHex} from '@polkadot/util-crypto';34async function main() {5  const networkUrl = process.argv[2];6  const democracyProposalContent = process.argv[3];78  const wsProvider = new WsProvider(networkUrl);9  const api = await ApiPromise.create({provider: wsProvider});1011  const councilMembers = (await api.query.council.members()).toJSON() as any[];12  const councilProposalThreshold = Math.floor(councilMembers.length / 2) + 1;1314  const democracyProposalHash = blake2AsHex(democracyProposalContent, 256);15  const democracyProposalPreimage = api.tx.preimage.notePreimage(democracyProposalContent).method.toHex();1617  const democracyProposal = api.tx.democracy.externalProposeDefault({18    Legacy: democracyProposalHash,19  });2021  const councilProposal = api.tx.council.propose(22    councilProposalThreshold,23    democracyProposal,24    democracyProposal.method.encodedLength,25  ).method.toHex();2627  const proposeUpgradeBatch = api.tx.utility.batchAll([28    democracyProposalPreimage,29    councilProposal,30  ]);3132  const encodedCall = proposeUpgradeBatch.method.toHex();3334  console.log('-----------------');35  console.log('Council Proposal: ', `https://polkadot.js.org/apps/?rpc=${networkUrl}#/extrinsics/decode/${encodedCall}`);36  console.log('-----------------');3738  await api.disconnect();39}4041await main();