@neo-one/server-plugin-network
Version:
NEO•ONE Server network plugin.
50 lines (48 loc) • 7.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const node_1 = require("@neo-one/node");
const node_neo_settings_1 = require("@neo-one/node-neo-settings");
const fs = tslib_1.__importStar(require("fs-extra"));
const path = tslib_1.__importStar(require("path"));
const operators_1 = require("rxjs/operators");
exports.createFullNode = async ({ dataPath, nodeConfig, monitor, chainFile, dumpChainFile, onError, }) => {
const storagePath = path.resolve(dataPath, 'chain');
const [settings, rpcEnvironment, nodeEnvironment, telemetryEnvironment] = await Promise.all([
nodeConfig.config$
.pipe(operators_1.map((config) => config.settings), operators_1.distinctUntilChanged(), operators_1.map((config) => {
const options = {
privateNet: config.privateNet,
secondsPerBlock: config.secondsPerBlock,
standbyValidators: config.standbyValidators === undefined ? undefined : [...config.standbyValidators],
address: config.address,
};
return config.test ? node_neo_settings_1.createTest(options) : node_neo_settings_1.createMain(options);
}), operators_1.take(1))
.toPromise(),
nodeConfig.config$
.pipe(operators_1.map((config) => config.environment.rpc), operators_1.take(1))
.toPromise(),
nodeConfig.config$
.pipe(operators_1.map((config) => config.environment.node), operators_1.take(1))
.toPromise(),
nodeConfig.config$
.pipe(operators_1.map((config) => config.environment.telemetry), operators_1.take(1))
.toPromise(),
fs.ensureDir(storagePath),
]);
return new node_1.FullNode({
monitor,
settings,
environment: {
dataPath: storagePath,
rpc: rpcEnvironment,
node: nodeEnvironment,
telemetry: telemetryEnvironment,
chainFile,
dumpChainFile,
},
options$: nodeConfig.config$.pipe(operators_1.map((config) => config.options), operators_1.distinctUntilChanged()),
}, onError);
};
//# sourceMappingURL=data:application/json;charset=utf8;base64,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aW4tbmV0d29yay9zcmMvY3JlYXRlRnVsbE5vZGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb25pdG9yIH0gZnJvbSAnQG5lby1vbmUvbW9uaXRvcic7XG5pbXBvcnQgeyBGdWxsTm9kZSB9IGZyb20gJ0BuZW8tb25lL25vZGUnO1xuaW1wb3J0IHsgY3JlYXRlTWFpbiwgY3JlYXRlVGVzdCB9IGZyb20gJ0BuZW8tb25lL25vZGUtbmVvLXNldHRpbmdzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ0BuZW8tb25lL3NlcnZlci1wbHVnaW4nO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBORU9PTkVOb2RlQ29uZmlnIH0gZnJvbSAnLi9ub2RlJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZ1bGxOb2RlID0gYXN5bmMgKHtcbiAgZGF0YVBhdGgsXG4gIG5vZGVDb25maWcsXG4gIG1vbml0b3IsXG4gIGNoYWluRmlsZSxcbiAgZHVtcENoYWluRmlsZSxcbiAgb25FcnJvcixcbn06IHtcbiAgcmVhZG9ubHkgZGF0YVBhdGg6IHN0cmluZztcbiAgcmVhZG9ubHkgbm9kZUNvbmZpZzogQ29uZmlnPE5FT09ORU5vZGVDb25maWc+O1xuICByZWFkb25seSBtb25pdG9yOiBNb25pdG9yO1xuICByZWFkb25seSBjaGFpbkZpbGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGR1bXBDaGFpbkZpbGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufSkgPT4ge1xuICBjb25zdCBzdG9yYWdlUGF0aCA9IHBhdGgucmVzb2x2ZShkYXRhUGF0aCwgJ2NoYWluJyk7XG4gIGNvbnN0IFtzZXR0aW5ncywgcnBjRW52aXJvbm1lbnQsIG5vZGVFbnZpcm9ubWVudCwgdGVsZW1ldHJ5RW52aXJvbm1lbnRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIG5vZGVDb25maWcuY29uZmlnJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoY29uZmlnKSA9PiBjb25maWcuc2V0dGluZ3MpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBtYXAoKGNvbmZpZykgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBwcml2YXRlTmV0OiBjb25maWcucHJpdmF0ZU5ldCxcbiAgICAgICAgICAgIHNlY29uZHNQZXJCbG9jazogY29uZmlnLnNlY29uZHNQZXJCbG9jayxcbiAgICAgICAgICAgIHN0YW5kYnlWYWxpZGF0b3JzOiBjb25maWcuc3RhbmRieVZhbGlkYXRvcnMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IFsuLi5jb25maWcuc3RhbmRieVZhbGlkYXRvcnNdLFxuICAgICAgICAgICAgYWRkcmVzczogY29uZmlnLmFkZHJlc3MsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJldHVybiBjb25maWcudGVzdCA/IGNyZWF0ZVRlc3Qob3B0aW9ucykgOiBjcmVhdGVNYWluKG9wdGlvbnMpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKSxcbiAgICBub2RlQ29uZmlnLmNvbmZpZyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNvbmZpZykgPT4gY29uZmlnLmVudmlyb25tZW50LnJwYyksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCksXG4gICAgbm9kZUNvbmZpZy5jb25maWckXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjb25maWcpID0+IGNvbmZpZy5lbnZpcm9ubWVudC5ub2RlKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgIClcbiAgICAgIC50b1Byb21pc2UoKSxcbiAgICBub2RlQ29uZmlnLmNvbmZpZyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGNvbmZpZykgPT4gY29uZmlnLmVudmlyb25tZW50LnRlbGVtZXRyeSksXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAudG9Qcm9taXNlKCksXG4gICAgZnMuZW5zdXJlRGlyKHN0b3JhZ2VQYXRoKSxcbiAgXSk7XG5cbiAgcmV0dXJuIG5ldyBGdWxsTm9kZShcbiAgICB7XG4gICAgICBtb25pdG9yLFxuICAgICAgc2V0dGluZ3MsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBkYXRhUGF0aDogc3RvcmFnZVBhdGgsXG4gICAgICAgIHJwYzogcnBjRW52aXJvbm1lbnQsXG4gICAgICAgIG5vZGU6IG5vZGVFbnZpcm9ubWVudCxcbiAgICAgICAgdGVsZW1ldHJ5OiB0ZWxlbWV0cnlFbnZpcm9ubWVudCxcbiAgICAgICAgY2hhaW5GaWxlLFxuICAgICAgICBkdW1wQ2hhaW5GaWxlLFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMkOiBub2RlQ29uZmlnLmNvbmZpZyQucGlwZShcbiAgICAgICAgbWFwKChjb25maWcpID0+IGNvbmZpZy5vcHRpb25zKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICksXG4gICAgfSxcbiAgICBvbkVycm9yLFxuICApO1xufTtcbiJdfQ==