@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.
Files changed (50) hide show
  1. package/dist/src/index.d.ts +1 -0
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +2 -1
  4. package/dist/src/lib/XDCValidatorABI.json +431 -0
  5. package/dist/src/lib/index.d.ts +2 -0
  6. package/dist/src/lib/index.d.ts.map +1 -1
  7. package/dist/src/lib/index.js +9 -2
  8. package/dist/src/lib/transactionBuilder.d.ts +23 -1
  9. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  10. package/dist/src/lib/transactionBuilder.js +53 -1
  11. package/dist/src/lib/uploadKycBuilder.d.ts +73 -0
  12. package/dist/src/lib/uploadKycBuilder.d.ts.map +1 -0
  13. package/dist/src/lib/uploadKycBuilder.js +110 -0
  14. package/dist/src/lib/validatorContract.d.ts +136 -0
  15. package/dist/src/lib/validatorContract.d.ts.map +1 -0
  16. package/dist/src/lib/validatorContract.js +62 -0
  17. package/dist/src/register.d.ts.map +1 -1
  18. package/dist/src/register.js +5 -1
  19. package/dist/src/xdc.d.ts +15 -2
  20. package/dist/src/xdc.d.ts.map +1 -1
  21. package/dist/src/xdc.js +32 -1
  22. package/dist/src/xdcToken.d.ts +37 -0
  23. package/dist/src/xdcToken.d.ts.map +1 -0
  24. package/dist/src/xdcToken.js +74 -0
  25. package/dist/test/resources.d.ts +45 -0
  26. package/dist/test/resources.d.ts.map +1 -0
  27. package/dist/test/resources.js +107 -0
  28. package/dist/test/unit/getBuilder.d.ts +3 -0
  29. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  30. package/dist/test/unit/getBuilder.js +10 -0
  31. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  32. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  33. package/dist/test/unit/transactionBuilder/send.js +19 -0
  34. package/dist/test/unit/transactionBuilder/uploadKyc.d.ts +2 -0
  35. package/dist/test/unit/transactionBuilder/uploadKyc.d.ts.map +1 -0
  36. package/dist/test/unit/transactionBuilder/uploadKyc.js +215 -0
  37. package/dist/test/unit/utils.d.ts +2 -0
  38. package/dist/test/unit/utils.d.ts.map +1 -0
  39. package/dist/test/unit/utils.js +27 -0
  40. package/dist/test/unit/xdc.d.ts +2 -0
  41. package/dist/test/unit/xdc.d.ts.map +1 -0
  42. package/dist/test/unit/xdc.js +172 -0
  43. package/dist/test/unit/xdcToken.d.ts +2 -0
  44. package/dist/test/unit/xdcToken.d.ts.map +1 -0
  45. package/dist/test/unit/xdcToken.js +228 -0
  46. package/dist/tsconfig.tsbuildinfo +1 -0
  47. package/package.json +14 -10
  48. package/.eslintignore +0 -5
  49. package/.mocharc.yml +0 -8
  50. 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,3 @@
1
+ import { TransactionBuilder } from '../../src';
2
+ export declare const getBuilder: (coin: string) => TransactionBuilder;
3
+ //# sourceMappingURL=getBuilder.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=send.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=uploadKyc.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../test/unit/utils.ts"],"names":[],"mappings":""}