UNPKG

10.5 kBJavaScriptView Raw
1import { common as clientCommon, crypto } from '@neo-one/client-common-esnext-esm';
2import { TransactionType } from '@neo-one/node-core-esnext-esm';
3import { common } from './common';
4const DEFAULT_VALIDATORS = [
5 '03b209fd4f53a7170ea4444e0cb0a6bb6a53c2bd016926989cf85f9b0fba17a70c',
6 '02df48f60e8f3e01c48ff40b9b7f1310d7a8b2a193188befe1c2e3df740e895093',
7 '03b8d9d5771d8f513aa0869b9cc8d50986403b78c6da36890638c3d46a5adce04a',
8 '02ca0e27697b9c248f6f16e085fd0061e26f44da85b58ee835c110caa5ec3ba554',
9 '024c7b7fb6c310fccf1ba33b082519d82964ea93868d676662d4a59ad548df0e7d',
10 '02aaec38470f6aad0042c6e877cfd8087d2676b0f516fddd362801b9bd3936399e',
11 '02486fd15702c4490a26703112a5cc1d0923fd697a33406bd5a1c00e0013b09a70',
12];
13export const createMain = ({ privateNet = false, standbyValidators: standbyValidatorsIn = DEFAULT_VALIDATORS, secondsPerBlock, address: addressIn, } = {}) => {
14 const standbyValidators = standbyValidatorsIn.map((value) => clientCommon.stringToECPoint(value));
15 const consensusAddress = standbyValidatorsIn === DEFAULT_VALIDATORS
16 ? clientCommon.asUInt160(Buffer.from('59e75d652b5d3827bf04c165bbe9ef95cca4bf55', 'hex'))
17 : crypto.getConsensusAddress(standbyValidators);
18 let address;
19 if (addressIn === undefined) {
20 address =
21 standbyValidatorsIn === DEFAULT_VALIDATORS
22 ? clientCommon.asUInt160(Buffer.from('5fa99d93303775fe50ca119c327759313eccfa1c', 'hex'))
23 : crypto.toScriptHash(crypto.createMultiSignatureVerificationScript(standbyValidators.length / 2 + 1, standbyValidators));
24 }
25 else {
26 address = clientCommon.stringToUInt160(addressIn);
27 }
28 const commonSettings = common({
29 privateNet,
30 consensusAddress,
31 address,
32 });
33 return {
34 genesisBlock: commonSettings.genesisBlock,
35 governingToken: commonSettings.governingToken,
36 utilityToken: commonSettings.utilityToken,
37 decrementInterval: commonSettings.decrementInterval,
38 generationAmount: commonSettings.generationAmount,
39 secondsPerBlock: secondsPerBlock === undefined ? commonSettings.secondsPerBlock : secondsPerBlock,
40 maxTransactionsPerBlock: commonSettings.maxTransactionsPerBlock,
41 memPoolSize: commonSettings.memPoolSize,
42 fees: {
43 [TransactionType.Enrollment]: clientCommon.fixed8FromDecimal(1000),
44 [TransactionType.Issue]: clientCommon.fixed8FromDecimal(500),
45 [TransactionType.Publish]: clientCommon.fixed8FromDecimal(500),
46 [TransactionType.Register]: clientCommon.fixed8FromDecimal(10000),
47 },
48 registerValidatorFee: clientCommon.fixed8FromDecimal(1000),
49 messageMagic: 7630401,
50 addressVersion: clientCommon.NEO_ADDRESS_VERSION,
51 privateKeyVersion: clientCommon.NEO_PRIVATE_KEY_VERSION,
52 standbyValidators,
53 vm: {
54 storageContext: {
55 v0: {
56 index: 0,
57 },
58 },
59 },
60 features: {
61 structClone: privateNet ? -1 : Number.MAX_SAFE_INTEGER,
62 },
63 };
64};
65
66//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFpQixDQUFDLEtBQUssQ0FBQztTQUNsRTtRQUVELG9CQUFvQixFQUFFLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDMUQsWUFBWSxFQUFFLE9BQU87UUFDckIsY0FBYyxFQUFFLFlBQVksQ0FBQyxtQkFBbUI7UUFDaEQsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLHVCQUF1QjtRQUN2RCxpQkFBaUI7UUFDakIsRUFBRSxFQUFFO1lBQ0YsY0FBYyxFQUFFO2dCQUNkLEVBQUUsRUFBRTtvQkFDRixLQUFLLEVBQUUsQ0FBQztpQkFDVDthQUNGO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtTQUN2RDtLQUNGLENBQUM7QUFDSixDQUFDLENBQUMiLCJmaWxlIjoibmVvLW9uZS1ub2RlLW5lby1zZXR0aW5ncy9zcmMvY3JlYXRlTWFpbi5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbW1vbiBhcyBjbGllbnRDb21tb24sIGNyeXB0bywgVUludDE2MCB9IGZyb20gJ0BuZW8tb25lL2NsaWVudC1jb21tb24nO1xuaW1wb3J0IHsgU2V0dGluZ3MsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BuZW8tb25lL25vZGUtY29yZSc7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tICcuL2NvbW1vbic7XG5cbmNvbnN0IERFRkFVTFRfVkFMSURBVE9SUzogUmVhZG9ubHlBcnJheTxzdHJpbmc+ID0gW1xuICAnMDNiMjA5ZmQ0ZjUzYTcxNzBlYTQ0NDRlMGNiMGE2YmI2YTUzYzJiZDAxNjkyNjk4OWNmODVmOWIwZmJhMTdhNzBjJyxcbiAgJzAyZGY0OGY2MGU4ZjNlMDFjNDhmZjQwYjliN2YxMzEwZDdhOGIyYTE5MzE4OGJlZmUxYzJlM2RmNzQwZTg5NTA5MycsXG4gICcwM2I4ZDlkNTc3MWQ4ZjUxM2FhMDg2OWI5Y2M4ZDUwOTg2NDAzYjc4YzZkYTM2ODkwNjM4YzNkNDZhNWFkY2UwNGEnLFxuICAnMDJjYTBlMjc2OTdiOWMyNDhmNmYxNmUwODVmZDAwNjFlMjZmNDRkYTg1YjU4ZWU4MzVjMTEwY2FhNWVjM2JhNTU0JyxcbiAgJzAyNGM3YjdmYjZjMzEwZmNjZjFiYTMzYjA4MjUxOWQ4Mjk2NGVhOTM4NjhkNjc2NjYyZDRhNTlhZDU0OGRmMGU3ZCcsXG4gICcwMmFhZWMzODQ3MGY2YWFkMDA0MmM2ZTg3N2NmZDgwODdkMjY3NmIwZjUxNmZkZGQzNjI4MDFiOWJkMzkzNjM5OWUnLFxuICAnMDI0ODZmZDE1NzAyYzQ0OTBhMjY3MDMxMTJhNWNjMWQwOTIzZmQ2OTdhMzM0MDZiZDVhMWMwMGUwMDEzYjA5YTcwJyxcbl07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNYWluID0gKHtcbiAgcHJpdmF0ZU5ldCA9IGZhbHNlLFxuICBzdGFuZGJ5VmFsaWRhdG9yczogc3RhbmRieVZhbGlkYXRvcnNJbiA9IERFRkFVTFRfVkFMSURBVE9SUyxcbiAgc2Vjb25kc1BlckJsb2NrLFxuICBhZGRyZXNzOiBhZGRyZXNzSW4sXG59OiB7XG4gIHJlYWRvbmx5IHByaXZhdGVOZXQ/OiBib29sZWFuO1xuICByZWFkb25seSBzZWNvbmRzUGVyQmxvY2s/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHN0YW5kYnlWYWxpZGF0b3JzPzogUmVhZG9ubHlBcnJheTxzdHJpbmc+O1xuICByZWFkb25seSBhZGRyZXNzPzogc3RyaW5nO1xufSA9IHt9KTogU2V0dGluZ3MgPT4ge1xuICBjb25zdCBzdGFuZGJ5VmFsaWRhdG9ycyA9IHN0YW5kYnlWYWxpZGF0b3JzSW4ubWFwKCh2YWx1ZSkgPT4gY2xpZW50Q29tbW9uLnN0cmluZ1RvRUNQb2ludCh2YWx1ZSkpO1xuXG4gIGNvbnN0IGNvbnNlbnN1c0FkZHJlc3MgPVxuICAgIHN0YW5kYnlWYWxpZGF0b3JzSW4gPT09IERFRkFVTFRfVkFMSURBVE9SU1xuICAgICAgPyBjbGllbnRDb21tb24uYXNVSW50MTYwKEJ1ZmZlci5mcm9tKCc1OWU3NWQ2NTJiNWQzODI3YmYwNGMxNjViYmU5ZWY5NWNjYTRiZjU1JywgJ2hleCcpKVxuICAgICAgOiBjcnlwdG8uZ2V0Q29uc2Vuc3VzQWRkcmVzcyhzdGFuZGJ5VmFsaWRhdG9ycyk7XG4gIGxldCBhZGRyZXNzOiBVSW50MTYwO1xuICBpZiAoYWRkcmVzc0luID09PSB1bmRlZmluZWQpIHtcbiAgICBhZGRyZXNzID1cbiAgICAgIHN0YW5kYnlWYWxpZGF0b3JzSW4gPT09IERFRkFVTFRfVkFMSURBVE9SU1xuICAgICAgICA/IGNsaWVudENvbW1vbi5hc1VJbnQxNjAoQnVmZmVyLmZyb20oJzVmYTk5ZDkzMzAzNzc1ZmU1MGNhMTE5YzMyNzc1OTMxM2VjY2ZhMWMnLCAnaGV4JykpXG4gICAgICAgIDogY3J5cHRvLnRvU2NyaXB0SGFzaChcbiAgICAgICAgICAgIGNyeXB0by5jcmVhdGVNdWx0aVNpZ25hdHVyZVZlcmlmaWNhdGlvblNjcmlwdChzdGFuZGJ5VmFsaWRhdG9ycy5sZW5ndGggLyAyICsgMSwgc3RhbmRieVZhbGlkYXRvcnMpLFxuICAgICAgICAgICk7XG4gIH0gZWxzZSB7XG4gICAgYWRkcmVzcyA9IGNsaWVudENvbW1vbi5zdHJpbmdUb1VJbnQxNjAoYWRkcmVzc0luKTtcbiAgfVxuXG4gIGNvbnN0IGNvbW1vblNldHRpbmdzID0gY29tbW9uKHtcbiAgICBwcml2YXRlTmV0LFxuICAgIGNvbnNlbnN1c0FkZHJlc3MsXG4gICAgYWRkcmVzcyxcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZW5lc2lzQmxvY2s6IGNvbW1vblNldHRpbmdzLmdlbmVzaXNCbG9jayxcbiAgICBnb3Zlcm5pbmdUb2tlbjogY29tbW9uU2V0dGluZ3MuZ292ZXJuaW5nVG9rZW4sXG4gICAgdXRpbGl0eVRva2VuOiBjb21tb25TZXR0aW5ncy51dGlsaXR5VG9rZW4sXG4gICAgZGVjcmVtZW50SW50ZXJ2YWw6IGNvbW1vblNldHRpbmdzLmRlY3JlbWVudEludGVydmFsLFxuICAgIGdlbmVyYXRpb25BbW91bnQ6IGNvbW1vblNldHRpbmdzLmdlbmVyYXRpb25BbW91bnQsXG4gICAgc2Vjb25kc1BlckJsb2NrOiBzZWNvbmRzUGVyQmxvY2sgPT09IHVuZGVmaW5lZCA/IGNvbW1vblNldHRpbmdzLnNlY29uZHNQZXJCbG9jayA6IHNlY29uZHNQZXJCbG9jayxcbiAgICBtYXhUcmFuc2FjdGlvbnNQZXJCbG9jazogY29tbW9uU2V0dGluZ3MubWF4VHJhbnNhY3Rpb25zUGVyQmxvY2ssXG4gICAgbWVtUG9vbFNpemU6IGNvbW1vblNldHRpbmdzLm1lbVBvb2xTaXplLFxuICAgIGZlZXM6IHtcbiAgICAgIFtUcmFuc2FjdGlvblR5cGUuRW5yb2xsbWVudF06IGNsaWVudENvbW1vbi5maXhlZDhGcm9tRGVjaW1hbCgxMDAwKSxcbiAgICAgIFtUcmFuc2FjdGlvblR5cGUuSXNzdWVdOiBjbGllbnRDb21tb24uZml4ZWQ4RnJvbURlY2ltYWwoNTAwKSxcbiAgICAgIFtUcmFuc2FjdGlvblR5cGUuUHVibGlzaF06IGNsaWVudENvbW1vbi5maXhlZDhGcm9tRGVjaW1hbCg1MDApLFxuICAgICAgW1RyYW5zYWN0aW9uVHlwZS5SZWdpc3Rlcl06IGNsaWVudENvbW1vbi5maXhlZDhGcm9tRGVjaW1hbCgxMDAwMCksXG4gICAgfSxcblxuICAgIHJlZ2lzdGVyVmFsaWRhdG9yRmVlOiBjbGllbnRDb21tb24uZml4ZWQ4RnJvbURlY2ltYWwoMTAwMCksXG4gICAgbWVzc2FnZU1hZ2ljOiA3NjMwNDAxLFxuICAgIGFkZHJlc3NWZXJzaW9uOiBjbGllbnRDb21tb24uTkVPX0FERFJFU1NfVkVSU0lPTixcbiAgICBwcml2YXRlS2V5VmVyc2lvbjogY2xpZW50Q29tbW9uLk5FT19QUklWQVRFX0tFWV9WRVJTSU9OLFxuICAgIHN0YW5kYnlWYWxpZGF0b3JzLFxuICAgIHZtOiB7XG4gICAgICBzdG9yYWdlQ29udGV4dDoge1xuICAgICAgICB2MDoge1xuICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGZlYXR1cmVzOiB7XG4gICAgICBzdHJ1Y3RDbG9uZTogcHJpdmF0ZU5ldCA/IC0xIDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG4gICAgfSxcbiAgfTtcbn07XG4iXX0=