PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/avalanche/typings/e2e_tests

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

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const e2etestlib_1 = require("./e2etestlib");
const api_1 = require("src/apis/keystore/api");
const bn_js_1 = __importDefault(require("bn.js"));
describe("XChain", () => {
    let tx = { value: "" };
    let asset = { value: "" };
    let addrB = { value: "" };
    let addrC = { value: "" };
    const avalanche = (0, e2etestlib_1.getAvalanche)();
    const xchain = avalanche.XChain();
    const keystore = new api_1.KeystoreAPI(avalanche);
    const user = "avalancheJsXChainUser";
    const passwd = "avalancheJsP1ssw4rd";
    const badUser = "asdfasdfsa";
    const badPass = "pass";
    const memo = "hello world";
    const whaleAddr = "X-custom18jma8ppw3nhx5r4ap8clazz0dps7rv5u9xde7p";
    const key = "PrivateKey-ewoqjP7PxY4yr3iLTpLisriqt94hdyDFNgchSxGGztUrTXtNN";
    // test_name        response_promise                            resp_fn          matcher           expected_value/obtained_value
    const tests_spec = [
        [
            "createUser",
            () => keystore.createUser(user, passwd),
            (x) => x,
            e2etestlib_1.Matcher.toEqual,
            () => { return {}; }
        ],
        [
            "createaddrB",
            () => xchain.createAddress(user, passwd),
            (x) => x,
            e2etestlib_1.Matcher.Get,
            () => addrB
        ],
        [
            "createaddrB",
            () => xchain.createAddress(user, passwd),
            (x) => x,
            e2etestlib_1.Matcher.Get,
            () => addrC
        ],
        [
            "incorrectUser",
            () => xchain.send(badUser, passwd, "AVAX", 10, addrB.value, [addrC.value], addrB.value, memo),
            (x) => x,
            e2etestlib_1.Matcher.toThrow,
            () => `problem retrieving user "${badUser}": incorrect password for user "${badUser}"`
        ],
        [
            "incorrectPass",
            () => xchain.send(user, badPass, "AVAX", 10, addrB.value, [addrC.value], addrB.value, memo),
            (x) => x,
            e2etestlib_1.Matcher.toThrow,
            () => `problem retrieving user "${user}": incorrect password for user "${user}"`
        ],
        [
            "getBalance",
            () => xchain.getBalance(whaleAddr, "AVAX"),
            (x) => x.balance,
            e2etestlib_1.Matcher.toBe,
            () => "300000000000000000"
        ],
        [
            "getBalance2",
            () => xchain.getBalance(whaleAddr, "AVAX"),
            (x) => x.utxoIDs[0].txID,
            e2etestlib_1.Matcher.toBe,
            () => "BUuypiq2wyuLMvyhzFXcPyxPMCgSp7eeDohhQRqTChoBjKziC"
        ],
        [
            "importKey",
            () => xchain.importKey(user, passwd, key),
            (x) => x,
            e2etestlib_1.Matcher.toBe,
            () => whaleAddr
        ],
        [
            "send",
            () => xchain.send(user, passwd, "AVAX", 10, addrB.value, [whaleAddr], whaleAddr, memo),
            (x) => x.txID,
            e2etestlib_1.Matcher.Get,
            () => tx
        ],
        [
            "sendMultiple",
            () => xchain.sendMultiple(user, passwd, [
                { assetID: "AVAX", amount: 10, to: addrB.value },
                { assetID: "AVAX", amount: 20, to: addrC.value }
            ], [whaleAddr], whaleAddr, memo),
            (x) => x.txID,
            e2etestlib_1.Matcher.Get,
            () => tx
        ],
        [
            "listAddrs",
            () => xchain.listAddresses(user, passwd),
            (x) => x.sort(),
            e2etestlib_1.Matcher.toEqual,
            () => [whaleAddr, addrB.value, addrC.value].sort()
        ],
        [
            "exportKey",
            () => xchain.exportKey(user, passwd, addrB.value),
            (x) => x,
            e2etestlib_1.Matcher.toMatch,
            () => /PrivateKey-\w*/
        ],
        [
            "export",
            () => xchain.export(user, passwd, "C" + addrB.value.substring(1), new bn_js_1.default(10), "AVAX"),
            (x) => x,
            e2etestlib_1.Matcher.toThrow,
            () => "couldn't unmarshal an argument"
        ],
        [
            "import",
            () => xchain.import(user, passwd, addrB.value, "P"),
            (x) => x,
            e2etestlib_1.Matcher.toThrow,
            () => "problem issuing transaction: no import inputs"
        ],
        [
            "createFixed",
            () => xchain.createFixedCapAsset(user, passwd, "Some Coin", "SCC", 0, [
                { address: whaleAddr, amount: "10000" }
            ]),
            (x) => x,
            e2etestlib_1.Matcher.Get,
            () => asset
        ],
        [
            "createVar",
            () => xchain.createVariableCapAsset(user, passwd, "Some Coin", "SCC", 0, [
                { minters: [whaleAddr], threshold: 1 }
            ]),
            (x) => x,
            e2etestlib_1.Matcher.Get,
            () => asset
        ],
        [
            "mint",
            () => xchain.mint(user, passwd, 1500, asset.value, addrB.value, [whaleAddr]),
            (x) => x,
            e2etestlib_1.Matcher.toThrow,
            () => "couldn't unmarshal an argument"
        ],
        [
            "getTx",
            () => xchain.getTx(tx.value),
            (x) => x,
            e2etestlib_1.Matcher.toMatch,
            () => /\w+/
        ],
        [
            "getTxStatus",
            () => xchain.getTxStatus(tx.value),
            (x) => x,
            e2etestlib_1.Matcher.toBe,
            () => "Processing"
        ],
        [
            "getAssetDesc",
            () => xchain.getAssetDescription(asset.value),
            (x) => [x.name, x.symbol],
            e2etestlib_1.Matcher.toEqual,
            () => ["Some Coin", "SCC"]
        ]
    ];
    (0, e2etestlib_1.createTests)(tests_spec);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGNoYWluX25vbW9jay50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZTJlX3Rlc3RzL3hjaGFpbl9ub21vY2sudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFpRTtBQUNqRSwrQ0FBbUQ7QUFDbkQsa0RBQXNCO0FBRXRCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBUyxFQUFFO0lBQzVCLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ3RCLElBQUksS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ3pCLElBQUksS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ3pCLElBQUksS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBRXpCLE1BQU0sU0FBUyxHQUFHLElBQUEseUJBQVksR0FBRSxDQUFBO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGlCQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFM0MsTUFBTSxJQUFJLEdBQVcsdUJBQXVCLENBQUE7SUFDNUMsTUFBTSxNQUFNLEdBQVcscUJBQXFCLENBQUE7SUFDNUMsTUFBTSxPQUFPLEdBQVcsWUFBWSxDQUFBO0lBQ3BDLE1BQU0sT0FBTyxHQUFXLE1BQU0sQ0FBQTtJQUM5QixNQUFNLElBQUksR0FBVyxhQUFhLENBQUE7SUFDbEMsTUFBTSxTQUFTLEdBQVcsaURBQWlELENBQUE7SUFDM0UsTUFBTSxHQUFHLEdBQ1AsOERBQThELENBQUE7SUFFaEUsZ0lBQWdJO0lBQ2hJLE1BQU0sVUFBVSxHQUFRO1FBQ3RCO1lBQ0UsWUFBWTtZQUNaLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztZQUN2QyxD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dGNoZXIgfSBmcm9tIFwiLi9lMmV0ZXN0bGliXCJcbmltcG9ydCB7IEtleXN0b3JlQVBJIH0gZnJvbSBcInNyYy9hcGlzL2tleXN0b3JlL2FwaVwiXG5pbXBvcnQgQk4gZnJvbSBcImJuLmpzXCJcblxuZGVzY3JpYmUoXCJYQ2hhaW5cIiwgKCk6IHZvaWQgPT4ge1xuICBsZXQgdHggPSB7IHZhbHVlOiBcIlwiIH1cbiAgbGV0IGFzc2V0ID0geyB2YWx1ZTogXCJcIiB9XG4gIGxldCBhZGRyQiA9IHsgdmFsdWU6IFwiXCIgfVxuICBsZXQgYWRkckMgPSB7IHZhbHVlOiBcIlwiIH1cblxuICBjb25zdCBhdmFsYW5jaGUgPSBnZXRBdmFsYW5jaGUoKVxuICBjb25zdCB4Y2hhaW4gPSBhdmFsYW5jaGUuWENoYWluKClcbiAgY29uc3Qga2V5c3RvcmUgPSBuZXcgS2V5c3RvcmVBUEkoYXZhbGFuY2hlKVxuXG4gIGNvbnN0IHVzZXI6IHN0cmluZyA9IFwiYXZhbGFuY2hlSnNYQ2hhaW5Vc2VyXCJcbiAgY29uc3QgcGFzc3dkOiBzdHJpbmcgPSBcImF2YWxhbmNoZUpzUDFzc3c0cmRcIlxuICBjb25zdCBiYWRVc2VyOiBzdHJpbmcgPSBcImFzZGZhc2Rmc2FcIlxuICBjb25zdCBiYWRQYXNzOiBzdHJpbmcgPSBcInBhc3NcIlxuICBjb25zdCBtZW1vOiBzdHJpbmcgPSBcImhlbGxvIHdvcmxkXCJcbiAgY29uc3Qgd2hhbGVBZGRyOiBzdHJpbmcgPSBcIlgtY3VzdG9tMThqbWE4cHB3M25oeDVyNGFwOGNsYXp6MGRwczdydjV1OXhkZTdwXCJcbiAgY29uc3Qga2V5OiBzdHJpbmcgPVxuICAgIFwiUHJpdmF0ZUtleS1ld29xalA3UHhZNHlyM2lMVHBMaXNyaXF0OTRoZHlERk5nY2hTeEdHenRVclRYdE5OXCJcblxuICAvLyB0ZXN0X25hbWUgICAgICAgIHJlc3BvbnNlX3Byb21pc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcF9mbiAgICAgICAgICBtYXRjaGVyICAgICAgICAgICBleHBlY3RlZF92YWx1ZS9vYnRhaW5lZF92YWx1ZVxuICBjb25zdCB0ZXN0c19zcGVjOiBhbnkgPSBbXG4gICAgW1xuICAgICAgXCJjcmVhdGVVc2VyXCIsXG4gICAgICAoKSA9PiBrZXlzdG9yZS5jcmVhdGVVc2VyKHVzZXIsIHBhc3N3ZCksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9FcXVhbCxcbiAgICAgICgpID0+IHsgcmV0dXJuIHt9IH1cbiAgICBdLFxuICAgIFtcbiAgICAgIFwiY3JlYXRlYWRkckJcIixcbiAgICAgICgpID0+IHhjaGFpbi5jcmVhdGVBZGRyZXNzKHVzZXIsIHBhc3N3ZCksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIuR2V0LFxuICAgICAgKCkgPT4gYWRkckJcbiAgICBdLFxuICAgIFtcbiAgICAgIFwiY3JlYXRlYWRkckJcIixcbiAgICAgICgpID0+IHhjaGFpbi5jcmVhdGVBZGRyZXNzKHVzZXIsIHBhc3N3ZCksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIuR2V0LFxuICAgICAgKCkgPT4gYWRkckNcbiAgICBdLFxuICAgIFtcbiAgICAgIFwiaW5jb3JyZWN0VXNlclwiLFxuICAgICAgKCkgPT5cbiAgICAgICAgeGNoYWluLnNlbmQoXG4gICAgICAgICAgYmFkVXNlcixcbiAgICAgICAgICBwYXNzd2QsXG4gICAgICAgICAgXCJBVkFYXCIsXG4gICAgICAgICAgMTAsXG4gICAgICAgICAgYWRkckIudmFsdWUsXG4gICAgICAgICAgW2FkZHJDLnZhbHVlXSxcbiAgICAgICAgICBhZGRyQi52YWx1ZSxcbiAgICAgICAgICBtZW1vXG4gICAgICAgICksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9UaHJvdyxcbiAgICAgICgpID0+IGBwcm9ibGVtIHJldHJpZXZpbmcgdXNlciBcIiR7YmFkVXNlcn1cIjogaW5jb3JyZWN0IHBhc3N3b3JkIGZvciB1c2VyIFwiJHtiYWRVc2VyfVwiYFxuICAgIF0sXG4gICAgW1xuICAgICAgXCJpbmNvcnJlY3RQYXNzXCIsXG4gICAgICAoKSA9PlxuICAgICAgICB4Y2hhaW4uc2VuZChcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIGJhZFBhc3MsXG4gICAgICAgICAgXCJBVkFYXCIsXG4gICAgICAgICAgMTAsXG4gICAgICAgICAgYWRkckIudmFsdWUsXG4gICAgICAgICAgW2FkZHJDLnZhbHVlXSxcbiAgICAgICAgICBhZGRyQi52YWx1ZSxcbiAgICAgICAgICBtZW1vXG4gICAgICAgICksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9UaHJvdyxcbiAgICAgICgpID0+IGBwcm9ibGVtIHJldHJpZXZpbmcgdXNlciBcIiR7dXNlcn1cIjogaW5jb3JyZWN0IHBhc3N3b3JkIGZvciB1c2VyIFwiJHt1c2VyfVwiYFxuICAgIF0sXG4gICAgW1xuICAgICAgXCJnZXRCYWxhbmNlXCIsXG4gICAgICAoKSA9PiB4Y2hhaW4uZ2V0QmFsYW5jZSh3aGFsZUFkZHIsIFwiQVZBWFwiKSxcbiAgICAgICh4KSA9PiB4LmJhbGFuY2UsXG4gICAgICBNYXRjaGVyLnRvQmUsXG4gICAgICAoKSA9PiBcIjMwMDAwMDAwMDAwMDAwMDAwMFwiXG4gICAgXSxcbiAgICBbXG4gICAgICBcImdldEJhbGFuY2UyXCIsXG4gICAgICAoKSA9PiB4Y2hhaW4uZ2V0QmFsYW5jZSh3aGFsZUFkZHIsIFwiQVZBWFwiKSxcbiAgICAgICh4KSA9PiB4LnV0eG9JRHNbMF0udHhJRCxcbiAgICAgIE1hdGNoZXIudG9CZSxcbiAgICAgICgpID0+IFwiQlV1eXBpcTJ3eXVMTXZ5aHpGWGNQeXhQTUNnU3A3ZWVEb2hoUVJxVENob0JqS3ppQ1wiXG4gICAgXSxcbiAgICBbXG4gICAgICBcImltcG9ydEtleVwiLFxuICAgICAgKCkgPT4geGNoYWluLmltcG9ydEtleSh1c2VyLCBwYXNzd2QsIGtleSksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9CZSxcbiAgICAgICgpID0+IHdoYWxlQWRkclxuICAgIF0sXG4gICAgW1xuICAgICAgXCJzZW5kXCIsXG4gICAgICAoKSA9PlxuICAgICAgICB4Y2hhaW4uc2VuZChcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIHBhc3N3ZCxcbiAgICAgICAgICBcIkFWQVhcIixcbiAgICAgICAgICAxMCxcbiAgICAgICAgICBhZGRyQi52YWx1ZSxcbiAgICAgICAgICBbd2hhbGVBZGRyXSxcbiAgICAgICAgICB3aGFsZUFkZHIsXG4gICAgICAgICAgbWVtb1xuICAgICAgICApLFxuICAgICAgKHgpID0+IHgudHhJRCxcbiAgICAgIE1hdGNoZXIuR2V0LFxuICAgICAgKCkgPT4gdHhcbiAgICBdLFxuICAgIFtcbiAgICAgIFwic2VuZE11bHRpcGxlXCIsXG4gICAgICAoKSA9PlxuICAgICAgICB4Y2hhaW4uc2VuZE11bHRpcGxlKFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgcGFzc3dkLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIHsgYXNzZXRJRDogXCJBVkFYXCIsIGFtb3VudDogMTAsIHRvOiBhZGRyQi52YWx1ZSB9LFxuICAgICAgICAgICAgeyBhc3NldElEOiBcIkFWQVhcIiwgYW1vdW50OiAyMCwgdG86IGFkZHJDLnZhbHVlIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFt3aGFsZUFkZHJdLFxuICAgICAgICAgIHdoYWxlQWRkcixcbiAgICAgICAgICBtZW1vXG4gICAgICAgICksXG4gICAgICAoeCkgPT4geC50eElELFxuICAgICAgTWF0Y2hlci5HZXQsXG4gICAgICAoKSA9PiB0eFxuICAgIF0sXG4gICAgW1xuICAgICAgXCJsaXN0QWRkcnNcIixcbiAgICAgICgpID0+IHhjaGFpbi5saXN0QWRkcmVzc2VzKHVzZXIsIHBhc3N3ZCksXG4gICAgICAoeCkgPT4geC5zb3J0KCksXG4gICAgICBNYXRjaGVyLnRvRXF1YWwsXG4gICAgICAoKSA9PiBbd2hhbGVBZGRyLCBhZGRyQi52YWx1ZSwgYWRkckMudmFsdWVdLnNvcnQoKVxuICAgIF0sXG4gICAgW1xuICAgICAgXCJleHBvcnRLZXlcIixcbiAgICAgICgpID0+IHhjaGFpbi5leHBvcnRLZXkodXNlciwgcGFzc3dkLCBhZGRyQi52YWx1ZSksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9NYXRjaCxcbiAgICAgICgpID0+IC9Qcml2YXRlS2V5LVxcdyovXG4gICAgXSxcbiAgICBbXG4gICAgICBcImV4cG9ydFwiLFxuICAgICAgKCkgPT5cbiAgICAgICAgeGNoYWluLmV4cG9ydChcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIHBhc3N3ZCxcbiAgICAgICAgICBcIkNcIiArIGFkZHJCLnZhbHVlLnN1YnN0cmluZygxKSxcbiAgICAgICAgICBuZXcgQk4oMTApLFxuICAgICAgICAgIFwiQVZBWFwiXG4gICAgICAgICksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9UaHJvdyxcbiAgICAgICgpID0+IFwiY291bGRuJ3QgdW5tYXJzaGFsIGFuIGFyZ3VtZW50XCJcbiAgICBdLFxuICAgIFtcbiAgICAgIFwiaW1wb3J0XCIsXG4gICAgICAoKSA9PiB4Y2hhaW4uaW1wb3J0KHVzZXIsIHBhc3N3ZCwgYWRkckIudmFsdWUsIFwiUFwiKSxcbiAgICAgICh4KSA9PiB4LFxuICAgICAgTWF0Y2hlci50b1Rocm93LFxuICAgICAgKCkgPT4gXCJwcm9ibGVtIGlzc3VpbmcgdHJhbnNhY3Rpb246IG5vIGltcG9ydCBpbnB1dHNcIlxuICAgIF0sXG4gICAgW1xuICAgICAgXCJjcmVhdGVGaXhlZFwiLFxuICAgICAgKCkgPT5cbiAgICAgICAgeGNoYWluLmNyZWF0ZUZpeGVkQ2FwQXNzZXQodXNlciwgcGFzc3dkLCBcIlNvbWUgQ29pblwiLCBcIlNDQ1wiLCAwLCBbXG4gICAgICAgICAgeyBhZGRyZXNzOiB3aGFsZUFkZHIsIGFtb3VudDogXCIxMDAwMFwiIH1cbiAgICAgICAgXSksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIuR2V0LFxuICAgICAgKCkgPT4gYXNzZXRcbiAgICBdLFxuICAgIFtcbiAgICAgIFwiY3JlYXRlVmFyXCIsXG4gICAgICAoKSA9PlxuICAgICAgICB4Y2hhaW4uY3JlYXRlVmFyaWFibGVDYXBBc3NldCh1c2VyLCBwYXNzd2QsIFwiU29tZSBDb2luXCIsIFwiU0NDXCIsIDAsIFtcbiAgICAgICAgICB7IG1pbnRlcnM6IFt3aGFsZUFkZHJdLCB0aHJlc2hvbGQ6IDEgfVxuICAgICAgICBdKSxcbiAgICAgICh4KSA9PiB4LFxuICAgICAgTWF0Y2hlci5HZXQsXG4gICAgICAoKSA9PiBhc3NldFxuICAgIF0sXG4gICAgW1xuICAgICAgXCJtaW50XCIsXG4gICAgICAoKSA9PlxuICAgICAgICB4Y2hhaW4ubWludCh1c2VyLCBwYXNzd2QsIDE1MDAsIGFzc2V0LnZhbHVlLCBhZGRyQi52YWx1ZSwgW3doYWxlQWRkcl0pLFxuICAgICAgKHgpID0+IHgsXG4gICAgICBNYXRjaGVyLnRvVGhyb3csXG4gICAgICAoKSA9PiBcImNvdWxkbid0IHVubWFyc2hhbCBhbiBhcmd1bWVudFwiXG4gICAgXSxcbiAgICBbXG4gICAgICBcImdldFR4XCIsXG4gICAgICAoKSA9PiB4Y2hhaW4uZ2V0VHgodHgudmFsdWUpLFxuICAgICAgKHgpID0+IHgsXG4gICAgICBNYXRjaGVyLnRvTWF0Y2gsXG4gICAgICAoKSA9PiAvXFx3Ky9cbiAgICBdLFxuICAgIFtcbiAgICAgIFwiZ2V0VHhTdGF0dXNcIixcbiAgICAgICgpID0+IHhjaGFpbi5nZXRUeFN0YXR1cyh0eC52YWx1ZSksXG4gICAgICAoeCkgPT4geCxcbiAgICAgIE1hdGNoZXIudG9CZSxcbiAgICAgICgpID0+IFwiUHJvY2Vzc2luZ1wiXG4gICAgXSxcbiAgICBbXG4gICAgICBcImdldEFzc2V0RGVzY1wiLFxuICAgICAgKCkgPT4geGNoYWluLmdldEFzc2V0RGVzY3JpcHRpb24oYXNzZXQudmFsdWUpLFxuICAgICAgKHgpID0+IFt4Lm5hbWUsIHguc3ltYm9sXSxcbiAgICAgIE1hdGNoZXIudG9FcXVhbCxcbiAgICAgICgpID0+IFtcIlNvbWUgQ29pblwiLCBcIlNDQ1wiXVxuICAgIF1cbiAgXVxuXG4gIGNyZWF0ZVRlc3RzKHRlc3RzX3NwZWMpXG59KSJdfQ==

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


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