difftreelog
fix add proposeupgrade usage
in: master
1 file changed
js-packages/scripts/proposeupgrade.tsdiffbeforeafterboth1import {ApiPromise, WsProvider} from '@polkadot/api';2import {blake2AsHex} from '@polkadot/util-crypto';3import {readFileSync} from 'fs';45async function main() {6 const networkUrl = process.argv[2];7 const wasmFile = process.argv[3];89 const wsProvider = new WsProvider(networkUrl);10 const api = await ApiPromise.create({provider: wsProvider});1112 const wasmFileBytes = readFileSync(wasmFile);13 const wasmFileHash = blake2AsHex(wasmFileBytes, 256);1415 const authorizeUpgrade = api.tx.parachainSystem.authorizeUpgrade(wasmFileHash, true);16 const enableMaintenance = api.tx.maintenance.enable();1718 const councilMembers = (await api.query.council.members()).toJSON() as any[];19 const councilProposalThreshold = Math.floor(councilMembers.length / 2) + 1;2021 const democracyProposalContent = api.tx.utility.batchAll([22 authorizeUpgrade.method.toHex(),23 enableMaintenance.method.toHex(),24 ]).method.toHex();2526 const democracyProposalHash = blake2AsHex(democracyProposalContent, 256);27 const democracyProposalPreimage = api.tx.preimage.notePreimage(democracyProposalContent).method.toHex();2829 const democracyProposal = api.tx.democracy.externalProposeDefault({30 Legacy: democracyProposalHash,31 });3233 const councilProposal = api.tx.council.propose(34 councilProposalThreshold,35 democracyProposal,36 democracyProposal.method.encodedLength,37 ).method.toHex();3839 const proposeUpgradeBatch = api.tx.utility.batchAll([40 democracyProposalPreimage,41 councilProposal,42 ]);4344 const encodedCall = proposeUpgradeBatch.method.toHex();4546 console.log('-----------------');47 console.log('Upgrade Proposal: ', `https://polkadot.js.org/apps/?rpc=${networkUrl}#/extrinsics/decode/${encodedCall}`);48 console.log('-----------------');4950 await api.disconnect();51}5253await main();