PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/avalanche/typings/tests/apis/platformvm

Просмотр файла: createchaintx.test.js

"use strict";
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 });
const bintools_1 = __importDefault(require("../../../src/utils/bintools"));
const buffer_1 = require("buffer/");
const constants_1 = require("../../../src/apis/platformvm/constants");
const index_1 = require("../../../src/index");
const platformvm_1 = require("src/apis/platformvm");
describe("CreateChainTx", () => {
    /**
     * @ignore
     */
    const bintools = bintools_1.default.getInstance();
    const createChainTxHex = "0000053900000000000000000000000000000000000000000000000000000000000000000000000117cc8b1578ba383544d163958822d8abd3849bb9dfabe39fcbc3e7ee8811fe2f00000007006a94d6d80d6c00000000000000000000000001000000023cb7d3842e8cee6a0ebd09f1fe884f6861e1b29ca43c1f6ecdcb1fcec86d78446b9cf619c64c604b000000017fe044f9e97347c0a5ffe5a0f5773b42398c0e2b85948616da681585d460e1a80000000017cc8b1578ba383544d163958822d8abd3849bb9dfabe39fcbc3e7ee8811fe2f00000005006a94d713a836000000000100000000000000934d616e75616c6c7920637265617465206120437265617465436861696e54782077686963682063726561746573206120312d6f662d322041564158207574786f20616e6420696e7374616e746961746573206120564d20696e746f206120626c6f636b636861696e20627920636f72726563746c79207369676e696e672074686520322d6f662d33205375626e6574417574687fe044f9e97347c0a5ffe5a0f5773b42398c0e2b85948616da681585d460e1a80008455049432041564d61766d0000000000000000000000000000000000000000000000000000000000000000036e6674667800000000000000000000000000000000000000000000000000000070726f7065727479667800000000000000000000000000000000000000000000736563703235366b3166780000000000000000000000000000000000000000000000013c000000000001000e4173736574416c696173546573740000053900000000000000000000000000000000000000000000000000000000000000000000000000000000000000934d616e75616c6c7920637265617465206120437265617465436861696e54782077686963682063726561746573206120312d6f662d322041564158207574786f20616e6420696e7374616e746961746573206120564d20696e746f206120626c6f636b636861696e20627920636f72726563746c79207369676e696e672074686520322d6f662d33205375626e657441757468000a54657374204173736574000454455354000000000100000000000000010000000700000000000001fb000000000000000000000001000000023cb7d3842e8cee6a0ebd09f1fe884f6861e1b29ca43c1f6ecdcb1fcec86d78446b9cf619c64c604b0000000a000000020000000000000001";
    const createChainTxBuf = buffer_1.Buffer.from(createChainTxHex, "hex");
    const createChainTx = new platformvm_1.CreateChainTx();
    createChainTx.fromBuffer(createChainTxBuf);
    test("getTypeName", () => __awaiter(void 0, void 0, void 0, function* () {
        const createChainTxTypeName = createChainTx.getTypeName();
        expect(createChainTxTypeName).toBe("CreateChainTx");
    }));
    test("getTypeID", () => __awaiter(void 0, void 0, void 0, function* () {
        const createChainTxTypeID = createChainTx.getTypeID();
        expect(createChainTxTypeID).toBe(constants_1.PlatformVMConstants.CREATECHAINTX);
    }));
    test("toBuffer and fromBuffer", () => __awaiter(void 0, void 0, void 0, function* () {
        const buf = createChainTx.toBuffer();
        const ccTx = new platformvm_1.CreateChainTx();
        ccTx.fromBuffer(buf);
        const buf2 = ccTx.toBuffer();
        expect(buf.toString("hex")).toBe(buf2.toString("hex"));
    }));
    test("getSubnetID", () => {
        const snID = "yKRV4EvGYWj7HHXUxSYzaAQVazEvaFPKPhJie4paqbrML5dub";
        const subnetID = createChainTx.getSubnetID();
        expect(subnetID).toBe(snID);
    });
    test("getChainName", () => {
        const cn = "EPIC AVM";
        const chainName = createChainTx.getChainName();
        expect(chainName).toBe(cn);
    });
    test("getVMID", () => {
        const vmIDHex = "61766d0000000000000000000000000000000000000000000000000000000000";
        const vmID = createChainTx.getVMID().toString("hex");
        expect(vmID).toBe(vmIDHex);
    });
    test("getFXIDs", () => {
        const fxIDsHex = [
            "6e66746678000000000000000000000000000000000000000000000000000000",
            "70726f7065727479667800000000000000000000000000000000000000000000",
            "736563703235366b316678000000000000000000000000000000000000000000"
        ];
        const fxIDs = createChainTx.getFXIDs();
        expect(fxIDs.length).toBe(3);
        fxIDs.forEach((fxID, index) => {
            expect(fxID.toString("hex")).toBe(fxIDsHex[index]);
        });
    });
    test("getGenesisData", () => {
        const gd = createChainTx.getGenesisData();
        const genesisData = new index_1.GenesisData();
        const buf = bintools.cb58Decode(gd);
        genesisData.fromBuffer(buf);
        const genesisAssets = genesisData.getGenesisAssets();
        const genesisAsset = genesisAssets[0];
        const n = "Test Asset";
        const name = genesisAsset.getName();
        expect(name).toBe(n);
        const s = "TEST";
        const symbol = genesisAsset.getSymbol();
        expect(symbol).toBe(s);
        const d = 0;
        const denomination = genesisAsset.getDenomination();
        expect(denomination).toBe(d);
    });
    describe("SubnetAuth", () => {
        const sa = createChainTx.getSubnetAuth();
        test("getTypeName", () => __awaiter(void 0, void 0, void 0, function* () {
            const subnetAuthTypeName = sa.getTypeName();
            expect(subnetAuthTypeName).toBe("SubnetAuth");
        }));
        test("getTypeID", () => __awaiter(void 0, void 0, void 0, function* () {
            const subnetAuthTypeID = sa.getTypeID();
            expect(subnetAuthTypeID).toBe(constants_1.PlatformVMConstants.SUBNETAUTH);
        }));
        test("getNumAddressIndices", () => __awaiter(void 0, void 0, void 0, function* () {
            const numAddressIndices = sa.getNumAddressIndices();
            const nAI = 2;
            expect(numAddressIndices).toBe(nAI);
        }));
        test("addressIndices", () => __awaiter(void 0, void 0, void 0, function* () {
            const ai = [0, 1];
            const addressIndices = sa.getAddressIndices();
            addressIndices.forEach((addressIndex, index) => {
                expect(addressIndex.readInt32BE(0)).toBe(ai[index]);
            });
        }));
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlY2hhaW50eC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdHMvYXBpcy9wbGF0Zm9ybXZtL2NyZWF0ZWNoYWludHgudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLDJFQUFrRDtBQUNsRCxvQ0FBZ0M7QUFDaEMsc0VBQTRFO0FBQzVFLDhDQUE4RDtBQUM5RCxvREFBK0Q7QUFFL0QsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFTLEVBQUU7SUFDbkM7O09BRUc7SUFDSCxNQUFNLFFBQVEsR0FBYSxrQkFBUSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBRWpELE1BQU0sZ0JBQWdCLEdBQ3BCLDR2REFBNHZELENBQUE7SUFDOXZELE1BQU0sZ0JBQWdCLEdBQVcsZUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNyRSxNQUFNLGFBQWEsR0FBa0IsSUFBSSwwQkFBYSxFQUFFLENBQUE7SUFDeEQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBd0IsRUFBRTtRQUM1QyxNQUFNLHFCQUFxQixHQUFXLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNqRSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDckQsQ0FBQyxDQUFBLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBd0IsRUFBRTtRQUMxQyxNQUFNLG1CQUFtQixHQUFXLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUM3RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxJQUFJLENBQUMsK0JBQW1CLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDckUsQ0FBQyxDQUFBLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUF3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QUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUF3QixFQUFFO1lBQy9DLE1BQU0sRUFBRSxHQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzNCLE1BQU0sY0FBYyxHQUFhLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO1lBQ3ZELGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFvQixFQUFFLEtBQWEsRUFBRSxFQUFFO2dCQUM3RCxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtZQUNyRCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQSxDQUFDLENBQUE7SUFDSixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpblRvb2xzIGZyb20gXCIuLi8uLi8uLi9zcmMvdXRpbHMvYmludG9vbHNcIlxuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSBcImJ1ZmZlci9cIlxuaW1wb3J0IHsgUGxhdGZvcm1WTUNvbnN0YW50cyB9IGZyb20gXCIuLi8uLi8uLi9zcmMvYXBpcy9wbGF0Zm9ybXZtL2NvbnN0YW50c1wiXG5pbXBvcnQgeyBHZW5lc2lzQXNzZXQsIEdlbmVzaXNEYXRhIH0gZnJvbSBcIi4uLy4uLy4uL3NyYy9pbmRleFwiXG5pbXBvcnQgeyBDcmVhdGVDaGFpblR4LCBTdWJuZXRBdXRoIH0gZnJvbSBcInNyYy9hcGlzL3BsYXRmb3Jtdm1cIlxuXG5kZXNjcmliZShcIkNyZWF0ZUNoYWluVHhcIiwgKCk6IHZvaWQgPT4ge1xuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3QgYmludG9vbHM6IEJpblRvb2xzID0gQmluVG9vbHMuZ2V0SW5zdGFuY2UoKVxuXG4gIGNvbnN0IGNyZWF0ZUNoYWluVHhIZXg6IHN0cmluZyA9XG4gICAgXCIwMDAwMDUzOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTE3Y2M4YjE1NzhiYTM4MzU0NGQxNjM5NTg4MjJkOGFiZDM4NDliYjlkZmFiZTM5ZmNiYzNlN2VlODgxMWZlMmYwMDAwMDAwNzAwNmE5NGQ2ZDgwZDZjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMjNjYjdkMzg0MmU4Y2VlNmEwZWJkMDlmMWZlODg0ZjY4NjFlMWIyOWNhNDNjMWY2ZWNkY2IxZmNlYzg2ZDc4NDQ2YjljZjYxOWM2NGM2MDRiMDAwMDAwMDE3ZmUwNDRmOWU5NzM0N2MwYTVmZmU1YTBmNTc3M2I0MjM5OGMwZTJiODU5NDg2MTZkYTY4MTU4NWQ0NjBlMWE4MDAwMDAwMDAxN2NjOGIxNTc4YmEzODM1NDRkMTYzOTU4ODIyZDhhYmQzODQ5YmI5ZGZhYmUzOWZjYmMzZTdlZTg4MTFmZTJmMDAwMDAwMDUwMDZhOTRkNzEzYTgzNjAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDkzNGQ2MTZlNzU2MTZjNmM3OTIwNjM3MjY1NjE3NDY1MjA2MTIwNDM3MjY1NjE3NDY1NDM2ODYxNjk2ZTU0NzgyMDc3Njg2OTYzNjgyMDYzNzI2NTYxNzQ2NTczMjA2MTIwMzEyZDZmNjYyZDMyMjA0MTU2NDE1ODIwNzU3NDc4NmYyMDYxNmU2NDIwNjk2ZTczNzQ2MTZlNzQ2OTYxNzQ2NTczMjA2MTIwNTY0ZDIwNjk2ZTc0NmYyMDYxMjA2MjZjNmY2MzZiNjM2ODYxNjk2ZTIwNjI3OTIwNjM2ZjcyNzI2NTYzNzQ2Yzc5MjA3MzY5Njc2ZTY5NmU2NzIwNzQ2ODY1MjAzMjJkNmY2NjJkMzMyMDUzNzU2MjZlNjU3NDQxNzU3NDY4N2ZlMDQ0ZjllOTczNDdjMGE1ZmZlNWEwZjU3NzNiNDIzOThjMGUyYjg1OTQ4NjE2ZGE2ODE1ODVkNDYwZTFhODAwMDg0NTUwNDk0MzIwNDE1NjRkNjE3NjZkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNmU2Njc0NjY3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwNzI2ZjcwNjU3Mjc0Nzk2Njc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MzY1NjM3MDMyMzUzNjZiMzE2Njc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxM2MwMDAwMDAwMDAwMDEwMDBlNDE3MzczNjU3NDQxNmM2OTYxNzM1NDY1NzM3NDAwMDAwNTM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MzRkNjE2ZTc1NjE2YzZjNzkyMDYzNzI2NTYxNzQ2NTIwNjEyMDQzNzI2NTYxNzQ2NTQzNjg2MTY5NmU1NDc4MjA3NzY4Njk2MzY4MjA2MzcyNjU2MTc0NjU3MzIwNjEyMDMxMmQ2ZjY2MmQzMjIwNDE1NjQxNTgyMDc1NzQ3ODZmMjA2MTZlNjQyMDY5NmU3Mzc0NjE2ZTc0Njk2MTc0NjU3MzIwNjEyMDU2NGQyMDY5NmU3NDZmMjA2MTIwNjI2YzZmNjM2YjYzNjg2MTY5NmUyMDYyNzkyMDYzNmY3MjcyNjU2Mzc0NmM3OTIwNzM2OTY3NmU2OTZlNjcyMDc0Njg2NTIwMzIyZDZmNjYyZDMzMjA1Mzc1NjI2ZTY1NzQ0MTc1NzQ2ODAwMGE1NDY1NzM3NDIwNDE3MzczNjU3NDAwMDQ1NDQ1NTM1NDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDcwMDAwMDAwMDAwMDAwMWZiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDIzY2I3ZDM4NDJlOGNlZTZhMGViZDA5ZjFmZTg4NGY2ODYxZTFiMjljYTQzYzFmNmVjZGNiMWZjZWM4NmQ3ODQ0NmI5Y2Y2MTljNjRjNjA0YjAwMDAwMDBhMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAxXCJcbiAgY29uc3QgY3JlYXRlQ2hhaW5UeEJ1ZjogQnVmZmVyID0gQnVmZmVyLmZyb20oY3JlYXRlQ2hhaW5UeEhleCwgXCJoZXhcIilcbiAgY29uc3QgY3JlYXRlQ2hhaW5UeDogQ3JlYXRlQ2hhaW5UeCA9IG5ldyBDcmVhdGVDaGFpblR4KClcbiAgY3JlYXRlQ2hhaW5UeC5mcm9tQnVmZmVyKGNyZWF0ZUNoYWluVHhCdWYpXG5cbiAgdGVzdChcImdldFR5cGVOYW1lXCIsIGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBjcmVhdGVDaGFpblR4VHlwZU5hbWU6IHN0cmluZyA9IGNyZWF0ZUNoYWluVHguZ2V0VHlwZU5hbWUoKVxuICAgIGV4cGVjdChjcmVhdGVDaGFpblR4VHlwZU5hbWUpLnRvQmUoXCJDcmVhdGVDaGFpblR4XCIpXG4gIH0pXG5cbiAgdGVzdChcImdldFR5cGVJRFwiLCBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgY3JlYXRlQ2hhaW5UeFR5cGVJRDogbnVtYmVyID0gY3JlYXRlQ2hhaW5UeC5nZXRUeXBlSUQoKVxuICAgIGV4cGVjdChjcmVhdGVDaGFpblR4VHlwZUlEKS50b0JlKFBsYXRmb3JtVk1Db25zdGFudHMuQ1JFQVRFQ0hBSU5UWClcbiAgfSlcblxuICB0ZXN0KFwidG9CdWZmZXIgYW5kIGZyb21CdWZmZXJcIiwgYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGJ1ZjogQnVmZmVyID0gY3JlYXRlQ2hhaW5UeC50b0J1ZmZlcigpXG4gICAgY29uc3QgY2NUeDogQ3JlYXRlQ2hhaW5UeCA9IG5ldyBDcmVhdGVDaGFpblR4KClcbiAgICBjY1R4LmZyb21CdWZmZXIoYnVmKVxuICAgIGNvbnN0IGJ1ZjI6IEJ1ZmZlciA9IGNjVHgudG9CdWZmZXIoKVxuICAgIGV4cGVjdChidWYudG9TdHJpbmcoXCJoZXhcIikpLnRvQmUoYnVmMi50b1N0cmluZyhcImhleFwiKSlcbiAgfSlcblxuICB0ZXN0KFwiZ2V0U3VibmV0SURcIiwgKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHNuSUQ6IHN0cmluZyA9IFwieUtSVjRFdkdZV2o3SEhYVXhTWXphQVFWYXpFdmFGUEtQaEppZTRwYXFick1MNWR1YlwiXG4gICAgY29uc3Qgc3VibmV0SUQ6IHN0cmluZyA9IGNyZWF0ZUNoYWluVHguZ2V0U3VibmV0SUQoKVxuICAgIGV4cGVjdChzdWJuZXRJRCkudG9CZShzbklEKVxuICB9KVxuXG4gIHRlc3QoXCJnZXRDaGFpbk5hbWVcIiwgKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNuOiBzdHJpbmcgPSBcIkVQSUMgQVZNXCJcbiAgICBjb25zdCBjaGFpbk5hbWU6IHN0cmluZyA9IGNyZWF0ZUNoYWluVHguZ2V0Q2hhaW5OYW1lKClcbiAgICBleHBlY3QoY2hhaW5OYW1lKS50b0JlKGNuKVxuICB9KVxuXG4gIHRlc3QoXCJnZXRWTUlEXCIsICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCB2bUlESGV4OiBzdHJpbmcgPVxuICAgICAgXCI2MTc2NmQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICBjb25zdCB2bUlEOiBzdHJpbmcgPSBjcmVhdGVDaGFpblR4LmdldFZNSUQoKS50b1N0cmluZyhcImhleFwiKVxuICAgIGV4cGVjdCh2bUlEKS50b0JlKHZtSURIZXgpXG4gIH0pXG5cbiAgdGVzdChcImdldEZYSURzXCIsICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCBmeElEc0hleDogc3RyaW5nW10gPSBbXG4gICAgICBcIjZlNjY3NDY2NzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBcIixcbiAgICAgIFwiNzA3MjZmNzA2NTcyNzQ3OTY2NzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFxuICAgICAgXCI3MzY1NjM3MDMyMzUzNjZiMzE2Njc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCJcbiAgICBdXG4gICAgY29uc3QgZnhJRHM6IEJ1ZmZlcltdID0gY3JlYXRlQ2hhaW5UeC5nZXRGWElEcygpXG4gICAgZXhwZWN0KGZ4SURzLmxlbmd0aCkudG9CZSgzKVxuICAgIGZ4SURzLmZvckVhY2goKGZ4SUQ6IEJ1ZmZlciwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZXhwZWN0KGZ4SUQudG9TdHJpbmcoXCJoZXhcIikpLnRvQmUoZnhJRHNIZXhbaW5kZXhdKVxuICAgIH0pXG4gIH0pXG5cbiAgdGVzdChcImdldEdlbmVzaXNEYXRhXCIsICgpOiB2b2lkID0+IHtcbiAgICBjb25zdCBnZDogc3RyaW5nID0gY3JlYXRlQ2hhaW5UeC5nZXRHZW5lc2lzRGF0YSgpXG4gICAgY29uc3QgZ2VuZXNpc0RhdGE6IEdlbmVzaXNEYXRhID0gbmV3IEdlbmVzaXNEYXRhKClcbiAgICBjb25zdCBidWY6IEJ1ZmZlciA9IGJpbnRvb2xzLmNiNThEZWNvZGUoZ2QpXG4gICAgZ2VuZXNpc0RhdGEuZnJvbUJ1ZmZlcihidWYpXG4gICAgY29uc3QgZ2VuZXNpc0Fzc2V0czogR2VuZXNpc0Fzc2V0W10gPSBnZW5lc2lzRGF0YS5nZXRHZW5lc2lzQXNzZXRzKClcbiAgICBjb25zdCBnZW5lc2lzQXNzZXQ6IEdlbmVzaXNBc3NldCA9IGdlbmVzaXNBc3NldHNbMF1cblxuICAgIGNvbnN0IG46IHN0cmluZyA9IFwiVGVzdCBBc3NldFwiXG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0gZ2VuZXNpc0Fzc2V0LmdldE5hbWUoKVxuICAgIGV4cGVjdChuYW1lKS50b0JlKG4pXG5cbiAgICBjb25zdCBzOiBzdHJpbmcgPSBcIlRFU1RcIlxuICAgIGNvbnN0IHN5bWJvbDogc3RyaW5nID0gZ2VuZXNpc0Fzc2V0LmdldFN5bWJvbCgpXG4gICAgZXhwZWN0KHN5bWJvbCkudG9CZShzKVxuXG4gICAgY29uc3QgZDogbnVtYmVyID0gMFxuICAgIGNvbnN0IGRlbm9taW5hdGlvbiA9IGdlbmVzaXNBc3NldC5nZXREZW5vbWluYXRpb24oKVxuICAgIGV4cGVjdChkZW5vbWluYXRpb24pLnRvQmUoZClcbiAgfSlcblxuICBkZXNjcmliZShcIlN1Ym5ldEF1dGhcIiwgKCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHNhOiBTdWJuZXRBdXRoID0gY3JlYXRlQ2hhaW5UeC5nZXRTdWJuZXRBdXRoKClcblxuICAgIHRlc3QoXCJnZXRUeXBlTmFtZVwiLCBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBzdWJuZXRBdXRoVHlwZU5hbWU6IHN0cmluZyA9IHNhLmdldFR5cGVOYW1lKClcbiAgICAgIGV4cGVjdChzdWJuZXRBdXRoVHlwZU5hbWUpLnRvQmUoXCJTdWJuZXRBdXRoXCIpXG4gICAgfSlcblxuICAgIHRlc3QoXCJnZXRUeXBlSURcIiwgYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3Qgc3VibmV0QXV0aFR5cGVJRDogbnVtYmVyID0gc2EuZ2V0VHlwZUlEKClcbiAgICAgIGV4cGVjdChzdWJuZXRBdXRoVHlwZUlEKS50b0JlKFBsYXRmb3JtVk1Db25zdGFudHMuU1VCTkVUQVVUSClcbiAgICB9KVxuXG4gICAgdGVzdChcImdldE51bUFkZHJlc3NJbmRpY2VzXCIsIGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IG51bUFkZHJlc3NJbmRpY2VzOiBudW1iZXIgPSBzYS5nZXROdW1BZGRyZXNzSW5kaWNlcygpXG4gICAgICBjb25zdCBuQUk6IG51bWJlciA9IDJcbiAgICAgIGV4cGVjdChudW1BZGRyZXNzSW5kaWNlcykudG9CZShuQUkpXG4gICAgfSlcblxuICAgIHRlc3QoXCJhZGRyZXNzSW5kaWNlc1wiLCBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBhaTogbnVtYmVyW10gPSBbMCwgMV1cbiAgICAgIGNvbnN0IGFkZHJlc3NJbmRpY2VzOiBCdWZmZXJbXSA9IHNhLmdldEFkZHJlc3NJbmRpY2VzKClcbiAgICAgIGFkZHJlc3NJbmRpY2VzLmZvckVhY2goKGFkZHJlc3NJbmRleDogQnVmZmVyLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGV4cGVjdChhZGRyZXNzSW5kZXgucmVhZEludDMyQkUoMCkpLnRvQmUoYWlbaW5kZXhdKVxuICAgICAgfSlcbiAgICB9KVxuICB9KVxufSlcbiJdfQ==

Выполнить команду


Для локальной разработки. Не используйте в интернете!