Skip to content

Commit

Permalink
feat: add propose-fast-track
Browse files Browse the repository at this point in the history
  • Loading branch information
mrshiposha committed Oct 19, 2023
1 parent 35c1755 commit c77febe
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 1 deletion.
3 changes: 2 additions & 1 deletion tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@
"polkadot-types-from-chain": "ts-node --esm ./node_modules/.bin/polkadot-types-from-chain --endpoint src/interfaces/metadata.json --output src/interfaces/ --package .",
"polkadot-types": "echo \"export default {}\" > src/interfaces/lookup.ts && yarn polkadot-types-fetch-metadata && yarn polkadot-types-from-defs && yarn polkadot-types-from-defs && yarn polkadot-types-from-chain",
"generateEnv": "ts-node --esm ./src/generateEnv.ts",
"propose-upgrade": "ts-node --esm ./src/proposeupgrade.ts"
"propose-upgrade": "ts-node --esm ./src/proposeupgrade.ts",
"propose-fast-track": "ts-node --esm ./src/proposefasttrack.ts"
},
"author": "",
"license": "SEE LICENSE IN ../LICENSE",
Expand Down
42 changes: 42 additions & 0 deletions tests/src/proposefasttrack.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import {ApiPromise, WsProvider} from '@polkadot/api';
import {blake2AsHex} from '@polkadot/util-crypto';

async function main() {
const networkUrl = process.argv[2];

const wsProvider = new WsProvider(networkUrl);
const api = await ApiPromise.create({provider: wsProvider});

const externalDemocracyProposal = (await api.query.democracy.nextExternal() as any).unwrap()[0];

let proposalHash;
if(externalDemocracyProposal.isInline) {
proposalHash = blake2AsHex(externalDemocracyProposal.asInline, 256);
} else if(externalDemocracyProposal.isLegacy) {
proposalHash = blake2AsHex(externalDemocracyProposal.asLegacy, 256);
} else {
proposalHash = blake2AsHex(externalDemocracyProposal.asLookup, 256);
}

const voringPeriod = 7200;
const delay = 10;

const democracyFastTrack = api.tx.democracy.fastTrack(proposalHash, voringPeriod, delay);

const techCommThreshold = ((await api.query.technicalCommittee.members()).toJSON() as any[]).length;
const techCommProposal = api.tx.technicalCommittee.propose(
techCommThreshold,
democracyFastTrack.method.toHex(),
democracyFastTrack.encodedLength,
);

const encodedCall = techCommProposal.method.toHex();

console.log('-----------------');
console.log('Fast Track Proposal: ', `https://polkadot.js.org/apps/?rpc=${networkUrl}#/extrinsics/decode/${encodedCall}`);
console.log('-----------------');

await api.disconnect();
}

await main();

0 comments on commit c77febe

Please sign in to comment.