@waves/node-state
Version:
83 lines • 4.43 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.write = void 0;
const fs_extra_1 = require("fs-extra");
const waves_transactions_1 = require("@waves/waves-transactions");
const constants_1 = require("./constants");
const createAssets_1 = __importDefault(require("./state/createAssets"));
const createAccounts_1 = __importDefault(require("./state/createAccounts"));
const console_1 = __importDefault(require("./utils/console"));
const setSponsorship_1 = __importDefault(require("./state/setSponsorship"));
const setBalances_1 = __importDefault(require("./state/setBalances"));
function write(options) {
return __awaiter(this, void 0, void 0, function* () {
waves_transactions_1.broadcast(waves_transactions_1.alias({
alias: 'master',
chainId: constants_1.CHAIN_ID
}, constants_1.MASTER_ACCOUNT_SEED), constants_1.NODE_URL)
.catch(() => null);
const state = JSON.parse(yield fs_extra_1.readFile(options.config, 'utf8'));
const ACCOUNTS = yield createAccounts_1.default(state.ACCOUNTS || {});
const ASSETS = yield createAssets_1.default(state.ASSETS || {}, ACCOUNTS);
yield setBalances_1.default(state.ACCOUNTS || {}, ASSETS, ACCOUNTS);
const SPONSORSHIPS = yield setSponsorship_1.default(state.ASSETS || {}, ASSETS, ACCOUNTS);
console_1.default.info('Success create state!');
if (!options.out) {
return undefined;
}
if (options.mode === 'json') {
yield fs_extra_1.outputFile(options.out, JSON.stringify({
ACCOUNTS,
ASSETS,
SPONSORSHIPS,
MASTER_ACCOUNT: {
SEED: constants_1.MASTER_ACCOUNT_SEED,
ADDRESS: waves_transactions_1.libs.crypto.address(constants_1.MASTER_ACCOUNT_SEED, constants_1.CHAIN_ID),
PUBLIC_KEY: waves_transactions_1.libs.crypto.publicKey(constants_1.MASTER_ACCOUNT_SEED),
ALIAS: 'master'
},
'NODE_URL': constants_1.NODE_URL,
'CHAIN_ID': constants_1.CHAIN_ID,
'NETWORK_BYTE': constants_1.CHAIN_ID.charCodeAt(0),
'SMART_ASSET_SCRIPT': constants_1.SMART_ASSET_SCRIPT,
'DAP_SCRIPT': constants_1.DAP_SCRIPT,
'ACCOUNT_SCRIPT': constants_1.ACCOUNT_SCRIPT,
}, null, 4));
}
else {
yield fs_extra_1.outputFile(options.out, tsTemplate({ ACCOUNTS, ASSETS, SPONSORSHIPS }));
}
});
}
exports.write = write;
const exportState = (state) => `export const STATE = ${JSON.stringify(state, null, 4)};`;
const exportConstant = (name, value) => `export const ${name} = ${JSON.stringify(value, null, 4)};`;
const tsTemplate = (state) => [
exportConstant('MASTER_ACCOUNT', {
SEED: constants_1.MASTER_ACCOUNT_SEED,
ADDRESS: waves_transactions_1.libs.crypto.address(constants_1.MASTER_ACCOUNT_SEED, constants_1.CHAIN_ID),
PUBLIC_KEY: waves_transactions_1.libs.crypto.publicKey(constants_1.MASTER_ACCOUNT_SEED),
ALIAS: 'master'
}),
exportConstant('NODE_URL', constants_1.NODE_URL),
exportConstant('CHAIN_ID', constants_1.CHAIN_ID),
exportConstant('NETWORK_BYTE', constants_1.CHAIN_ID.charCodeAt(0)),
exportConstant('SMART_ASSET_SCRIPT', constants_1.SMART_ASSET_SCRIPT),
exportConstant('DAP_SCRIPT', constants_1.DAP_SCRIPT),
exportConstant('ACCOUNT_SCRIPT', constants_1.ACCOUNT_SCRIPT),
'',
exportState(state),
].join('\n');
//# sourceMappingURL=index.js.map
;