@bitgo-beta/sdk-coin-xdc 1.0.1-beta.89 → 1.0.1-beta.890
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/lib/XDCValidatorABI.json +431 -0
- package/dist/src/lib/index.d.ts +2 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +9 -2
- package/dist/src/lib/transactionBuilder.d.ts +23 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +53 -1
- package/dist/src/lib/uploadKycBuilder.d.ts +73 -0
- package/dist/src/lib/uploadKycBuilder.d.ts.map +1 -0
- package/dist/src/lib/uploadKycBuilder.js +110 -0
- package/dist/src/lib/validatorContract.d.ts +136 -0
- package/dist/src/lib/validatorContract.d.ts.map +1 -0
- package/dist/src/lib/validatorContract.js +62 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/xdc.d.ts +15 -2
- package/dist/src/xdc.d.ts.map +1 -1
- package/dist/src/xdc.js +32 -1
- package/dist/src/xdcToken.d.ts +37 -0
- package/dist/src/xdcToken.d.ts.map +1 -0
- package/dist/src/xdcToken.js +74 -0
- package/dist/test/resources.d.ts +45 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +107 -0
- package/dist/test/unit/getBuilder.d.ts +3 -0
- package/dist/test/unit/getBuilder.d.ts.map +1 -0
- package/dist/test/unit/getBuilder.js +10 -0
- package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/send.js +19 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/uploadKyc.js +215 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +27 -0
- package/dist/test/unit/xdc.d.ts +2 -0
- package/dist/test/unit/xdc.d.ts.map +1 -0
- package/dist/test/unit/xdc.js +172 -0
- package/dist/test/unit/xdcToken.d.ts +2 -0
- package/dist/test/unit/xdcToken.d.ts.map +1 -0
- package/dist/test/unit/xdcToken.js +228 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +14 -10
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -48
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XdcToken = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @prettier
|
|
6
|
+
*/
|
|
7
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
8
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
9
|
+
const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
|
|
10
|
+
const lib_1 = require("./lib");
|
|
11
|
+
class XdcToken extends abstract_eth_1.EthLikeToken {
|
|
12
|
+
constructor(bitgo, tokenConfig) {
|
|
13
|
+
super(bitgo, tokenConfig, XdcToken.coinNames);
|
|
14
|
+
}
|
|
15
|
+
static createTokenConstructor(config) {
|
|
16
|
+
return super.createTokenConstructor(config, XdcToken.coinNames);
|
|
17
|
+
}
|
|
18
|
+
static createTokenConstructors() {
|
|
19
|
+
return super.createTokenConstructors(XdcToken.coinNames);
|
|
20
|
+
}
|
|
21
|
+
getTransactionBuilder() {
|
|
22
|
+
return new lib_1.TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Make a query to XDC Etherscan for information such as balance, token balance, solidity calls
|
|
26
|
+
* @param {Object} query key-value pairs of parameters to append after /api
|
|
27
|
+
* @returns {Promise<Object>} response from XDC Etherscan
|
|
28
|
+
*/
|
|
29
|
+
async recoveryBlockchainExplorerQuery(query) {
|
|
30
|
+
const apiToken = sdk_core_1.common.Environments[this.bitgo.getEnv()].xdcExplorerApiToken;
|
|
31
|
+
const explorerUrl = sdk_core_1.common.Environments[this.bitgo.getEnv()].xdcExplorerBaseUrl;
|
|
32
|
+
return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
|
|
33
|
+
}
|
|
34
|
+
getFullName() {
|
|
35
|
+
return 'XDC Token';
|
|
36
|
+
}
|
|
37
|
+
supportsTss() {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
/** @inheritDoc */
|
|
41
|
+
getMPCAlgorithm() {
|
|
42
|
+
return 'ecdsa';
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Verify if a tss transaction is valid
|
|
46
|
+
*
|
|
47
|
+
* @param {VerifyEthTransactionOptions} params
|
|
48
|
+
* @param {TransactionParams} params.txParams - params object passed to send
|
|
49
|
+
* @param {TransactionPrebuild} params.txPrebuild - prebuild object returned by server
|
|
50
|
+
* @param {Wallet} params.wallet - Wallet object to obtain keys to verify against
|
|
51
|
+
* @returns {boolean}
|
|
52
|
+
*/
|
|
53
|
+
async verifyTssTransaction(params) {
|
|
54
|
+
const { txParams, txPrebuild, wallet } = params;
|
|
55
|
+
if (!txParams?.recipients &&
|
|
56
|
+
!(txParams.prebuildTx?.consolidateId ||
|
|
57
|
+
(txParams.type && ['acceleration', 'fillNonce', 'transferToken'].includes(txParams.type)))) {
|
|
58
|
+
throw new Error(`missing txParams`);
|
|
59
|
+
}
|
|
60
|
+
if (!wallet || !txPrebuild) {
|
|
61
|
+
throw new Error(`missing params`);
|
|
62
|
+
}
|
|
63
|
+
if (txParams.hop && txParams.recipients && txParams.recipients.length > 1) {
|
|
64
|
+
throw new Error(`tx cannot be both a batch and hop transaction`);
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.XdcToken = XdcToken;
|
|
70
|
+
XdcToken.coinNames = {
|
|
71
|
+
Mainnet: 'xdc',
|
|
72
|
+
Testnet: 'txdc',
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGRjVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveGRjVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxpREFBZ0U7QUFDaEUsbURBQThHO0FBQzlHLDJEQUtrQztBQUVsQywrQkFBMkM7QUFHM0MsTUFBYSxRQUFTLFNBQVEsMkJBQVk7SUFNeEMsWUFBWSxLQUFnQixFQUFFLFdBQStCO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQTBCO1FBQ3RELE9BQU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUI7UUFDNUIsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxLQUE2QjtRQUNqRSxNQUFNLFFBQVEsR0FBRyxpQkFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUM7UUFDOUUsTUFBTSxXQUFXLEdBQUcsaUJBQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQ2hGLE9BQU8sTUFBTSxJQUFBLDhDQUErQixFQUFDLEtBQUssRUFBRSxXQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZUFBZTtRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxNQUFtQztRQUM1RCxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDaEQsSUFDRSxDQUFDLFFBQVEsRUFBRSxVQUFVO1lBQ3JCLENBQUMsQ0FDQyxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWE7Z0JBQ2xDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUMxRixFQUNELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLEdBQUcsSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztBQXpFSCw0QkEwRUM7QUF4RVEsa0JBQVMsR0FBYztJQUM1QixPQUFPLEVBQUUsS0FBSztJQUNkLE9BQU8sRUFBRSxNQUFNO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBFdGhMaWtlVG9rZW5Db25maWcsIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTmFtZWRDb2luQ29uc3RydWN0b3IsIGNvbW1vbiwgTVBDQWxnb3JpdGhtIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHtcbiAgQ29pbk5hbWVzLFxuICBFdGhMaWtlVG9rZW4sXG4gIHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnksXG4gIFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9saWInO1xuZXhwb3J0IHsgRXRoTGlrZVRva2VuQ29uZmlnIH07XG5cbmV4cG9ydCBjbGFzcyBYZGNUb2tlbiBleHRlbmRzIEV0aExpa2VUb2tlbiB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnO1xuICBzdGF0aWMgY29pbk5hbWVzOiBDb2luTmFtZXMgPSB7XG4gICAgTWFpbm5ldDogJ3hkYycsXG4gICAgVGVzdG5ldDogJ3R4ZGMnLFxuICB9O1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnKSB7XG4gICAgc3VwZXIoYml0Z28sIHRva2VuQ29uZmlnLCBYZGNUb2tlbi5jb2luTmFtZXMpO1xuICB9XG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gc3VwZXIuY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWcsIFhkY1Rva2VuLmNvaW5OYW1lcyk7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgcmV0dXJuIHN1cGVyLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKFhkY1Rva2VuLmNvaW5OYW1lcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KHRoaXMuZ2V0QmFzZUNoYWluKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIGEgcXVlcnkgdG8gWERDIEV0aGVyc2NhbiBmb3IgaW5mb3JtYXRpb24gc3VjaCBhcyBiYWxhbmNlLCB0b2tlbiBiYWxhbmNlLCBzb2xpZGl0eSBjYWxsc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcXVlcnkga2V5LXZhbHVlIHBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYXBwZW5kIGFmdGVyIC9hcGlcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gcmVzcG9uc2UgZnJvbSBYREMgRXRoZXJzY2FuXG4gICAqL1xuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IGFwaVRva2VuID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS54ZGNFeHBsb3JlckFwaVRva2VuO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS54ZGNFeHBsb3JlckJhc2VVcmw7XG4gICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkocXVlcnksIGV4cGxvcmVyVXJsIGFzIHN0cmluZywgYXBpVG9rZW4pO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1hEQyBUb2tlbic7XG4gIH1cblxuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgaWYgYSB0c3MgdHJhbnNhY3Rpb24gaXMgdmFsaWRcbiAgICpcbiAgICogQHBhcmFtIHtWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnN9IHBhcmFtc1xuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUGFyYW1zfSBwYXJhbXMudHhQYXJhbXMgLSBwYXJhbXMgb2JqZWN0IHBhc3NlZCB0byBzZW5kXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25QcmVidWlsZH0gcGFyYW1zLnR4UHJlYnVpbGQgLSBwcmVidWlsZCBvYmplY3QgcmV0dXJuZWQgYnkgc2VydmVyXG4gICAqIEBwYXJhbSB7V2FsbGV0fSBwYXJhbXMud2FsbGV0IC0gV2FsbGV0IG9iamVjdCB0byBvYnRhaW4ga2V5cyB0byB2ZXJpZnkgYWdhaW5zdFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGFzeW5jIHZlcmlmeVRzc1RyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5RXRoVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0IH0gPSBwYXJhbXM7XG4gICAgaWYgKFxuICAgICAgIXR4UGFyYW1zPy5yZWNpcGllbnRzICYmXG4gICAgICAhKFxuICAgICAgICB0eFBhcmFtcy5wcmVidWlsZFR4Py5jb25zb2xpZGF0ZUlkIHx8XG4gICAgICAgICh0eFBhcmFtcy50eXBlICYmIFsnYWNjZWxlcmF0aW9uJywgJ2ZpbGxOb25jZScsICd0cmFuc2ZlclRva2VuJ10uaW5jbHVkZXModHhQYXJhbXMudHlwZSkpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc3NpbmcgdHhQYXJhbXNgKTtcbiAgICB9XG4gICAgaWYgKCF3YWxsZXQgfHwgIXR4UHJlYnVpbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBwYXJhbXNgKTtcbiAgICB9XG4gICAgaWYgKHR4UGFyYW1zLmhvcCAmJiB0eFBhcmFtcy5yZWNpcGllbnRzICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eCBjYW5ub3QgYmUgYm90aCBhIGJhdGNoIGFuZCBob3AgdHJhbnNhY3Rpb25gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const mockDataUnsignedSweep: {
|
|
2
|
+
userKey: string;
|
|
3
|
+
backupKey: string;
|
|
4
|
+
derivationPath: string;
|
|
5
|
+
derivationSeed: string;
|
|
6
|
+
walletBaseAddress: string;
|
|
7
|
+
recoveryDestination: string;
|
|
8
|
+
getTxListRequest: Record<string, string>;
|
|
9
|
+
getTxListResponse: Record<string, unknown>;
|
|
10
|
+
getBalanceRequest: Record<string, string>;
|
|
11
|
+
getBalanceResponse: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
export declare const mockTokenTransferData: {
|
|
14
|
+
txRequestId: string;
|
|
15
|
+
walletId: string;
|
|
16
|
+
serializedTxHex: string;
|
|
17
|
+
signableHex: string;
|
|
18
|
+
tokenContractAddress: string;
|
|
19
|
+
recipientAddress: string;
|
|
20
|
+
senderAddress: string;
|
|
21
|
+
tokenAmount: string;
|
|
22
|
+
feeInfo: {
|
|
23
|
+
fee: number;
|
|
24
|
+
feeString: string;
|
|
25
|
+
};
|
|
26
|
+
txPrebuild: {
|
|
27
|
+
txHex: string;
|
|
28
|
+
recipients: {
|
|
29
|
+
address: string;
|
|
30
|
+
amount: string;
|
|
31
|
+
}[];
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export declare const mockDataNonBitGoRecovery: {
|
|
35
|
+
recoveryDestination: string;
|
|
36
|
+
userKeyData: string;
|
|
37
|
+
backupKeyData: string;
|
|
38
|
+
walletPassphrase: string;
|
|
39
|
+
walletRootAddress: string;
|
|
40
|
+
getTxListRequest: Record<string, string>;
|
|
41
|
+
getTxListResponse: Record<string, unknown>;
|
|
42
|
+
getBalanceRequest: Record<string, string>;
|
|
43
|
+
getBalanceResponse: Record<string, unknown>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAajC,CAAC;AAmCF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;CAyBjC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;CAYpC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mockDataNonBitGoRecovery = exports.mockTokenTransferData = exports.mockDataUnsignedSweep = void 0;
|
|
4
|
+
const getTxListRequestUnsignedSweep = {
|
|
5
|
+
chainid: '51',
|
|
6
|
+
module: 'account',
|
|
7
|
+
action: 'txlist',
|
|
8
|
+
address: '0x742838193c4169f6b2ba7b0e03f723c3ba0928e1',
|
|
9
|
+
};
|
|
10
|
+
const getTxListResponseUnsignedSweep = {
|
|
11
|
+
status: '1',
|
|
12
|
+
result: [
|
|
13
|
+
{
|
|
14
|
+
hash: '0xede855d43d70ea1bb75db63d4f75113dae0845f0d4bdb0b2d8bda55249c70812',
|
|
15
|
+
nonce: '23',
|
|
16
|
+
from: '0x742838193c4169f6b2ba7b0e03f723c3ba0928e1',
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
message: 'OK',
|
|
20
|
+
};
|
|
21
|
+
const getBalanceRequestUnsignedSweep = {
|
|
22
|
+
chainid: '51',
|
|
23
|
+
module: 'account',
|
|
24
|
+
action: 'balance',
|
|
25
|
+
address: '0x742838193c4169f6b2ba7b0e03f723c3ba0928e1',
|
|
26
|
+
};
|
|
27
|
+
const getBalanceResponseUnsignedSweep = {
|
|
28
|
+
status: '1',
|
|
29
|
+
result: '100000000000000000',
|
|
30
|
+
message: 'OK',
|
|
31
|
+
};
|
|
32
|
+
exports.mockDataUnsignedSweep = {
|
|
33
|
+
userKey: '029d2ded2d39ee7cd8d8bbba8b25e4c60bb09297936fa6b223de1f495b5ee20dcaf762367f9691f7719cb5e13e59d725669a18aad1e2522dd141fa4c7fd3d25c17',
|
|
34
|
+
backupKey: '029d2ded2d39ee7cd8d8bbba8b25e4c60bb09297936fa6b223de1f495b5ee20dcaf762367f9691f7719cb5e13e59d725669a18aad1e2522dd141fa4c7fd3d25c17',
|
|
35
|
+
derivationPath: 'm/0',
|
|
36
|
+
derivationSeed: '',
|
|
37
|
+
walletBaseAddress: '0x742838193c4169f6b2ba7b0e03f723c3ba0928e1',
|
|
38
|
+
recoveryDestination: '0xd76b586901850f2c656db0cbef795c0851bbec35',
|
|
39
|
+
getTxListRequest: getTxListRequestUnsignedSweep,
|
|
40
|
+
getTxListResponse: getTxListResponseUnsignedSweep,
|
|
41
|
+
getBalanceRequest: getBalanceRequestUnsignedSweep,
|
|
42
|
+
getBalanceResponse: getBalanceResponseUnsignedSweep,
|
|
43
|
+
};
|
|
44
|
+
const getTxListRequestNonBitGoRecovery = {
|
|
45
|
+
chainid: '51',
|
|
46
|
+
module: 'account',
|
|
47
|
+
action: 'txlist',
|
|
48
|
+
address: '0x4477bc3e2472b2c5580c010526dfc5614871952d',
|
|
49
|
+
};
|
|
50
|
+
const getTxListResponseNonBitGoRecovery = {
|
|
51
|
+
status: '1',
|
|
52
|
+
result: [
|
|
53
|
+
{
|
|
54
|
+
hash: '0xede855d43d70ea1bb75db63d4f75113dae0845f0d4bdb0b2d8bda55249c70812',
|
|
55
|
+
nonce: '23',
|
|
56
|
+
from: '0x4477bc3e2472b2c5580c010526dfc5614871952d',
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
message: 'OK',
|
|
60
|
+
};
|
|
61
|
+
const getBalanceRequestNonBitGoRecovery = {
|
|
62
|
+
chainid: '51',
|
|
63
|
+
module: 'account',
|
|
64
|
+
action: 'balance',
|
|
65
|
+
address: '0x4477bc3e2472b2c5580c010526dfc5614871952d',
|
|
66
|
+
};
|
|
67
|
+
const getBalanceResponseNonBitGoRecovery = {
|
|
68
|
+
status: '1',
|
|
69
|
+
result: '100000000000000000',
|
|
70
|
+
message: 'OK',
|
|
71
|
+
};
|
|
72
|
+
// Mock data for txdc:tmt token transfer TSS transaction
|
|
73
|
+
exports.mockTokenTransferData = {
|
|
74
|
+
txRequestId: '2475368d-f604-46e3-a743-e32f663fa350',
|
|
75
|
+
walletId: '695e1ca4fb4a739c8c6f9b49120c55c7',
|
|
76
|
+
serializedTxHex: 'f86a0485045d964b8083061a8094b283ec8dad644effc5c4c50bb7bb21442ac3c2db80b844a9059cbb000000000000000000000000421cdf5e890070c28db0fd8e4bf87deac0cd0ffc00000000000000000000000000000000000000000000000000000000000f4240808080',
|
|
77
|
+
signableHex: 'f86a0485045d964b8083061a8094b283ec8dad644effc5c4c50bb7bb21442ac3c2db80b844a9059cbb000000000000000000000000421cdf5e890070c28db0fd8e4bf87deac0cd0ffc00000000000000000000000000000000000000000000000000000000000f4240338080',
|
|
78
|
+
tokenContractAddress: '0xb283ec8dad644effc5c4c50bb7bb21442ac3c2db',
|
|
79
|
+
recipientAddress: '0x421cdf5e890070c28db0fd8e4bf87deac0cd0ffc',
|
|
80
|
+
senderAddress: '0x6aafaddf545f96772140f0008190c176a065df9a',
|
|
81
|
+
tokenAmount: '1000000',
|
|
82
|
+
feeInfo: {
|
|
83
|
+
fee: 7500000000000000,
|
|
84
|
+
feeString: '7500000000000000',
|
|
85
|
+
},
|
|
86
|
+
txPrebuild: {
|
|
87
|
+
txHex: 'f86a0485045d964b8083061a8094b283ec8dad644effc5c4c50bb7bb21442ac3c2db80b844a9059cbb000000000000000000000000421cdf5e890070c28db0fd8e4bf87deac0cd0ffc00000000000000000000000000000000000000000000000000000000000f4240808080',
|
|
88
|
+
recipients: [
|
|
89
|
+
{
|
|
90
|
+
address: '0x421cdf5e890070c28db0fd8e4bf87deac0cd0ffc',
|
|
91
|
+
amount: '1000000',
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
exports.mockDataNonBitGoRecovery = {
|
|
97
|
+
recoveryDestination: '0xd76b586901850f2c656db0cbef795c0851bbec35',
|
|
98
|
+
userKeyData: '{"iv":"XeXwD5B465wYvao9WFZC7A==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"caDtzBCF3IA=","ct":"0qr0YV2DgN68F9luNpjFQhwDTIXwyTTYdQirvbgITHqIDmITmV1IMgkKIdzSZBfmLkB6bG46oVF4snVG7lXEJz2twrutI01g59xjw88ULgR5wV5ZdFrGcmNZvOQ1H5imoWGS8bVKONmeF55TBgi49r9x3dsmgWvJ/EHeApj/FrAP1BLX/Rgl57kZqnNoryl55P8L2cJtJE1weDBD+/GsggdrO/dYBmihKTWyTBVa7UBIIgV5wOd4RXbZN1Hg2Vc0bY56KrpZbY1CsdQiIwH3tkKFPdqthlHVEfS8XViaYVl0Go3C/mUMYZH7CTg/s4LMpdlWzh3iRnmGercvIFZBfcehgNVv9H/OctYZnKfUdI5mZsVGxQRIMWr8oFbmjR3pYJ94oxS8assAzl7hNI4RJi/u4N9/5VJIi//069zsMsgA+k4b3u3xvivkTjO5sscAPs/Sp0mb5QLQhP48D/sHIYwhQiThJaH+flSoUQu5LNWmucmYr08lRRiI07O7DZAY2pplLSvBfkrBtgTgi+rLN95lKkxi7PYTGWuek1Sd/XiXit6EJ5FImYH2eKEVgatYvKfj/BdNJ2iHmeaykajtjpr21lt0Iqk98iZLZfCp5w4hfHHHB4QCrBzCAeG2MEPqmrAN67z4gMxUbkI+j9lYp5SyvlFmDIm78SyQ60371Wfr+7b4+wFqPq9fumXBZ4i0xYbcWTrKjYrn5bO5o3LWiRoh7EW8mzbMIC2m/DwIwdCHodbz4g31Psnk6Yk6UqEMq5JhOoUJYuVhYthNmbRlI59UDg+rz/HO9nYnZqsUgubSKcZArqM1J4T4+EDKuHtgnCQm2hqHlsJu+/n73jU33GEm86pDdcb8udHsfPCvhEIuLw6ZyThiX8JEOCi8Ueb0GPL31MSkJ7L7cOizgp6lHgs4nZorZfUIKjDd3twcpBNXjT15KEQbrW8RQChXmVl0b5N8BAom6e9Xpz2kDRGbvbYfBOdiht5Vr5Sm7prAQVVCZTWq6/qOZFWr7LJ+Cdw1qYt64UFcBHNtaX3d5WOMNNMqesrglVTW7w2Gscu7XaxoA4cTOKvMemG1cWTag3kr8oNgtz5gXsfbSo7CJrN8vw=="}',
|
|
99
|
+
backupKeyData: '{"iv":"J32VIJhO9Cbf5bqcv75Kag==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"ZQ5VsHdXM4Q=","ct":"XTgAUy8TZALKtt/PtJGAWbHfuExH5C5yw3y8EryrcY3uZdektl3WkL4KHHGTtL9yzssCTOWUMTemoAKipd+W/3mpZuQ88p+lloIgU7Tce3RLBG+gu665bsvTUuVpfMrpZHxDXXVMzwoUVHaxwfvu2tgduDnpkD/BX2RN5qfI6P6zz5r8UuWbiDPKEaqpcAHQ+RBitBQiOxNAlRNYexnUx1pCqcK08hqrqdQvx7elXXdCI3TwepGW7QwRzWa9pxvM9d85AWESueJ2B4JrZ5bkrIzXixGJcoUAJVvGfD69zoLUH9einnMafpocETBUDQyevC/j/1FwgZUCeGcb4U9N9tQJtR0fozzgpAo91nWA5UfkD2+hzRvz2p1Dmc+4bNb6s/7vK+BIOdpe4blzI43PxMLoBGkEQHlGHYCrOUnbV7dcxlyPv0qfom8K4f6/74YEKiMPjwA3sCcntWboW8gUPHF2xx/WAgmHI9DOiXsCJZMHx4GiZmY/pR9RVe/OeFAqPLWJoT6KaizTJD3So4/G5oHKPgTQbMIPi1lYtqKdOuhycISsaEgnkG1a8Tq5CN0tk5VywSmj4kSrqqjcp7kbAW+ViaNkZLuSibomK9AvuOGkEZBqDEuyFJnS4oayQTLxnstzO1JJGhmrCskH9B/QIIrUVl1IOv/IVyPg4M7T1g0+YfHdAXduLXu9bjHkqzGaSQZu35bs5QKy0bKEhAwoj+zgYAF/gZBH0/iPzrWM2xu/HMeQKwI0KFLOiBx3cMmNYE+Fb6vCjpVXBTYYUCBOjRnrAuR/lc3AnjAefCMAD89+FQ+QW5IzZv97lrSw0Rb+DIctfXddUKK7yyBe8CcZWU1dGAYsb/hk+H5lTZJBur5M3a1vzPMi68HKnRt7XZmyBsvPA8t0JVJmlc0RejqDrcps4uKjKdMaDNOvBzmEijdVv8N5q0Ng+yHwq3BolqoYn4mVJOrMuRlZt4pODkI8uOU1Ha/VStLzhT2HFexZ+Y0JzM0DS5hsygHt4Dz6/RfZTKHYvxzuRiHNLbmNcOBvVbBOL2Lm+Dlo3fFuVD3fS08vJuafc/uAfatpRwRqgE/EzvZOpnZyHcr4lUVEhRrDYw=="}',
|
|
100
|
+
walletPassphrase: 'prithvishet2503',
|
|
101
|
+
walletRootAddress: '0x4477bc3e2472b2c5580c010526dfc5614871952d',
|
|
102
|
+
getTxListRequest: getTxListRequestNonBitGoRecovery,
|
|
103
|
+
getTxListResponse: getTxListResponseNonBitGoRecovery,
|
|
104
|
+
getBalanceRequest: getBalanceRequestNonBitGoRecovery,
|
|
105
|
+
getBalanceResponse: getBalanceResponseNonBitGoRecovery,
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdC9yZXNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTSw2QkFBNkIsR0FBMkI7SUFDNUQsT0FBTyxFQUFFLElBQUk7SUFDYixNQUFNLEVBQUUsU0FBUztJQUNqQixNQUFNLEVBQUUsUUFBUTtJQUNoQixPQUFPLEVBQUUsNENBQTRDO0NBQ3RELENBQUM7QUFFRixNQUFNLDhCQUE4QixHQUE0QjtJQUM5RCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRTtRQUNOO1lBQ0UsSUFBSSxFQUFFLG9FQUFvRTtZQUMxRSxLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSw0Q0FBNEM7U0FDbkQ7S0FDRjtJQUNELE9BQU8sRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQTJCO0lBQzdELE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLFNBQVM7SUFDakIsTUFBTSxFQUFFLFNBQVM7SUFDakIsT0FBTyxFQUFFLDRDQUE0QztDQUN0RCxDQUFDO0FBRUYsTUFBTSwrQkFBK0IsR0FBNEI7SUFDL0QsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLE9BQU8sRUFBRSxJQUFJO0NBQ2QsQ0FBQztBQUVXLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsT0FBTyxFQUNMLG9JQUFvSTtJQUN0SSxTQUFTLEVBQ1Asb0lBQW9JO0lBQ3RJLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLGlCQUFpQixFQUFFLDRDQUE0QztJQUMvRCxtQkFBbUIsRUFBRSw0Q0FBNEM7SUFDakUsZ0JBQWdCLEVBQUUsNkJBQTZCO0lBQy9DLGlCQUFpQixFQUFFLDhCQUE4QjtJQUNqRCxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsa0JBQWtCLEVBQUUsK0JBQStCO0NBQ3BELENBQUM7QUFFRixNQUFNLGdDQUFnQyxHQUEyQjtJQUMvRCxPQUFPLEVBQUUsSUFBSTtJQUNiLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLE9BQU8sRUFBRSw0Q0FBNEM7Q0FDdEQsQ0FBQztBQUVGLE1BQU0saUNBQWlDLEdBQTRCO0lBQ2pFLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFO1FBQ047WUFDRSxJQUFJLEVBQUUsb0VBQW9FO1lBQzFFLEtBQUssRUFBRSxJQUFJO1lBQ1gsSUFBSSxFQUFFLDRDQUE0QztTQUNuRDtLQUNGO0lBQ0QsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxpQ0FBaUMsR0FBMkI7SUFDaEUsT0FBTyxFQUFFLElBQUk7SUFDYixNQUFNLEVBQUUsU0FBUztJQUNqQixNQUFNLEVBQUUsU0FBUztJQUNqQixPQUFPLEVBQUUsNENBQTRDO0NBQ3RELENBQUM7QUFFRixNQUFNLGtDQUFrQyxHQUE0QjtJQUNsRSxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxvQkFBb0I7SUFDNUIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsd0RBQXdEO0FBQzNDLFFBQUEscUJBQXFCLEdBQUc7SUFDbkMsV0FBVyxFQUFFLHNDQUFzQztJQUNuRCxRQUFRLEVBQUUsa0NBQWtDO0lBQzVDLGVBQWUsRUFDYiwwTkFBME47SUFDNU4sV0FBVyxFQUNULDBOQUEwTjtJQUM1TixvQkFBb0IsRUFBRSw0Q0FBNEM7SUFDbEUsZ0JBQWdCLEVBQUUsNENBQTRDO0lBQzlELGFBQWEsRUFBRSw0Q0FBNEM7SUFDM0QsV0FBVyxFQUFFLFNBQVM7SUFDdEIsT0FBTyxFQUFFO1FBQ1AsR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixTQUFTLEVBQUUsa0JBQWtCO0tBQzlCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsS0FBSyxFQUNILDBOQUEwTjtRQUM1TixVQUFVLEVBQUU7WUFDVjtnQkFDRSxPQUFPLEVBQUUsNENBQTRDO2dCQUNyRCxNQUFNLEVBQUUsU0FBUzthQUNsQjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxtQkFBbUIsRUFBRSw0Q0FBNEM7SUFDakUsV0FBVyxFQUNULG91Q0FBb3VDO0lBQ3R1QyxhQUFhLEVBQ1gsb3VDQUFvdUM7SUFDdHVDLGdCQUFnQixFQUFFLGlCQUFpQjtJQUNuQyxpQkFBaUIsRUFBRSw0Q0FBNEM7SUFDL0QsZ0JBQWdCLEVBQUUsZ0NBQWdDO0lBQ2xELGlCQUFpQixFQUFFLGlDQUFpQztJQUNwRCxpQkFBaUIsRUFBRSxpQ0FBaUM7SUFDcEQsa0JBQWtCLEVBQUUsa0NBQWtDO0NBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRUeExpc3RSZXF1ZXN0VW5zaWduZWRTd2VlcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY2hhaW5pZDogJzUxJyxcbiAgbW9kdWxlOiAnYWNjb3VudCcsXG4gIGFjdGlvbjogJ3R4bGlzdCcsXG4gIGFkZHJlc3M6ICcweDc0MjgzODE5M2M0MTY5ZjZiMmJhN2IwZTAzZjcyM2MzYmEwOTI4ZTEnLFxufTtcblxuY29uc3QgZ2V0VHhMaXN0UmVzcG9uc2VVbnNpZ25lZFN3ZWVwOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgc3RhdHVzOiAnMScsXG4gIHJlc3VsdDogW1xuICAgIHtcbiAgICAgIGhhc2g6ICcweGVkZTg1NWQ0M2Q3MGVhMWJiNzVkYjYzZDRmNzUxMTNkYWUwODQ1ZjBkNGJkYjBiMmQ4YmRhNTUyNDljNzA4MTInLFxuICAgICAgbm9uY2U6ICcyMycsXG4gICAgICBmcm9tOiAnMHg3NDI4MzgxOTNjNDE2OWY2YjJiYTdiMGUwM2Y3MjNjM2JhMDkyOGUxJyxcbiAgICB9LFxuICBdLFxuICBtZXNzYWdlOiAnT0snLFxufTtcblxuY29uc3QgZ2V0QmFsYW5jZVJlcXVlc3RVbnNpZ25lZFN3ZWVwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBjaGFpbmlkOiAnNTEnLFxuICBtb2R1bGU6ICdhY2NvdW50JyxcbiAgYWN0aW9uOiAnYmFsYW5jZScsXG4gIGFkZHJlc3M6ICcweDc0MjgzODE5M2M0MTY5ZjZiMmJhN2IwZTAzZjcyM2MzYmEwOTI4ZTEnLFxufTtcblxuY29uc3QgZ2V0QmFsYW5jZVJlc3BvbnNlVW5zaWduZWRTd2VlcDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gIHN0YXR1czogJzEnLFxuICByZXN1bHQ6ICcxMDAwMDAwMDAwMDAwMDAwMDAnLFxuICBtZXNzYWdlOiAnT0snLFxufTtcblxuZXhwb3J0IGNvbnN0IG1vY2tEYXRhVW5zaWduZWRTd2VlcCA9IHtcbiAgdXNlcktleTpcbiAgICAnMDI5ZDJkZWQyZDM5ZWU3Y2Q4ZDhiYmJhOGIyNWU0YzYwYmIwOTI5NzkzNmZhNmIyMjNkZTFmNDk1YjVlZTIwZGNhZjc2MjM2N2Y5NjkxZjc3MTljYjVlMTNlNTlkNzI1NjY5YTE4YWFkMWUyNTIyZGQxNDFmYTRjN2ZkM2QyNWMxNycsXG4gIGJhY2t1cEtleTpcbiAgICAnMDI5ZDJkZWQyZDM5ZWU3Y2Q4ZDhiYmJhOGIyNWU0YzYwYmIwOTI5NzkzNmZhNmIyMjNkZTFmNDk1YjVlZTIwZGNhZjc2MjM2N2Y5NjkxZjc3MTljYjVlMTNlNTlkNzI1NjY5YTE4YWFkMWUyNTIyZGQxNDFmYTRjN2ZkM2QyNWMxNycsXG4gIGRlcml2YXRpb25QYXRoOiAnbS8wJyxcbiAgZGVyaXZhdGlvblNlZWQ6ICcnLFxuICB3YWxsZXRCYXNlQWRkcmVzczogJzB4NzQyODM4MTkzYzQxNjlmNmIyYmE3YjBlMDNmNzIzYzNiYTA5MjhlMScsXG4gIHJlY292ZXJ5RGVzdGluYXRpb246ICcweGQ3NmI1ODY5MDE4NTBmMmM2NTZkYjBjYmVmNzk1YzA4NTFiYmVjMzUnLFxuICBnZXRUeExpc3RSZXF1ZXN0OiBnZXRUeExpc3RSZXF1ZXN0VW5zaWduZWRTd2VlcCxcbiAgZ2V0VHhMaXN0UmVzcG9uc2U6IGdldFR4TGlzdFJlc3BvbnNlVW5zaWduZWRTd2VlcCxcbiAgZ2V0QmFsYW5jZVJlcXVlc3Q6IGdldEJhbGFuY2VSZXF1ZXN0VW5zaWduZWRTd2VlcCxcbiAgZ2V0QmFsYW5jZVJlc3BvbnNlOiBnZXRCYWxhbmNlUmVzcG9uc2VVbnNpZ25lZFN3ZWVwLFxufTtcblxuY29uc3QgZ2V0VHhMaXN0UmVxdWVzdE5vbkJpdEdvUmVjb3Zlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGNoYWluaWQ6ICc1MScsXG4gIG1vZHVsZTogJ2FjY291bnQnLFxuICBhY3Rpb246ICd0eGxpc3QnLFxuICBhZGRyZXNzOiAnMHg0NDc3YmMzZTI0NzJiMmM1NTgwYzAxMDUyNmRmYzU2MTQ4NzE5NTJkJyxcbn07XG5cbmNvbnN0IGdldFR4TGlzdFJlc3BvbnNlTm9uQml0R29SZWNvdmVyeTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gIHN0YXR1czogJzEnLFxuICByZXN1bHQ6IFtcbiAgICB7XG4gICAgICBoYXNoOiAnMHhlZGU4NTVkNDNkNzBlYTFiYjc1ZGI2M2Q0Zjc1MTEzZGFlMDg0NWYwZDRiZGIwYjJkOGJkYTU1MjQ5YzcwODEyJyxcbiAgICAgIG5vbmNlOiAnMjMnLFxuICAgICAgZnJvbTogJzB4NDQ3N2JjM2UyNDcyYjJjNTU4MGMwMTA1MjZkZmM1NjE0ODcxOTUyZCcsXG4gICAgfSxcbiAgXSxcbiAgbWVzc2FnZTogJ09LJyxcbn07XG5cbmNvbnN0IGdldEJhbGFuY2VSZXF1ZXN0Tm9uQml0R29SZWNvdmVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgY2hhaW5pZDogJzUxJyxcbiAgbW9kdWxlOiAnYWNjb3VudCcsXG4gIGFjdGlvbjogJ2JhbGFuY2UnLFxuICBhZGRyZXNzOiAnMHg0NDc3YmMzZTI0NzJiMmM1NTgwYzAxMDUyNmRmYzU2MTQ4NzE5NTJkJyxcbn07XG5cbmNvbnN0IGdldEJhbGFuY2VSZXNwb25zZU5vbkJpdEdvUmVjb3Zlcnk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICBzdGF0dXM6ICcxJyxcbiAgcmVzdWx0OiAnMTAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgbWVzc2FnZTogJ09LJyxcbn07XG5cbi8vIE1vY2sgZGF0YSBmb3IgdHhkYzp0bXQgdG9rZW4gdHJhbnNmZXIgVFNTIHRyYW5zYWN0aW9uXG5leHBvcnQgY29uc3QgbW9ja1Rva2VuVHJhbnNmZXJEYXRhID0ge1xuICB0eFJlcXVlc3RJZDogJzI0NzUzNjhkLWY2MDQtNDZlMy1hNzQzLWUzMmY2NjNmYTM1MCcsXG4gIHdhbGxldElkOiAnNjk1ZTFjYTRmYjRhNzM5YzhjNmY5YjQ5MTIwYzU1YzcnLFxuICBzZXJpYWxpemVkVHhIZXg6XG4gICAgJ2Y4NmEwNDg1MDQ1ZDk2NGI4MDgzMDYxYTgwOTRiMjgzZWM4ZGFkNjQ0ZWZmYzVjNGM1MGJiN2JiMjE0NDJhYzNjMmRiODBiODQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MjFjZGY1ZTg5MDA3MGMyOGRiMGZkOGU0YmY4N2RlYWMwY2QwZmZjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDgwODA4MCcsXG4gIHNpZ25hYmxlSGV4OlxuICAgICdmODZhMDQ4NTA0NWQ5NjRiODA4MzA2MWE4MDk0YjI4M2VjOGRhZDY0NGVmZmM1YzRjNTBiYjdiYjIxNDQyYWMzYzJkYjgwYjg0NGE5MDU5Y2JiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIxY2RmNWU4OTAwNzBjMjhkYjBmZDhlNGJmODdkZWFjMGNkMGZmYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAzMzgwODAnLFxuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogJzB4YjI4M2VjOGRhZDY0NGVmZmM1YzRjNTBiYjdiYjIxNDQyYWMzYzJkYicsXG4gIHJlY2lwaWVudEFkZHJlc3M6ICcweDQyMWNkZjVlODkwMDcwYzI4ZGIwZmQ4ZTRiZjg3ZGVhYzBjZDBmZmMnLFxuICBzZW5kZXJBZGRyZXNzOiAnMHg2YWFmYWRkZjU0NWY5Njc3MjE0MGYwMDA4MTkwYzE3NmEwNjVkZjlhJyxcbiAgdG9rZW5BbW91bnQ6ICcxMDAwMDAwJyxcbiAgZmVlSW5mbzoge1xuICAgIGZlZTogNzUwMDAwMDAwMDAwMDAwMCxcbiAgICBmZWVTdHJpbmc6ICc3NTAwMDAwMDAwMDAwMDAwJyxcbiAgfSxcbiAgdHhQcmVidWlsZDoge1xuICAgIHR4SGV4OlxuICAgICAgJ2Y4NmEwNDg1MDQ1ZDk2NGI4MDgzMDYxYTgwOTRiMjgzZWM4ZGFkNjQ0ZWZmYzVjNGM1MGJiN2JiMjE0NDJhYzNjMmRiODBiODQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MjFjZGY1ZTg5MDA3MGMyOGRiMGZkOGU0YmY4N2RlYWMwY2QwZmZjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDgwODA4MCcsXG4gICAgcmVjaXBpZW50czogW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiAnMHg0MjFjZGY1ZTg5MDA3MGMyOGRiMGZkOGU0YmY4N2RlYWMwY2QwZmZjJyxcbiAgICAgICAgYW1vdW50OiAnMTAwMDAwMCcsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgbW9ja0RhdGFOb25CaXRHb1JlY292ZXJ5ID0ge1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiAnMHhkNzZiNTg2OTAxODUwZjJjNjU2ZGIwY2JlZjc5NWMwODUxYmJlYzM1JyxcbiAgdXNlcktleURhdGE6XG4gICAgJ3tcIml2XCI6XCJYZVh3RDVCNDY1d1l2YW85V0ZaQzdBPT1cIixcInZcIjoxLFwiaXRlclwiOjEwMDAwLFwia3NcIjoyNTYsXCJ0c1wiOjY0LFwibW9kZVwiOlwiY2NtXCIsXCJhZGF0YVwiOlwiXCIsXCJjaXBoZXJcIjpcImFlc1wiLFwic2FsdFwiOlwiY2FEdHpCQ0YzSUE9XCIsXCJjdFwiOlwiMHFyMFlWMkRnTjY4RjlsdU5wakZRaHdEVElYd3lUVFlkUWlydmJnSVRIcUlEbUlUbVYxSU1na0tJZHpTWkJmbUxrQjZiRzQ2b1ZGNHNuVkc3bFhFSnoydHdydXRJMDFnNTl4anc4OFVMZ1I1d1Y1WmRGckdjbU5adk9RMUg1aW1vV0dTOGJWS09ObWVGNTVUQmdpNDlyOXgzZHNtZ1d2Si9FSGVBcGovRnJBUDFCTFgvUmdsNTdrWnFuTm9yeWw1NVA4TDJjSnRKRTF3ZURCRCsvR3NnZ2RyTy9kWUJtaWhLVFd5VEJWYTdVQklJZ1Y1d09kNFJYYlpOMUhnMlZjMGJZNTZLcnBaYlkxQ3NkUWlJd0gzdGtLRlBkcXRobEhWRWZTOFhWaWFZVmwwR28zQy9tVU1ZWkg3Q1RnL3M0TE1wZGxXemgzaVJubUdlcmN2SUZaQmZjZWhnTlZ2OUgvT2N0WVpuS2ZVZEk1bVpzVkd4UVJJTVdyOG9GYm1qUjNwWUo5NG94Uzhhc3NBemw3aE5JNFJKaS91NE45LzVWSklpLy8wNjl6c01zZ0ErazRiM3UzeHZpdmtUak81c3NjQVBzL1NwMG1iNVFMUWhQNDhEL3NISVl3aFFpVGhKYUgrZmxTb1VRdTVMTldtdWNtWXIwOGxSUmlJMDdPN0RaQVkycHBsTFN2QmZrckJ0Z1RnaStyTE45NWxLa3hpN1BZVEdXdWVrMVNkL1hpWGl0NkVKNUZJbVlIMmVLRVZnYXRZdktmai9CZE5KMmlIbWVheWthanRqcHIyMWx0MElxazk4aVpMWmZDcDV3NGhmSEhIQjRRQ3JCekNBZUcyTUVQcW1yQU42N3o0Z014VWJrSStqOWxZcDVTeXZsRm1ESW03OFN5UTYwMzcxV2ZyKzdiNCt3RnFQcTlmdW1YQlo0aTB4WWJjV1RyS2pZcm41Yk81bzNMV2lSb2g3RVc4bXpiTUlDMm0vRHdJd2RDSG9kYno0ZzMxUHNuazZZazZVcUVNcTVKaE9vVUpZdVZoWXRoTm1iUmxJNTlVRGcrcnovSE85blluWnFzVWd1YlNLY1pBcnFNMUo0VDQrRURLdUh0Z25DUW0yaHFIbHNKdSsvbjczalUzM0dFbTg2cERkY2I4dWRIc2ZQQ3ZoRUl1THc2WnlUaGlYOEpFT0NpOFVlYjBHUEwzMU1Ta0o3TDdjT2l6Z3A2bEhnczRuWm9yWmZVSUtqRGQzdHdjcEJOWGpUMTVLRVFiclc4UlFDaFhtVmwwYjVOOEJBb202ZTlYcHoya0RSR2J2YllmQk9kaWh0NVZyNVNtN3ByQVFWVkNaVFdxNi9xT1pGV3I3TEorQ2R3MXFZdDY0VUZjQkhOdGFYM2Q1V09NTk5NcWVzcmdsVlRXN3cyR3NjdTdYYXhvQTRjVE9Ldk1lbUcxY1dUYWcza3I4b05ndHo1Z1hzZmJTbzdDSnJOOHZ3PT1cIn0nLFxuICBiYWNrdXBLZXlEYXRhOlxuICAgICd7XCJpdlwiOlwiSjMyVklKaE85Q2JmNWJxY3Y3NUthZz09XCIsXCJ2XCI6MSxcIml0ZXJcIjoxMDAwMCxcImtzXCI6MjU2LFwidHNcIjo2NCxcIm1vZGVcIjpcImNjbVwiLFwiYWRhdGFcIjpcIlwiLFwiY2lwaGVyXCI6XCJhZXNcIixcInNhbHRcIjpcIlpRNVZzSGRYTTRRPVwiLFwiY3RcIjpcIlhUZ0FVeThUWkFMS3R0L1B0SkdBV2JIZnVFeEg1QzV5dzN5OEVyeXJjWTN1WmRla3RsM1drTDRLSEhHVHRMOXl6c3NDVE9XVU1UZW1vQUtpcGQrVy8zbXBadVE4OHArbGxvSWdVN1RjZTNSTEJHK2d1NjY1YnN2VFV1VnBmTXJwWkh4RFhYVk16d29VVkhheHdmdnUydGdkdURucGtEL0JYMlJONXFmSTZQNnp6NXI4VXVXYmlEUEtFYXFwY0FIUStSQml0QlFpT3hOQWxSTllleG5VeDFwQ3FjSzA4aHFycWRRdng3ZWxYWGRDSTNUd2VwR1c3UXdSeldhOXB4dk05ZDg1QVdFU3VlSjJCNEpyWjVia3JJelhpeEdKY29VQUpWdkdmRDY5em9MVUg5ZWlubk1hZnBvY0VUQlVEUXlldkMvai8xRndnWlVDZUdjYjRVOU45dFFKdFIwZm96emdwQW85MW5XQTVVZmtEMitoelJ2ejJwMURtYys0Yk5iNnMvN3ZLK0JJT2RwZTRibHpJNDNQeE1Mb0JHa0VRSGxHSFlDck9VbmJWN2RjeGx5UHYwcWZvbThLNGY2Lzc0WUVLaU1QandBM3NDY250V2JvVzhnVVBIRjJ4eC9XQWdtSEk5RE9pWHNDSlpNSHg0R2labVkvcFI5UlZlL09lRkFxUExXSm9UNkthaXpUSkQzU280L0c1b0hLUGdUUWJNSVBpMWxZdHFLZE91aHljSVNzYUVnbmtHMWE4VHE1Q04wdGs1Vnl3U21qNGtTcnFxamNwN2tiQVcrVmlhTmtaTHVTaWJvbUs5QXZ1T0drRVpCcURFdXlGSm5TNG9heVFUTHhuc3R6TzFKSkdobXJDc2tIOUIvUUlJclVWbDFJT3YvSVZ5UGc0TTdUMWcwK1lmSGRBWGR1TFh1OWJqSGtxekdhU1FadTM1YnM1UUt5MGJLRWhBd29qK3pnWUFGL2daQkgwL2lQenJXTTJ4dS9ITWVRS3dJMEtGTE9pQngzY01tTllFK0ZiNnZDanBWWEJUWVlVQ0JPalJuckF1Ui9sYzNBbmpBZWZDTUFEODkrRlErUVc1SXpadjk3bHJTdzBSYitESWN0ZlhkZFVLSzd5eUJlOENjWldVMWRHQVlzYi9oaytINWxUWkpCdXI1TTNhMXZ6UE1pNjhIS25SdDdYWm15QnN2UEE4dDBKVkptbGMwUmVqcURyY3BzNHVLaktkTWFETk92QnptRWlqZFZ2OE41cTBOZyt5SHdxM0JvbHFvWW40bVZKT3JNdVJsWnQ0cE9Ea0k4dU9VMUhhL1ZTdEx6aFQySEZleForWTBKek0wRFM1aHN5Z0h0NER6Ni9SZlpUS0hZdnh6dVJpSE5MYm1OY09CdlZiQk9MMkxtK0RsbzNmRnVWRDNmUzA4dkp1YWZjL3VBZmF0cFJ3UnFnRS9FenZaT3BuWnlIY3I0bFVWRWhSckRZdz09XCJ9JyxcbiAgd2FsbGV0UGFzc3BocmFzZTogJ3ByaXRodmlzaGV0MjUwMycsXG4gIHdhbGxldFJvb3RBZGRyZXNzOiAnMHg0NDc3YmMzZTI0NzJiMmM1NTgwYzAxMDUyNmRmYzU2MTQ4NzE5NTJkJyxcbiAgZ2V0VHhMaXN0UmVxdWVzdDogZ2V0VHhMaXN0UmVxdWVzdE5vbkJpdEdvUmVjb3ZlcnksXG4gIGdldFR4TGlzdFJlc3BvbnNlOiBnZXRUeExpc3RSZXNwb25zZU5vbkJpdEdvUmVjb3ZlcnksXG4gIGdldEJhbGFuY2VSZXF1ZXN0OiBnZXRCYWxhbmNlUmVxdWVzdE5vbkJpdEdvUmVjb3ZlcnksXG4gIGdldEJhbGFuY2VSZXNwb25zZTogZ2V0QmFsYW5jZVJlc3BvbnNlTm9uQml0R29SZWNvdmVyeSxcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,kBAEzC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getBuilder = void 0;
|
|
4
|
+
const src_1 = require("../../src");
|
|
5
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
6
|
+
const getBuilder = (coin) => {
|
|
7
|
+
return new src_1.TransactionBuilder(statics_1.coins.get(coin));
|
|
8
|
+
};
|
|
9
|
+
exports.getBuilder = getBuilder;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9nZXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQztBQUMvQyxpREFBNEM7QUFFckMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQXNCLEVBQUU7SUFDN0QsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFGVyxRQUFBLFVBQVUsY0FFckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGNvbnN0IGdldEJ1aWxkZXIgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyID0+IHtcbiAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KGNvaW4pKTtcbn07XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getBuilder_1 = require("../getBuilder");
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
describe('Xdc Transfer Builder', () => {
|
|
9
|
+
describe('Build from TxHex', function () {
|
|
10
|
+
it('Should successfully build from txHex', async function () {
|
|
11
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
12
|
+
const txHex = '0xf86d058502e90edd00825208944943dd2a2494e3ea5937954cb836692a047695b5880de0b6b3a764000080818aa0ca224695a7a9563b2b137fbc1e29b4f4648d4efc790acbcc4fc7e32b27ec4931a053c609798c695a9f2f94adacfdf0c74944762d39f1a059a3268aa3df7ea29fd3';
|
|
13
|
+
txBuilder.from(txHex);
|
|
14
|
+
const parsedTx = await txBuilder.build();
|
|
15
|
+
should_1.default.exist(parsedTx.toJson());
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUEyQztBQUMzQyxvREFBNEI7QUFFNUIsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxRQUFRLENBQUMsa0JBQWtCLEVBQUU7UUFDM0IsRUFBRSxDQUFDLHNDQUFzQyxFQUFFLEtBQUs7WUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUNULGtPQUFrTyxDQUFDO1lBQ3JPLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4uL2dldEJ1aWxkZXInO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5kZXNjcmliZSgnWGRjIFRyYW5zZmVyIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdCdWlsZCBmcm9tIFR4SGV4JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdTaG91bGQgc3VjY2Vzc2Z1bGx5IGJ1aWxkIGZyb20gdHhIZXgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG4gICAgICBjb25zdCB0eEhleCA9XG4gICAgICAgICcweGY4NmQwNTg1MDJlOTBlZGQwMDgyNTIwODk0NDk0M2RkMmEyNDk0ZTNlYTU5Mzc5NTRjYjgzNjY5MmEwNDc2OTViNTg4MGRlMGI2YjNhNzY0MDAwMDgwODE4YWEwY2EyMjQ2OTVhN2E5NTYzYjJiMTM3ZmJjMWUyOWI0ZjQ2NDhkNGVmYzc5MGFjYmNjNGZjN2UzMmIyN2VjNDkzMWEwNTNjNjA5Nzk4YzY5NWE5ZjJmOTRhZGFjZmRmMGM3NDk0NDc2MmQzOWYxYTA1OWEzMjY4YWEzZGY3ZWEyOWZkMyc7XG4gICAgICB0eEJ1aWxkZXIuZnJvbSh0eEhleCk7XG4gICAgICBjb25zdCBwYXJzZWRUeCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QocGFyc2VkVHgudG9Kc29uKCkpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadKyc.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/uploadKyc.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const getBuilder_1 = require("../getBuilder");
|
|
7
|
+
const should_1 = __importDefault(require("should"));
|
|
8
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
9
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
10
|
+
const lib_1 = require("../../../src/lib");
|
|
11
|
+
describe('XDC Upload KYC Builder', () => {
|
|
12
|
+
const coinConfig = statics_1.coins.get('txdc');
|
|
13
|
+
describe('UploadKycBuilder', () => {
|
|
14
|
+
it('should build uploadKYC call with valid IPFS hash', () => {
|
|
15
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
16
|
+
const ipfsHash = 'QmRealIPFSHashExample123456789012345678901234';
|
|
17
|
+
const call = builder.ipfsHash(ipfsHash).build();
|
|
18
|
+
should_1.default.exist(call);
|
|
19
|
+
call.should.be.instanceOf(lib_1.UploadKycCall);
|
|
20
|
+
call.ipfsHash.should.equal(ipfsHash);
|
|
21
|
+
call.contractAddress.should.equal(lib_1.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET);
|
|
22
|
+
});
|
|
23
|
+
it('should build uploadKYC call with custom contract address', () => {
|
|
24
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
25
|
+
const ipfsHash = 'QmCustomIPFSHash123456789012345678901234567';
|
|
26
|
+
const customAddress = '0x1234567890123456789012345678901234567890';
|
|
27
|
+
const call = builder.ipfsHash(ipfsHash).contractAddress(customAddress).build();
|
|
28
|
+
should_1.default.exist(call);
|
|
29
|
+
call.contractAddress.should.equal(customAddress);
|
|
30
|
+
});
|
|
31
|
+
it('should accept IPFS v1 hash format (starting with "b")', () => {
|
|
32
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
33
|
+
const ipfsHash = 'bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi';
|
|
34
|
+
const call = builder.ipfsHash(ipfsHash).build();
|
|
35
|
+
should_1.default.exist(call);
|
|
36
|
+
call.ipfsHash.should.equal(ipfsHash);
|
|
37
|
+
});
|
|
38
|
+
it('should throw error when IPFS hash is empty', () => {
|
|
39
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
40
|
+
(() => builder.ipfsHash('')).should.throw('IPFS hash cannot be empty');
|
|
41
|
+
});
|
|
42
|
+
it('should throw error when IPFS hash format is invalid', () => {
|
|
43
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
44
|
+
(() => builder.ipfsHash('InvalidHash123')).should.throw('Invalid IPFS hash format. Expected hash starting with "Qm" (v0) or "b" (v1)');
|
|
45
|
+
});
|
|
46
|
+
it('should throw error when contract address is empty', () => {
|
|
47
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
48
|
+
(() => builder.contractAddress('')).should.throw('Contract address cannot be empty');
|
|
49
|
+
});
|
|
50
|
+
it('should throw error when contract address format is invalid', () => {
|
|
51
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
52
|
+
(() => builder.contractAddress('InvalidAddress')).should.throw('Invalid contract address format');
|
|
53
|
+
});
|
|
54
|
+
it('should throw error when building without IPFS hash', () => {
|
|
55
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
56
|
+
(() => builder.build()).should.throw('Missing IPFS hash for uploadKYC transaction');
|
|
57
|
+
});
|
|
58
|
+
it('should normalize contract address with 0x prefix', () => {
|
|
59
|
+
const builder = new lib_1.UploadKycBuilder(coinConfig);
|
|
60
|
+
const ipfsHash = 'QmTestHash123456789012345678901234567890123';
|
|
61
|
+
const addressWithoutPrefix = '1234567890123456789012345678901234567890';
|
|
62
|
+
const call = builder.ipfsHash(ipfsHash).contractAddress(addressWithoutPrefix).build();
|
|
63
|
+
call.contractAddress.should.equal('0x' + addressWithoutPrefix);
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('UploadKycCall', () => {
|
|
67
|
+
it('should serialize uploadKYC call correctly', () => {
|
|
68
|
+
const ipfsHash = 'QmTestIPFSHash1234567890123456789012345678';
|
|
69
|
+
const contractAddress = lib_1.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET;
|
|
70
|
+
const call = new lib_1.UploadKycCall(contractAddress, ipfsHash);
|
|
71
|
+
const serialized = call.serialize();
|
|
72
|
+
should_1.default.exist(serialized);
|
|
73
|
+
serialized.should.be.type('string');
|
|
74
|
+
// Should start with the method ID
|
|
75
|
+
serialized.should.startWith(lib_1.UPLOAD_KYC_METHOD_ID);
|
|
76
|
+
});
|
|
77
|
+
it('should have correct properties', () => {
|
|
78
|
+
const ipfsHash = 'QmTestIPFSHash1234567890123456789012345678';
|
|
79
|
+
const contractAddress = '0x0000000000000000000000000000000000000088';
|
|
80
|
+
const call = new lib_1.UploadKycCall(contractAddress, ipfsHash);
|
|
81
|
+
call.contractAddress.should.equal(contractAddress);
|
|
82
|
+
call.ipfsHash.should.equal(ipfsHash);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('TransactionBuilder integration', () => {
|
|
86
|
+
it('should build uploadKYC transaction with TransactionBuilder', async () => {
|
|
87
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
88
|
+
const ipfsHash = 'QmTestIPFSHash1234567890123456789012345678';
|
|
89
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
90
|
+
txBuilder.fee({
|
|
91
|
+
fee: '10000000000',
|
|
92
|
+
gasLimit: '100000',
|
|
93
|
+
});
|
|
94
|
+
txBuilder.counter(1);
|
|
95
|
+
txBuilder.uploadKyc().ipfsHash(ipfsHash);
|
|
96
|
+
const tx = await txBuilder.build();
|
|
97
|
+
should_1.default.exist(tx);
|
|
98
|
+
const txJson = tx.toJson();
|
|
99
|
+
should_1.default.exist(txJson.to);
|
|
100
|
+
txJson.to.should.equal(lib_1.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET);
|
|
101
|
+
txJson.value.should.equal('0');
|
|
102
|
+
should_1.default.exist(txJson.data);
|
|
103
|
+
// Data should start with uploadKYC method ID
|
|
104
|
+
txJson.data.should.startWith(lib_1.UPLOAD_KYC_METHOD_ID);
|
|
105
|
+
});
|
|
106
|
+
it('should throw error when uploadKyc() is called on non-ContractCall transaction', () => {
|
|
107
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
108
|
+
txBuilder.type(sdk_core_1.TransactionType.Send);
|
|
109
|
+
(() => txBuilder.uploadKyc()).should.throw('uploadKYC can only be set for contract call transactions');
|
|
110
|
+
});
|
|
111
|
+
it('should build transaction with custom validator contract address', async () => {
|
|
112
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
113
|
+
const ipfsHash = 'QmCustomIPFSHash123456789012345678901234567';
|
|
114
|
+
const customAddress = '0x1234567890123456789012345678901234567890';
|
|
115
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
116
|
+
txBuilder.fee({
|
|
117
|
+
fee: '10000000000',
|
|
118
|
+
gasLimit: '100000',
|
|
119
|
+
});
|
|
120
|
+
txBuilder.counter(1);
|
|
121
|
+
txBuilder.uploadKyc().ipfsHash(ipfsHash).contractAddress(customAddress);
|
|
122
|
+
const tx = await txBuilder.build();
|
|
123
|
+
should_1.default.exist(tx);
|
|
124
|
+
const txJson = tx.toJson();
|
|
125
|
+
should_1.default.exist(txJson.to);
|
|
126
|
+
txJson.to.should.equal(customAddress);
|
|
127
|
+
});
|
|
128
|
+
it('should build and serialize uploadKYC transaction', async () => {
|
|
129
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
130
|
+
const ipfsHash = 'QmRealIPFSHashForSerialization1234567890123';
|
|
131
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
132
|
+
txBuilder.fee({
|
|
133
|
+
fee: '10000000000',
|
|
134
|
+
gasLimit: '100000',
|
|
135
|
+
});
|
|
136
|
+
txBuilder.counter(5);
|
|
137
|
+
txBuilder.uploadKyc().ipfsHash(ipfsHash);
|
|
138
|
+
const tx = await txBuilder.build();
|
|
139
|
+
const serialized = tx.toBroadcastFormat();
|
|
140
|
+
should_1.default.exist(serialized);
|
|
141
|
+
serialized.should.be.type('string');
|
|
142
|
+
// Should be a valid hex string
|
|
143
|
+
serialized.should.match(/^(0x)?[0-9a-f]+$/i);
|
|
144
|
+
});
|
|
145
|
+
it('should parse uploadKYC transaction from hex', async () => {
|
|
146
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
147
|
+
const ipfsHash = 'QmParseTestHash12345678901234567890123456';
|
|
148
|
+
// First build a transaction
|
|
149
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
150
|
+
txBuilder.fee({
|
|
151
|
+
fee: '10000000000',
|
|
152
|
+
gasLimit: '100000',
|
|
153
|
+
});
|
|
154
|
+
txBuilder.counter(10);
|
|
155
|
+
txBuilder.uploadKyc().ipfsHash(ipfsHash);
|
|
156
|
+
const tx = await txBuilder.build();
|
|
157
|
+
const serialized = tx.toBroadcastFormat();
|
|
158
|
+
// Now parse it back
|
|
159
|
+
const txBuilder2 = (0, getBuilder_1.getBuilder)('txdc');
|
|
160
|
+
txBuilder2.from(serialized);
|
|
161
|
+
const parsedTx = await txBuilder2.build();
|
|
162
|
+
should_1.default.exist(parsedTx);
|
|
163
|
+
const parsedJson = parsedTx.toJson();
|
|
164
|
+
should_1.default.exist(parsedJson.to);
|
|
165
|
+
parsedJson.to.should.equal(lib_1.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET);
|
|
166
|
+
parsedJson.nonce.should.equal(10);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('Real-world scenarios', () => {
|
|
170
|
+
it('should create transaction matching sandbox code pattern', async () => {
|
|
171
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
172
|
+
// Mock IPFS hash similar to what would be generated
|
|
173
|
+
const mockIPFSHash = 'Qm' + 'a'.repeat(44);
|
|
174
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
175
|
+
txBuilder.fee({
|
|
176
|
+
fee: '20000000000',
|
|
177
|
+
gasLimit: '200000',
|
|
178
|
+
});
|
|
179
|
+
txBuilder.counter(0);
|
|
180
|
+
txBuilder.uploadKyc().ipfsHash(mockIPFSHash);
|
|
181
|
+
const tx = await txBuilder.build();
|
|
182
|
+
const txJson = tx.toJson();
|
|
183
|
+
// Verify transaction structure matches expected format
|
|
184
|
+
should_1.default.exist(txJson.to);
|
|
185
|
+
txJson.to.should.equal(lib_1.XDC_VALIDATOR_CONTRACT_ADDRESS_TESTNET);
|
|
186
|
+
txJson.value.should.equal('0');
|
|
187
|
+
should_1.default.exist(txJson.data);
|
|
188
|
+
txJson.data.should.startWith(lib_1.UPLOAD_KYC_METHOD_ID);
|
|
189
|
+
should_1.default.exist(txJson.gasLimit);
|
|
190
|
+
should_1.default.exist(txJson.nonce);
|
|
191
|
+
});
|
|
192
|
+
it('should handle multiple IPFS hash formats', async () => {
|
|
193
|
+
const testHashes = [
|
|
194
|
+
'QmRealIPFSHashExample123456789012345678901234', // v0
|
|
195
|
+
'bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi', // v1
|
|
196
|
+
'QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG', // real example
|
|
197
|
+
];
|
|
198
|
+
for (const hash of testHashes) {
|
|
199
|
+
const txBuilder = (0, getBuilder_1.getBuilder)('txdc');
|
|
200
|
+
txBuilder.type(sdk_core_1.TransactionType.ContractCall);
|
|
201
|
+
txBuilder.fee({
|
|
202
|
+
fee: '10000000000',
|
|
203
|
+
gasLimit: '100000',
|
|
204
|
+
});
|
|
205
|
+
txBuilder.counter(1);
|
|
206
|
+
txBuilder.uploadKyc().ipfsHash(hash);
|
|
207
|
+
const tx = await txBuilder.build();
|
|
208
|
+
should_1.default.exist(tx);
|
|
209
|
+
const txJson = tx.toJson();
|
|
210
|
+
txJson.data.should.startWith(lib_1.UPLOAD_KYC_METHOD_ID);
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkS3ljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci91cGxvYWRLeWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBMkM7QUFDM0Msb0RBQTRCO0FBQzVCLG1EQUF1RDtBQUN2RCxpREFBNEM7QUFDNUMsMENBSzBCO0FBRTFCLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7SUFDdEMsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEVBQUUsQ0FBQyxrREFBa0QsRUFBRSxHQUFHLEVBQUU7WUFDMUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxNQUFNLFFBQVEsR0FBRywrQ0FBK0MsQ0FBQztZQUVqRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRWhELGdCQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxtQkFBYSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw0Q0FBc0MsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDBEQUEwRCxFQUFFLEdBQUcsRUFBRTtZQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sUUFBUSxHQUFHLDZD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R0FBRztnQkFDakIsK0NBQStDLEVBQUUsS0FBSztnQkFDdEQsNkRBQTZELEVBQUUsS0FBSztnQkFDcEUsZ0RBQWdELEVBQUUsZUFBZTthQUNsRSxDQUFDO1lBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUVyQyxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzdDLFNBQVMsQ0FBQyxHQUFHLENBQUM7b0JBQ1osR0FBRyxFQUFFLGFBQWE7b0JBQ2xCLFFBQVEsRUFBRSxRQUFRO2lCQUNuQixDQUFDLENBQUM7Z0JBQ0gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckIsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFckMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ25DLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUVqQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQywwQkFBb0IsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi4vZ2V0QnVpbGRlcic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHtcbiAgVXBsb2FkS3ljQnVpbGRlcixcbiAgVXBsb2FkS3ljQ2FsbCxcbiAgWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQsXG4gIFVQTE9BRF9LWUNfTUVUSE9EX0lELFxufSBmcm9tICcuLi8uLi8uLi9zcmMvbGliJztcblxuZGVzY3JpYmUoJ1hEQyBVcGxvYWQgS1lDIEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGNvaW5Db25maWcgPSBjb2lucy5nZXQoJ3R4ZGMnKTtcblxuICBkZXNjcmliZSgnVXBsb2FkS3ljQnVpbGRlcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIHVwbG9hZEtZQyBjYWxsIHdpdGggdmFsaWQgSVBGUyBoYXNoJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgaXBmc0hhc2ggPSAnUW1SZWFsSVBGU0hhc2hFeGFtcGxlMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0JztcblxuICAgICAgY29uc3QgY2FsbCA9IGJ1aWxkZXIuaXBmc0hhc2goaXBmc0hhc2gpLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChjYWxsKTtcbiAgICAgIGNhbGwuc2hvdWxkLmJlLmluc3RhbmNlT2YoVXBsb2FkS3ljQ2FsbCk7XG4gICAgICBjYWxsLmlwZnNIYXNoLnNob3VsZC5lcXVhbChpcGZzSGFzaCk7XG4gICAgICBjYWxsLmNvbnRyYWN0QWRkcmVzcy5zaG91bGQuZXF1YWwoWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCB1cGxvYWRLWUMgY2FsbCB3aXRoIGN1c3RvbSBjb250cmFjdCBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKGNvaW5Db25maWcpO1xuICAgICAgY29uc3QgaXBmc0hhc2ggPSAnUW1DdXN0b21JUEZTSGFzaDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nyc7XG4gICAgICBjb25zdCBjdXN0b21BZGRyZXNzID0gJzB4MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCc7XG5cbiAgICAgIGNvbnN0IGNhbGwgPSBidWlsZGVyLmlwZnNIYXNoKGlwZnNIYXNoKS5jb250cmFjdEFkZHJlc3MoY3VzdG9tQWRkcmVzcykuYnVpbGQoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KGNhbGwpO1xuICAgICAgY2FsbC5jb250cmFjdEFkZHJlc3Muc2hvdWxkLmVxdWFsKGN1c3RvbUFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgSVBGUyB2MSBoYXNoIGZvcm1hdCAoc3RhcnRpbmcgd2l0aCBcImJcIiknLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFVwbG9hZEt5Y0J1aWxkZXIoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBpcGZzSGFzaCA9ICdiYWZ5YmVpZ2R5cnp0NXNmcDd1ZG03aHU3NnVoN3kyNm5mM2VmdXlscWFiZjNvY2xndHF5NTVmYnpkaSc7XG5cbiAgICAgIGNvbnN0IGNhbGwgPSBidWlsZGVyLmlwZnNIYXNoKGlwZnNIYXNoKS5idWlsZCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3QoY2FsbCk7XG4gICAgICBjYWxsLmlwZnNIYXNoLnNob3VsZC5lcXVhbChpcGZzSGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gSVBGUyBoYXNoIGlzIGVtcHR5JywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKGNvaW5Db25maWcpO1xuXG4gICAgICAoKCkgPT4gYnVpbGRlci5pcGZzSGFzaCgnJykpLnNob3VsZC50aHJvdygnSVBGUyBoYXNoIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIElQRlMgaGFzaCBmb3JtYXQgaXMgaW52YWxpZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVXBsb2FkS3ljQnVpbGRlcihjb2luQ29uZmlnKTtcblxuICAgICAgKCgpID0+IGJ1aWxkZXIuaXBmc0hhc2goJ0ludmFsaWRIYXNoMTIzJykpLnNob3VsZC50aHJvdyhcbiAgICAgICAgJ0ludmFsaWQgSVBGUyBoYXNoIGZvcm1hdC4gRXhwZWN0ZWQgaGFzaCBzdGFydGluZyB3aXRoIFwiUW1cIiAodjApIG9yIFwiYlwiICh2MSknXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGNvbnRyYWN0IGFkZHJlc3MgaXMgZW1wdHknLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFVwbG9hZEt5Y0J1aWxkZXIoY29pbkNvbmZpZyk7XG5cbiAgICAgICgoKSA9PiBidWlsZGVyLmNvbnRyYWN0QWRkcmVzcygnJykpLnNob3VsZC50aHJvdygnQ29udHJhY3QgYWRkcmVzcyBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBjb250cmFjdCBhZGRyZXNzIGZvcm1hdCBpcyBpbnZhbGlkJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKGNvaW5Db25maWcpO1xuXG4gICAgICAoKCkgPT4gYnVpbGRlci5jb250cmFjdEFkZHJlc3MoJ0ludmFsaWRBZGRyZXNzJykpLnNob3VsZC50aHJvdygnSW52YWxpZCBjb250cmFjdCBhZGRyZXNzIGZvcm1hdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgSVBGUyBoYXNoJywgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKGNvaW5Db25maWcpO1xuXG4gICAgICAoKCkgPT4gYnVpbGRlci5idWlsZCgpKS5zaG91bGQudGhyb3coJ01pc3NpbmcgSVBGUyBoYXNoIGZvciB1cGxvYWRLWUMgdHJhbnNhY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm9ybWFsaXplIGNvbnRyYWN0IGFkZHJlc3Mgd2l0aCAweCBwcmVmaXgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFVwbG9hZEt5Y0J1aWxkZXIoY29pbkNvbmZpZyk7XG4gICAgICBjb25zdCBpcGZzSGFzaCA9ICdRbVRlc3RIYXNoMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzJztcbiAgICAgIGNvbnN0IGFkZHJlc3NXaXRob3V0UHJlZml4ID0gJzEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnO1xuXG4gICAgICBjb25zdCBjYWxsID0gYnVpbGRlci5pcGZzSGFzaChpcGZzSGFzaCkuY29udHJhY3RBZGRyZXNzKGFkZHJlc3NXaXRob3V0UHJlZml4KS5idWlsZCgpO1xuXG4gICAgICBjYWxsLmNvbnRyYWN0QWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4JyArIGFkZHJlc3NXaXRob3V0UHJlZml4KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1VwbG9hZEt5Y0NhbGwnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBzZXJpYWxpemUgdXBsb2FkS1lDIGNhbGwgY29ycmVjdGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgaXBmc0hhc2ggPSAnUW1UZXN0SVBGU0hhc2gxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4JztcbiAgICAgIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9IFhEQ19WQUxJREFUT1JfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUO1xuXG4gICAgICBjb25zdCBjYWxsID0gbmV3IFVwbG9hZEt5Y0NhbGwoY29udHJhY3RBZGRyZXNzLCBpcGZzSGFzaCk7XG4gICAgICBjb25zdCBzZXJpYWxpemVkID0gY2FsbC5zZXJpYWxpemUoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHNlcmlhbGl6ZWQpO1xuICAgICAgc2VyaWFsaXplZC5zaG91bGQuYmUudHlwZSgnc3RyaW5nJyk7XG4gICAgICAvLyBTaG91bGQgc3RhcnQgd2l0aCB0aGUgbWV0aG9kIElEXG4gICAgICBzZXJpYWxpemVkLnNob3VsZC5zdGFydFdpdGgoVVBMT0FEX0tZQ19NRVRIT0RfSUQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIGNvcnJlY3QgcHJvcGVydGllcycsICgpID0+IHtcbiAgICAgIGNvbnN0IGlwZnNIYXNoID0gJ1FtVGVzdElQRlNIYXNoMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3OCc7XG4gICAgICBjb25zdCBjb250cmFjdEFkZHJlc3MgPSAnMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4JztcblxuICAgICAgY29uc3QgY2FsbCA9IG5ldyBVcGxvYWRLeWNDYWxsKGNvbnRyYWN0QWRkcmVzcywgaXBmc0hhc2gpO1xuXG4gICAgICBjYWxsLmNvbnRyYWN0QWRkcmVzcy5zaG91bGQuZXF1YWwoY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIGNhbGwuaXBmc0hhc2guc2hvdWxkLmVxdWFsKGlwZnNIYXNoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1RyYW5zYWN0aW9uQnVpbGRlciBpbnRlZ3JhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGJ1aWxkIHVwbG9hZEtZQyB0cmFuc2FjdGlvbiB3aXRoIFRyYW5zYWN0aW9uQnVpbGRlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3R4ZGMnKTtcbiAgICAgIGNvbnN0IGlwZnNIYXNoID0gJ1FtVGVzdElQRlNIYXNoMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3OCc7XG5cbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICcxMDAwMDAnLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgIHR4QnVpbGRlci51cGxvYWRLeWMoKS5pcGZzSGFzaChpcGZzSGFzaCk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdCh0eCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5leGlzdCh0eEpzb24udG8pO1xuICAgICAgdHhKc29uLnRvIS5zaG91bGQuZXF1YWwoWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhKc29uLnZhbHVlLnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5kYXRhKTtcbiAgICAgIC8vIERhdGEgc2hvdWxkIHN0YXJ0IHdpdGggdXBsb2FkS1lDIG1ldGhvZCBJRFxuICAgICAgdHhKc29uLmRhdGEuc2hvdWxkLnN0YXJ0V2l0aChVUExPQURfS1lDX01FVEhPRF9JRCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gdXBsb2FkS3ljKCkgaXMgY2FsbGVkIG9uIG5vbi1Db250cmFjdENhbGwgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG5cbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcblxuICAgICAgKCgpID0+IHR4QnVpbGRlci51cGxvYWRLeWMoKSkuc2hvdWxkLnRocm93KCd1cGxvYWRLWUMgY2FuIG9ubHkgYmUgc2V0IGZvciBjb250cmFjdCBjYWxsIHRyYW5zYWN0aW9ucycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCB0cmFuc2FjdGlvbiB3aXRoIGN1c3RvbSB2YWxpZGF0b3IgY29udHJhY3QgYWRkcmVzcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3R4ZGMnKTtcbiAgICAgIGNvbnN0IGlwZnNIYXNoID0gJ1FtQ3VzdG9tSVBGU0hhc2gxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NjcnO1xuICAgICAgY29uc3QgY3VzdG9tQWRkcmVzcyA9ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnO1xuXG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICBmZWU6ICcxMDAwMDAwMDAwMCcsXG4gICAgICAgIGdhc0xpbWl0OiAnMTAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIudXBsb2FkS3ljKCkuaXBmc0hhc2goaXBmc0hhc2gpLmNvbnRyYWN0QWRkcmVzcyhjdXN0b21BZGRyZXNzKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHR4KTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi50byk7XG4gICAgICB0eEpzb24udG8hLnNob3VsZC5lcXVhbChjdXN0b21BZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYW5kIHNlcmlhbGl6ZSB1cGxvYWRLWUMgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG4gICAgICBjb25zdCBpcGZzSGFzaCA9ICdRbVJlYWxJUEZTSGFzaEZvclNlcmlhbGl6YXRpb24xMjM0NTY3ODkwMTIzJztcblxuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbCk7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgZmVlOiAnMTAwMDAwMDAwMDAnLFxuICAgICAgICBnYXNMaW1pdDogJzEwMDAwMCcsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKDUpO1xuICAgICAgdHhCdWlsZGVyLnVwbG9hZEt5YygpLmlwZnNIYXNoKGlwZnNIYXNoKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuXG4gICAgICBzaG91bGQuZXhpc3Qoc2VyaWFsaXplZCk7XG4gICAgICBzZXJpYWxpemVkLnNob3VsZC5iZS50eXBlKCdzdHJpbmcnKTtcbiAgICAgIC8vIFNob3VsZCBiZSBhIHZhbGlkIGhleCBzdHJpbmdcbiAgICAgIHNlcmlhbGl6ZWQuc2hvdWxkLm1hdGNoKC9eKDB4KT9bMC05YS1mXSskL2kpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSB1cGxvYWRLWUMgdHJhbnNhY3Rpb24gZnJvbSBoZXgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG4gICAgICBjb25zdCBpcGZzSGFzaCA9ICdRbVBhcnNlVGVzdEhhc2gxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Nic7XG5cbiAgICAgIC8vIEZpcnN0IGJ1aWxkIGEgdHJhbnNhY3Rpb25cbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICcxMDAwMDAnLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxMCk7XG4gICAgICB0eEJ1aWxkZXIudXBsb2FkS3ljKCkuaXBmc0hhc2goaXBmc0hhc2gpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIC8vIE5vdyBwYXJzZSBpdCBiYWNrXG4gICAgICBjb25zdCB0eEJ1aWxkZXIyID0gZ2V0QnVpbGRlcigndHhkYycpO1xuICAgICAgdHhCdWlsZGVyMi5mcm9tKHNlcmlhbGl6ZWQpO1xuICAgICAgY29uc3QgcGFyc2VkVHggPSBhd2FpdCB0eEJ1aWxkZXIyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChwYXJzZWRUeCk7XG4gICAgICBjb25zdCBwYXJzZWRKc29uID0gcGFyc2VkVHgudG9Kc29uKCk7XG4gICAgICBzaG91bGQuZXhpc3QocGFyc2VkSnNvbi50byk7XG4gICAgICBwYXJzZWRKc29uLnRvIS5zaG91bGQuZXF1YWwoWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgcGFyc2VkSnNvbi5ub25jZS5zaG91bGQuZXF1YWwoMTApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUmVhbC13b3JsZCBzY2VuYXJpb3MnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBjcmVhdGUgdHJhbnNhY3Rpb24gbWF0Y2hpbmcgc2FuZGJveCBjb2RlIHBhdHRlcm4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG4gICAgICAvLyBNb2NrIElQRlMgaGFzaCBzaW1pbGFyIHRvIHdoYXQgd291bGQgYmUgZ2VuZXJhdGVkXG4gICAgICBjb25zdCBtb2NrSVBGU0hhc2ggPSAnUW0nICsgJ2EnLnJlcGVhdCg0NCk7XG5cbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzIwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICcyMDAwMDAnLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigwKTtcbiAgICAgIHR4QnVpbGRlci51cGxvYWRLeWMoKS5pcGZzSGFzaChtb2NrSVBGU0hhc2gpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG5cbiAgICAgIC8vIFZlcmlmeSB0cmFuc2FjdGlvbiBzdHJ1Y3R1cmUgbWF0Y2hlcyBleHBlY3RlZCBmb3JtYXRcbiAgICAgIHNob3VsZC5leGlzdCh0eEpzb24udG8pO1xuICAgICAgdHhKc29uLnRvIS5zaG91bGQuZXF1YWwoWERDX1ZBTElEQVRPUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhKc29uLnZhbHVlLnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5kYXRhKTtcbiAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgoVVBMT0FEX0tZQ19NRVRIT0RfSUQpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5nYXNMaW1pdCk7XG4gICAgICBzaG91bGQuZXhpc3QodHhKc29uLm5vbmNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIG11bHRpcGxlIElQRlMgaGFzaCBmb3JtYXRzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEhhc2hlcyA9IFtcbiAgICAgICAgJ1FtUmVhbElQRlNIYXNoRXhhbXBsZTEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNCcsIC8vIHYwXG4gICAgICAgICdiYWZ5YmVpZ2R5cnp0NXNmcDd1ZG03aHU3NnVoN3kyNm5mM2VmdXlscWFiZjNvY2xndHF5NTVmYnpkaScsIC8vIHYxXG4gICAgICAgICdRbVl3QVBKenY1Q1pzbkE2MjVzM1hmMm5lbXRZZ1BwSGRXRXo3OW9qV25QYmRHJywgLy8gcmVhbCBleGFtcGxlXG4gICAgICBdO1xuXG4gICAgICBmb3IgKGNvbnN0IGhhc2ggb2YgdGVzdEhhc2hlcykge1xuICAgICAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0eGRjJyk7XG5cbiAgICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbCk7XG4gICAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgICAgICBnYXNMaW1pdDogJzEwMDAwMCcsXG4gICAgICAgIH0pO1xuICAgICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgICAgdHhCdWlsZGVyLnVwbG9hZEt5YygpLmlwZnNIYXNoKGhhc2gpO1xuXG4gICAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICAgIHNob3VsZC5leGlzdCh0eCk7XG5cbiAgICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICAgIHR4SnNvbi5kYXRhLnNob3VsZC5zdGFydFdpdGgoVVBMT0FEX0tZQ19NRVRIT0RfSUQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/unit/utils.ts"],"names":[],"mappings":""}
|