mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-22 19:38:00 +00:00
* Add Statemint Genesis Values (#817) * add some docs to genesis scripts * move statemint test chainspec * add initial (draft) version of statemint chain spec * adjust genesis value script * add Statemint genesis Aura keys * add bootnodes to statemint-genesis spec * Add checks, debug and doc (#790) * Add checks, debug and doc * Update scripts/generate_genesis_value.sh Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * Update scripts/generate_genesis_value.sh Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> * default to official shell rpc endpoint for genesis values * remove statemint test chain spec * add Statemint chain spec and genesis values * sort statemint genesis values * some script docs adjustments Co-authored-by: Chevdor <chevdor@users.noreply.github.com> * cargo fmt Co-authored-by: Alexander Popiak <alexander.popiak@parity.io> Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
const fs = require("fs");
|
||||
const { exit } = require("process");
|
||||
const {WsProvider, ApiPromise} = require("@polkadot/api");
|
||||
const { WsProvider, ApiPromise } = require("@polkadot/api");
|
||||
const util = require("@polkadot/util");
|
||||
|
||||
async function connect(port, types) {
|
||||
const provider = new WsProvider("ws://127.0.0.1:" + port);
|
||||
// Utility script constructing a SCALE-encoded setStorage call from a key-value json array of
|
||||
// genesis values by connecting to a running instance of the chain. (It is not required to be
|
||||
// functional or synced.)
|
||||
|
||||
// connect to a substrate chain and return the api object
|
||||
async function connect(endpoint, types = {}) {
|
||||
const provider = new WsProvider(endpoint);
|
||||
const api = await ApiPromise.create({
|
||||
provider,
|
||||
types,
|
||||
@@ -14,28 +19,37 @@ async function connect(port, types) {
|
||||
}
|
||||
|
||||
if (!process.argv[2] || !process.argv[3]) {
|
||||
console.log("usage: node generate_keys <input json> <scale output file>");
|
||||
exit();
|
||||
console.log("usage: node generate_keys <input json> <scale output file> [rpc enpoint]");
|
||||
exit();
|
||||
}
|
||||
|
||||
const input = process.argv[2];
|
||||
const output = process.argv[3];
|
||||
// default to localhost and the default Substrate port
|
||||
const rpcEnpoint = process.argv[4] || "ws://localhost:9944";
|
||||
|
||||
console.log("Processing", input, output);
|
||||
fs.readFile(input, "utf8", (err, data) => {
|
||||
if (err) {
|
||||
console.log(`Error reading file from disk: ${err}`);
|
||||
exit(1);
|
||||
}
|
||||
if (err) {
|
||||
console.log(`Error reading file from disk: ${err}`);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const genesis = JSON.parse(data);
|
||||
const genesis = JSON.parse(data);
|
||||
|
||||
connect(9944, {}).then(api => {
|
||||
const setStorage = api.tx.system.setStorage(genesis);
|
||||
const raw = setStorage.method.toU8a();
|
||||
const hex = util.u8aToHex(raw);
|
||||
fs.writeFileSync(output, hex);
|
||||
exit(0)
|
||||
}).catch(e => {
|
||||
console.error(e);
|
||||
exit(1)
|
||||
});
|
||||
console.log("loaded genesis, length = ", genesis.length);
|
||||
console.log(`Connecting to RPC endpoint: ${rpcEnpoint}`);
|
||||
connect(rpcEnpoint)
|
||||
.then((api) => {
|
||||
console.log('Connected');
|
||||
const setStorage = api.tx.system.setStorage(genesis);
|
||||
const raw = setStorage.method.toU8a();
|
||||
const hex = util.u8aToHex(raw);
|
||||
fs.writeFileSync(output, hex);
|
||||
exit(0);
|
||||
})
|
||||
.catch((e) => {
|
||||
console.error(e);
|
||||
exit(1);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user