PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-coredao/dist/test/unit
Просмотр файла: coredao.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const should = __importStar(require("should"));
const sdk_test_1 = require("@bitgo/sdk-test");
const sdk_api_1 = require("@bitgo/sdk-api");
const src_1 = require("../../src");
const nock_1 = __importDefault(require("nock"));
const tx_1 = require("@ethereumjs/tx");
const util_1 = require("@ethereumjs/util");
const sdk_core_1 = require("@bitgo/sdk-core");
const resources_1 = require("../resources");
const bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
describe('Coredao', function () {
before(function () {
bitgo.safeRegister('coredao', src_1.Coredao.createInstance);
bitgo.safeRegister('tcoredao', src_1.Tcoredao.createInstance);
bitgo.initializeTestVars();
});
describe('Basic Coin Info', function () {
it('should return the right info for coredao', function () {
const coredao = bitgo.coin('coredao');
coredao.should.be.an.instanceof(src_1.Coredao);
coredao.getChain().should.equal('coredao');
coredao.getFamily().should.equal('coredao');
coredao.getFullName().should.equal('Core');
coredao.getBaseFactor().should.equal(1e18);
coredao.supportsTss().should.equal(true);
coredao.allowsAccountConsolidations().should.equal(false);
});
it('should return the right info for tcoredao', function () {
const tcoredao = bitgo.coin('tcoredao');
tcoredao.should.be.an.instanceof(src_1.Tcoredao);
tcoredao.getChain().should.equal('tcoredao');
tcoredao.getFamily().should.equal('coredao');
tcoredao.getFullName().should.equal('Testnet Core');
tcoredao.getBaseFactor().should.equal(1e18);
tcoredao.supportsTss().should.equal(true);
tcoredao.allowsAccountConsolidations().should.equal(false);
});
});
describe('Build Recover Transaction', function () {
const bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
const explorerUrl = sdk_core_1.common.Environments[bitgo.getEnv()].coredaoExplorerBaseUrl;
it('should generate a signed non-bitgo recovery tx', async () => {
(0, nock_1.default)(explorerUrl)
.get('/api')
.twice()
.query(resources_1.mockDataNonBitGoRecovery.getTxListRequest)
.reply(200, resources_1.mockDataNonBitGoRecovery.getTxListResponse);
(0, nock_1.default)(explorerUrl)
.get('/api')
.query(resources_1.mockDataNonBitGoRecovery.getBalanceRequest)
.reply(200, resources_1.mockDataNonBitGoRecovery.getBalanceResponse);
const baseCoin = bitgo.coin('tcoredao');
const transaction = await baseCoin.recover({
userKey: resources_1.mockDataNonBitGoRecovery.userKeyData,
backupKey: resources_1.mockDataNonBitGoRecovery.backupKeyData,
walletContractAddress: resources_1.mockDataNonBitGoRecovery.walletRootAddress,
walletPassphrase: resources_1.mockDataNonBitGoRecovery.walletPassphrase,
recoveryDestination: resources_1.mockDataNonBitGoRecovery.recoveryDestination,
isTss: true,
eip1559: { maxFeePerGas: 20000000000, maxPriorityFeePerGas: 10000000000 },
gasLimit: 500000,
replayProtectionOptions: {
chain: 1114,
hardfork: 'london',
},
});
should.exist(transaction);
transaction.should.have.property('id');
transaction.should.have.property('tx');
const tx = tx_1.FeeMarketEIP1559Transaction.fromSerializedTx(Buffer.from((0, util_1.stripHexPrefix)(transaction.tx), 'hex'));
tx.getSenderAddress().toString().should.equal(resources_1.mockDataNonBitGoRecovery.walletRootAddress);
const jsonTx = tx.toJSON();
jsonTx.chainId?.should.equal('0x45a');
jsonTx.to?.should.equal(resources_1.mockDataNonBitGoRecovery.recoveryDestination);
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZWRhby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9jb3JlZGFvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQWlDO0FBRWpDLDhDQUEwRDtBQUMxRCw0Q0FBMEM7QUFFMUMsbUNBQThDO0FBQzlDLGdEQUF3QjtBQUV4Qix1Q0FBNkQ7QUFDN0QsMkNBQWtEO0FBQ2xELDhDQUF5QztBQUN6Qyw0Q0FBd0Q7QUFFeEQsTUFBTSxLQUFLLEdBQWlCLG9CQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUUxRSxRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLE1BQU0sQ0FBQztRQUNMLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxLQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxjQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsaUJBQWlCLEVBQUU7UUFDMUIsRUFBRSxDQUFDLDBDQUEwQyxFQUFFO1lBQzdDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFPLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDJDQUEyQyxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFeEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFRLENBQUMsQ0FBQztZQUMzQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM3QyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNwRCxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsMkJBQTJCLEVBQUU7UUFDcEMsTUFBTSxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLGlCQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLHNCQUFnQyxDQUFDO1FBRXpGLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM5RCxJQUFBLGNBQUksRUFBQyxXQUFXLENBQUM7aUJBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQztpQkFDWCxLQUFLLEVBQUU7aUJBQ1AsS0FBSyxDQUFDLG9DQUF3QixDQUFDLGdCQUFnQixDQUFDO2lCQUNoRCxLQUFLLENBQUMsR0FBRyxFQUFFLG9DQUF3QixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDMUQsSUFBQSxjQUFJLEVBQUMsV0FBVyxDQUFDO2lCQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUM7aUJBQ1gsS0FBSyxDQUFDLG9DQUF3QixDQUFDLGlCQUFpQixDQUFDO2lCQUNqRCxLQUFLLENBQUMsR0FBRyxFQUFFLG9DQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFFM0QsTUFBTSxRQUFRLEdBQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM3QyxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxvQ0FBd0IsQ0FBQyxXQUFXO2dCQUM3QyxTQUFTLEVBQUUsb0NBQXdCLENBQUMsYUFBYTtnQkFDakQscUJBQXFCLEVBQUUsb0NBQXdCLENBQUMsaUJBQWlCO2dCQUNqRSxnQkFBZ0IsRUFBRSxvQ0FBd0IsQ0FBQyxnQkFBZ0I7Z0JBQzNELG1CQUFtQixFQUFFLG9DQUF3QixDQUFDLG1CQUFtQjtnQkFDakUsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUU7Z0JBQ3pFLFFBQVEsRUFBRSxNQUFNO2dCQUNoQix1QkFBdUIsRUFBRTtvQkFDdkIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsUUFBUSxFQUFFLFFBQVE7aUJBQ25CO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxHQUFHLGdDQUEyQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSxxQkFBYyxFQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzVHLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQXdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMxRixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBd0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcblxuaW1wb3J0IHsgQ29yZWRhbywgVGNvcmVkYW8gfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IG5vY2sgZnJvbSAnbm9jayc7XG5cbmltcG9ydCB7IEZlZU1hcmtldEVJUDE1NTlUcmFuc2FjdGlvbiB9IGZyb20gJ0BldGhlcmV1bWpzL3R4JztcbmltcG9ydCB7IHN0cmlwSGV4UHJlZml4IH0gZnJvbSAnQGV0aGVyZXVtanMvdXRpbCc7XG5pbXBvcnQgeyBjb21tb24gfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgbW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5IH0gZnJvbSAnLi4vcmVzb3VyY2VzJztcblxuY29uc3QgYml0Z286IFRlc3RCaXRHb0FQSSA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICd0ZXN0JyB9KTtcblxuZGVzY3JpYmUoJ0NvcmVkYW8nLCBmdW5jdGlvbiAoKSB7XG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdjb3JlZGFvJywgQ29yZWRhby5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0Y29yZWRhbycsIFRjb3JlZGFvLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0Jhc2ljIENvaW4gSW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcmlnaHQgaW5mbyBmb3IgY29yZWRhbycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGNvcmVkYW8gPSBiaXRnby5jb2luKCdjb3JlZGFvJyk7XG5cbiAgICAgIGNvcmVkYW8uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoQ29yZWRhbyk7XG4gICAgICBjb3JlZGFvLmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCdjb3JlZGFvJyk7XG4gICAgICBjb3JlZGFvLmdldEZhbWlseSgpLnNob3VsZC5lcXVhbCgnY29yZWRhbycpO1xuICAgICAgY29yZWRhby5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnQ29yZScpO1xuICAgICAgY29yZWRhby5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlMTgpO1xuICAgICAgY29yZWRhby5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIGNvcmVkYW8uYWxsb3dzQWNjb3VudENvbnNvbGlkYXRpb25zKCkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHRoZSByaWdodCBpbmZvIGZvciB0Y29yZWRhbycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHRjb3JlZGFvID0gYml0Z28uY29pbigndGNvcmVkYW8nKTtcblxuICAgICAgdGNvcmVkYW8uc2hvdWxkLmJlLmFuLmluc3RhbmNlb2YoVGNvcmVkYW8pO1xuICAgICAgdGNvcmVkYW8uZ2V0Q2hhaW4oKS5zaG91bGQuZXF1YWwoJ3Rjb3JlZGFvJyk7XG4gICAgICB0Y29yZWRhby5nZXRGYW1pbHkoKS5zaG91bGQuZXF1YWwoJ2NvcmVkYW8nKTtcbiAgICAgIHRjb3JlZGFvLmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdUZXN0bmV0IENvcmUnKTtcbiAgICAgIHRjb3JlZGFvLmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoMWUxOCk7XG4gICAgICB0Y29yZWRhby5zdXBwb3J0c1RzcygpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICAgIHRjb3JlZGFvLmFsbG93c0FjY291bnRDb25zb2xpZGF0aW9ucygpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdCdWlsZCBSZWNvdmVyIFRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7IGVudjogJ3Rlc3QnIH0pO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gY29tbW9uLkVudmlyb25tZW50c1tiaXRnby5nZXRFbnYoKV0uY29yZWRhb0V4cGxvcmVyQmFzZVVybCBhcyBzdHJpbmc7XG5cbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEgc2lnbmVkIG5vbi1iaXRnbyByZWNvdmVyeSB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIG5vY2soZXhwbG9yZXJVcmwpXG4gICAgICAgIC5nZXQoJy9hcGknKVxuICAgICAgICAudHdpY2UoKVxuICAgICAgICAucXVlcnkobW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5LmdldFR4TGlzdFJlcXVlc3QpXG4gICAgICAgIC5yZXBseSgyMDAsIG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS5nZXRUeExpc3RSZXNwb25zZSk7XG4gICAgICBub2NrKGV4cGxvcmVyVXJsKVxuICAgICAgICAuZ2V0KCcvYXBpJylcbiAgICAgICAgLnF1ZXJ5KG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS5nZXRCYWxhbmNlUmVxdWVzdClcbiAgICAgICAgLnJlcGx5KDIwMCwgbW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5LmdldEJhbGFuY2VSZXNwb25zZSk7XG5cbiAgICAgIGNvbnN0IGJhc2VDb2luOiBhbnkgPSBiaXRnby5jb2luKCd0Y29yZWRhbycpO1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSBhd2FpdCBiYXNlQ29pbi5yZWNvdmVyKHtcbiAgICAgICAgdXNlcktleTogbW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5LnVzZXJLZXlEYXRhLFxuICAgICAgICBiYWNrdXBLZXk6IG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS5iYWNrdXBLZXlEYXRhLFxuICAgICAgICB3YWxsZXRDb250cmFjdEFkZHJlc3M6IG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS53YWxsZXRSb290QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0UGFzc3BocmFzZTogbW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5LndhbGxldFBhc3NwaHJhc2UsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS5yZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICBpc1RzczogdHJ1ZSxcbiAgICAgICAgZWlwMTU1OTogeyBtYXhGZWVQZXJHYXM6IDIwMDAwMDAwMDAwLCBtYXhQcmlvcml0eUZlZVBlckdhczogMTAwMDAwMDAwMDAgfSxcbiAgICAgICAgZ2FzTGltaXQ6IDUwMDAwMCxcbiAgICAgICAgcmVwbGF5UHJvdGVjdGlvbk9wdGlvbnM6IHtcbiAgICAgICAgICBjaGFpbjogMTExNCxcbiAgICAgICAgICBoYXJkZm9yazogJ2xvbmRvbicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHNob3VsZC5leGlzdCh0cmFuc2FjdGlvbik7XG4gICAgICB0cmFuc2FjdGlvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnaWQnKTtcbiAgICAgIHRyYW5zYWN0aW9uLnNob3VsZC5oYXZlLnByb3BlcnR5KCd0eCcpO1xuICAgICAgY29uc3QgdHggPSBGZWVNYXJrZXRFSVAxNTU5VHJhbnNhY3Rpb24uZnJvbVNlcmlhbGl6ZWRUeChCdWZmZXIuZnJvbShzdHJpcEhleFByZWZpeCh0cmFuc2FjdGlvbi50eCksICdoZXgnKSk7XG4gICAgICB0eC5nZXRTZW5kZXJBZGRyZXNzKCkudG9TdHJpbmcoKS5zaG91bGQuZXF1YWwobW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5LndhbGxldFJvb3RBZGRyZXNzKTtcbiAgICAgIGNvbnN0IGpzb25UeCA9IHR4LnRvSlNPTigpO1xuICAgICAganNvblR4LmNoYWluSWQ/LnNob3VsZC5lcXVhbCgnMHg0NWEnKTtcbiAgICAgIGpzb25UeC50bz8uc2hvdWxkLmVxdWFsKG1vY2tEYXRhTm9uQml0R29SZWNvdmVyeS5yZWNvdmVyeURlc3RpbmF0aW9uKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!