@bitgo-beta/sdk-coin-evm 1.0.1-beta.55 → 1.0.1-beta.551

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.
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { EthLikeTokenConfig } from '@bitgo-beta/statics';
5
+ import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo-beta/sdk-core';
6
+ import { CoinNames, EthLikeToken } from '@bitgo-beta/abstract-eth';
7
+ import { TransactionBuilder } from './lib';
8
+ export declare class EthLikeErc20Token extends EthLikeToken {
9
+ readonly tokenConfig: EthLikeTokenConfig;
10
+ private readonly coinNames;
11
+ constructor(bitgo: BitGoBase, tokenConfig: EthLikeTokenConfig, coinNames: CoinNames);
12
+ static createTokenConstructor(config: EthLikeTokenConfig, coinNames: CoinNames): CoinConstructor;
13
+ static createTokenConstructors(coinNames: CoinNames): NamedCoinConstructor[];
14
+ protected getTransactionBuilder(): TransactionBuilder;
15
+ getMPCAlgorithm(): MPCAlgorithm;
16
+ supportsTss(): boolean;
17
+ recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<Record<string, unknown>>;
18
+ getFullName(): string;
19
+ }
20
+ //# sourceMappingURL=ethLikeErc20Token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethLikeErc20Token.d.ts","sourceRoot":"","sources":["../../src/ethLikeErc20Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAS,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAU,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmC,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS;IAKnF,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe;IAIhG,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,EAAE;IAI5E,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAIrD,eAAe,IAAI,YAAY;IAI/B,WAAW,IAAI,OAAO;IAIhB,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAatG,WAAW,IAAI,MAAM;CAGtB"}
@@ -0,0 +1,49 @@
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
+ exports.EthLikeErc20Token = void 0;
7
+ /**
8
+ * @prettier
9
+ */
10
+ const statics_1 = require("@bitgo-beta/statics");
11
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
12
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
13
+ const lib_1 = require("./lib");
14
+ const assert_1 = __importDefault(require("assert"));
15
+ class EthLikeErc20Token extends abstract_eth_1.EthLikeToken {
16
+ constructor(bitgo, tokenConfig, coinNames) {
17
+ super(bitgo, tokenConfig, coinNames);
18
+ this.coinNames = coinNames;
19
+ }
20
+ static createTokenConstructor(config, coinNames) {
21
+ return (bitgo) => new this(bitgo, config, coinNames);
22
+ }
23
+ static createTokenConstructors(coinNames) {
24
+ return super.createTokenConstructors(coinNames);
25
+ }
26
+ getTransactionBuilder() {
27
+ return new lib_1.TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
28
+ }
29
+ getMPCAlgorithm() {
30
+ return 'ecdsa';
31
+ }
32
+ supportsTss() {
33
+ return true;
34
+ }
35
+ async recoveryBlockchainExplorerQuery(query) {
36
+ const family = this.getFamily();
37
+ const evmConfig = sdk_core_1.common.Environments[this.bitgo.getEnv()].evm;
38
+ (0, assert_1.default)(evmConfig && this.getFamily() in evmConfig, `env config is missing for ${this.getFamily()} in ${this.bitgo.getEnv()}`);
39
+ const explorerUrl = evmConfig[family].baseUrl;
40
+ const apiToken = evmConfig[family].apiToken;
41
+ return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
42
+ }
43
+ //TODO: implement a way to return the coin family name or coin name instead of standard ERC20 Token.
44
+ getFullName() {
45
+ return 'ERC20 Token';
46
+ }
47
+ }
48
+ exports.EthLikeErc20Token = EthLikeErc20Token;
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoTGlrZUVyYzIwVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXRoTGlrZUVyYzIwVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7O0dBRUc7QUFDSCxpREFBZ0U7QUFDaEUsbURBQThHO0FBQzlHLDJEQUFvRztBQUNwRywrQkFBMkM7QUFDM0Msb0RBQTRCO0FBRTVCLE1BQWEsaUJBQWtCLFNBQVEsMkJBQVk7SUFJakQsWUFBWSxLQUFnQixFQUFFLFdBQStCLEVBQUUsU0FBb0I7UUFDakYsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxNQUEwQixFQUFFLFNBQW9CO1FBQzVFLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxNQUFNLENBQUMsdUJBQXVCLENBQUMsU0FBb0I7UUFDakQsT0FBTyxLQUFLLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixPQUFPLElBQUksd0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsK0JBQStCLENBQUMsS0FBNkI7UUFDakUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLGlCQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDL0QsSUFBQSxnQkFBTSxFQUNKLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksU0FBUyxFQUMxQyw2QkFBNkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDMUUsQ0FBQztRQUNGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1QyxPQUFPLE1BQU0sSUFBQSw4Q0FBK0IsRUFBQyxLQUFLLEVBQUUsV0FBcUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsb0dBQW9HO0lBQ3BHLFdBQVc7UUFDVCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0NBQ0Y7QUE3Q0QsOENBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgY29pbnMsIEV0aExpa2VUb2tlbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgQml0R29CYXNlLCBDb2luQ29uc3RydWN0b3IsIGNvbW1vbiwgTVBDQWxnb3JpdGhtLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENvaW5OYW1lcywgRXRoTGlrZVRva2VuLCByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5IH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vbGliJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZXhwb3J0IGNsYXNzIEV0aExpa2VFcmMyMFRva2VuIGV4dGVuZHMgRXRoTGlrZVRva2VuIHtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuQ29uZmlnOiBFdGhMaWtlVG9rZW5Db25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29pbk5hbWVzOiBDb2luTmFtZXM7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IEV0aExpa2VUb2tlbkNvbmZpZywgY29pbk5hbWVzOiBDb2luTmFtZXMpIHtcbiAgICBzdXBlcihiaXRnbywgdG9rZW5Db25maWcsIGNvaW5OYW1lcyk7XG4gICAgdGhpcy5jb2luTmFtZXMgPSBjb2luTmFtZXM7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWc6IEV0aExpa2VUb2tlbkNvbmZpZywgY29pbk5hbWVzOiBDb2luTmFtZXMpOiBDb2luQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiAoYml0Z286IEJpdEdvQmFzZSkgPT4gbmV3IHRoaXMoYml0Z28sIGNvbmZpZywgY29pbk5hbWVzKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhjb2luTmFtZXM6IENvaW5OYW1lcyk6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10ge1xuICAgIHJldHVybiBzdXBlci5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhjb2luTmFtZXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSk7XG4gIH1cblxuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICBjb25zdCBmYW1pbHkgPSB0aGlzLmdldEZhbWlseSgpO1xuICAgIGNvbnN0IGV2bUNvbmZpZyA9IGNvbW1vbi5FbnZpcm9ubWVudHNbdGhpcy5iaXRnby5nZXRFbnYoKV0uZXZtO1xuICAgIGFzc2VydChcbiAgICAgIGV2bUNvbmZpZyAmJiB0aGlzLmdldEZhbWlseSgpIGluIGV2bUNvbmZpZyxcbiAgICAgIGBlbnYgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7dGhpcy5nZXRGYW1pbHkoKX0gaW4gJHt0aGlzLmJpdGdvLmdldEVudigpfWBcbiAgICApO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gZXZtQ29uZmlnW2ZhbWlseV0uYmFzZVVybDtcbiAgICBjb25zdCBhcGlUb2tlbiA9IGV2bUNvbmZpZ1tmYW1pbHldLmFwaVRva2VuO1xuICAgIHJldHVybiBhd2FpdCByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KHF1ZXJ5LCBleHBsb3JlclVybCBhcyBzdHJpbmcsIGFwaVRva2VuKTtcbiAgfVxuXG4gIC8vVE9ETzogaW1wbGVtZW50IGEgd2F5IHRvIHJldHVybiB0aGUgY29pbiBmYW1pbHkgbmFtZSBvciBjb2luIG5hbWUgaW5zdGVhZCBvZiBzdGFuZGFyZCBFUkMyMCBUb2tlbi5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0VSQzIwIFRva2VuJztcbiAgfVxufVxuIl19
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { EthLikeTokenConfig } from '@bitgo-beta/statics';
5
+ import { BitGoBase, CoinConstructor, MPCAlgorithm, NamedCoinConstructor } from '@bitgo-beta/sdk-core';
6
+ import { CoinNames, EthLikeToken } from '@bitgo-beta/abstract-eth';
7
+ import { TransactionBuilder } from './lib';
8
+ export declare class EthLikeErc721Token extends EthLikeToken {
9
+ readonly tokenConfig: EthLikeTokenConfig;
10
+ private readonly coinNames;
11
+ constructor(bitgo: BitGoBase, tokenConfig: EthLikeTokenConfig, coinNames: CoinNames);
12
+ static createTokenConstructor(config: EthLikeTokenConfig, coinNames: CoinNames): CoinConstructor;
13
+ static createTokenConstructors(coinNames: CoinNames): NamedCoinConstructor[];
14
+ protected getTransactionBuilder(): TransactionBuilder;
15
+ getMPCAlgorithm(): MPCAlgorithm;
16
+ supportsTss(): boolean;
17
+ recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<Record<string, unknown>>;
18
+ getFullName(): string;
19
+ }
20
+ //# sourceMappingURL=ethLikeErc721Token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ethLikeErc721Token.d.ts","sourceRoot":"","sources":["../../src/ethLikeErc721Token.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAS,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAU,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAmC,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,SAAgB,WAAW,EAAE,kBAAkB,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;gBAE1B,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS;IAKnF,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe;IAIhG,MAAM,CAAC,uBAAuB,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,EAAE;IAI5E,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;IAIrD,eAAe,IAAI,YAAY;IAI/B,WAAW,IAAI,OAAO;IAIhB,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAYtG,WAAW,IAAI,MAAM;CAGtB"}
@@ -0,0 +1,48 @@
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
+ exports.EthLikeErc721Token = void 0;
7
+ /**
8
+ * @prettier
9
+ */
10
+ const statics_1 = require("@bitgo-beta/statics");
11
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
12
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
13
+ const lib_1 = require("./lib");
14
+ const assert_1 = __importDefault(require("assert"));
15
+ class EthLikeErc721Token extends abstract_eth_1.EthLikeToken {
16
+ constructor(bitgo, tokenConfig, coinNames) {
17
+ super(bitgo, tokenConfig, coinNames);
18
+ this.coinNames = coinNames;
19
+ }
20
+ static createTokenConstructor(config, coinNames) {
21
+ return (bitgo) => new this(bitgo, config, coinNames);
22
+ }
23
+ static createTokenConstructors(coinNames) {
24
+ return super.createTokenConstructors(coinNames);
25
+ }
26
+ getTransactionBuilder() {
27
+ return new lib_1.TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
28
+ }
29
+ getMPCAlgorithm() {
30
+ return 'ecdsa';
31
+ }
32
+ supportsTss() {
33
+ return true;
34
+ }
35
+ async recoveryBlockchainExplorerQuery(query) {
36
+ const family = this.getFamily();
37
+ const evmConfig = sdk_core_1.common.Environments[this.bitgo.getEnv()].evm;
38
+ (0, assert_1.default)(evmConfig && this.getFamily() in evmConfig, `env config is missing for ${this.getFamily()} in ${this.bitgo.getEnv()}`);
39
+ const explorerUrl = evmConfig[family].baseUrl;
40
+ const apiToken = evmConfig[family].apiToken;
41
+ return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
42
+ }
43
+ getFullName() {
44
+ return 'ERC721 Token';
45
+ }
46
+ }
47
+ exports.EthLikeErc721Token = EthLikeErc721Token;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoTGlrZUVyYzcyMVRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V0aExpa2VFcmM3MjFUb2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7R0FFRztBQUNILGlEQUFnRTtBQUNoRSxtREFBOEc7QUFDOUcsMkRBQW9HO0FBQ3BHLCtCQUEyQztBQUMzQyxvREFBNEI7QUFFNUIsTUFBYSxrQkFBbUIsU0FBUSwyQkFBWTtJQUlsRCxZQUFZLEtBQWdCLEVBQUUsV0FBK0IsRUFBRSxTQUFvQjtRQUNqRixLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQTBCLEVBQUUsU0FBb0I7UUFDNUUsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxTQUFvQjtRQUNqRCxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRVMscUJBQXFCO1FBQzdCLE9BQU8sSUFBSSx3QkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxLQUE2QjtRQUNqRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDaEMsTUFBTSxTQUFTLEdBQUcsaUJBQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMvRCxJQUFBLGdCQUFNLEVBQ0osU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxTQUFTLEVBQzFDLDZCQUE2QixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMxRSxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzVDLE9BQU8sTUFBTSxJQUFBLDhDQUErQixFQUFDLEtBQUssRUFBRSxXQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBNUNELGdEQTRDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCB7IGNvaW5zLCBFdGhMaWtlVG9rZW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBjb21tb24sIE1QQ0FsZ29yaXRobSwgTmFtZWRDb2luQ29uc3RydWN0b3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb2luTmFtZXMsIEV0aExpa2VUb2tlbiwgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBjbGFzcyBFdGhMaWtlRXJjNzIxVG9rZW4gZXh0ZW5kcyBFdGhMaWtlVG9rZW4ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IEV0aExpa2VUb2tlbkNvbmZpZztcbiAgcHJpdmF0ZSByZWFkb25seSBjb2luTmFtZXM6IENvaW5OYW1lcztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnLCBjb2luTmFtZXM6IENvaW5OYW1lcykge1xuICAgIHN1cGVyKGJpdGdvLCB0b2tlbkNvbmZpZywgY29pbk5hbWVzKTtcbiAgICB0aGlzLmNvaW5OYW1lcyA9IGNvaW5OYW1lcztcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogRXRoTGlrZVRva2VuQ29uZmlnLCBjb2luTmFtZXM6IENvaW5OYW1lcyk6IENvaW5Db25zdHJ1Y3RvciB7XG4gICAgcmV0dXJuIChiaXRnbzogQml0R29CYXNlKSA9PiBuZXcgdGhpcyhiaXRnbywgY29uZmlnLCBjb2luTmFtZXMpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKGNvaW5OYW1lczogQ29pbk5hbWVzKTogTmFtZWRDb2luQ29uc3RydWN0b3JbXSB7XG4gICAgcmV0dXJuIHN1cGVyLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKGNvaW5OYW1lcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KHRoaXMuZ2V0QmFzZUNoYWluKCkpKTtcbiAgfVxuXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IGZhbWlseSA9IHRoaXMuZ2V0RmFtaWx5KCk7XG4gICAgY29uc3QgZXZtQ29uZmlnID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS5ldm07XG4gICAgYXNzZXJ0KFxuICAgICAgZXZtQ29uZmlnICYmIHRoaXMuZ2V0RmFtaWx5KCkgaW4gZXZtQ29uZmlnLFxuICAgICAgYGVudiBjb25maWcgaXMgbWlzc2luZyBmb3IgJHt0aGlzLmdldEZhbWlseSgpfSBpbiAke3RoaXMuYml0Z28uZ2V0RW52KCl9YFxuICAgICk7XG4gICAgY29uc3QgZXhwbG9yZXJVcmwgPSBldm1Db25maWdbZmFtaWx5XS5iYXNlVXJsO1xuICAgIGNvbnN0IGFwaVRva2VuID0gZXZtQ29uZmlnW2ZhbWlseV0uYXBpVG9rZW47XG4gICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkocXVlcnksIGV4cGxvcmVyVXJsIGFzIHN0cmluZywgYXBpVG9rZW4pO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ0VSQzcyMSBUb2tlbic7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { BaseCoin, BitGoBase, MPCAlgorithm, MultisigType } from '@bitgo-beta/sdk-core';
5
5
  import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
6
- import { AbstractEthLikeNewCoins, OfflineVaultTxInfo, RecoverOptions, TransactionBuilder as EthLikeTransactionBuilder, UnsignedSweepTxMPCv2 } from '@bitgo-beta/abstract-eth';
6
+ import { AbstractEthLikeNewCoins, OfflineVaultTxInfo, RecoverOptions, TransactionBuilder as EthLikeTransactionBuilder, UnsignedSweepTxMPCv2, VerifyEthTransactionOptions } from '@bitgo-beta/abstract-eth';
7
7
  export declare class EvmCoin extends AbstractEthLikeNewCoins {
8
8
  protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
9
9
  static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
@@ -14,12 +14,23 @@ export declare class EvmCoin extends AbstractEthLikeNewCoins {
14
14
  getDefaultMultisigType(): MultisigType;
15
15
  /** @inheritDoc */
16
16
  getMPCAlgorithm(): MPCAlgorithm;
17
+ /** @inheritDoc */
18
+ supportsMessageSigning(): boolean;
19
+ /** @inheritDoc */
20
+ supportsSigningTypedData(): boolean;
17
21
  protected buildUnsignedSweepTxnTSS(params: RecoverOptions): Promise<OfflineVaultTxInfo | UnsignedSweepTxMPCv2>;
18
22
  /**
19
23
  * Make a query to chain explorer for information such as balance, token balance, solidity calls
20
24
  * @param {Object} query key-value pairs of parameters to append after /api
25
+ * @param {string} apiKey optional API key to use for the query falls back to EVM config if not provided
21
26
  * @returns {Promise<Object>} response from chain explorer
22
27
  */
23
- recoveryBlockchainExplorerQuery(query: Record<string, string>): Promise<Record<string, unknown>>;
28
+ recoveryBlockchainExplorerQuery(query: Record<string, string>, apiKey?: string): Promise<Record<string, unknown>>;
29
+ /** @inheritDoc */
30
+ verifyTssTransaction(params: VerifyEthTransactionOptions): Promise<boolean>;
31
+ /**
32
+ * Verifies legacy (non-EIP-1559) TSS transactions with basic validation.
33
+ */
34
+ private verifyLegacyTssTransaction;
24
35
  }
25
36
  //# sourceMappingURL=evmCoin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evmCoin.d.ts","sourceRoot":"","sources":["../../src/evmCoin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EAEd,kBAAkB,IAAI,yBAAyB,EAC/C,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAIlC,qBAAa,OAAQ,SAAQ,uBAAuB;IAClD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,SAAS,CAAC,qBAAqB,IAAI,yBAAyB;IAI5D,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,kBAAkB;IAClB,eAAe,IAAI,YAAY;cAIf,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAOpH;;;;OAIG;IACG,+BAA+B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAWvG"}
1
+ {"version":3,"file":"evmCoin.d.ts","sourceRoot":"","sources":["../../src/evmCoin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAU,YAAY,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAkC,MAAM,qBAAqB,CAAC;AAClG,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EAEd,kBAAkB,IAAI,yBAAyB,EAC/C,oBAAoB,EACpB,2BAA2B,EAC5B,MAAM,0BAA0B,CAAC;AAKlC,qBAAa,OAAQ,SAAQ,uBAAuB;IAClD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F,SAAS,CAAC,qBAAqB,IAAI,yBAAyB;IAI5D,kBAAkB;IAClB,WAAW,IAAI,OAAO;IAItB,oBAAoB;IACpB,sBAAsB,IAAI,YAAY;IAItC,kBAAkB;IAClB,eAAe,IAAI,YAAY;IAI/B,kBAAkB;IAClB,sBAAsB,IAAI,OAAO;IAIjC,kBAAkB;IAClB,wBAAwB,IAAI,OAAO;cAInB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAOpH;;;;;OAKG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA2BnC,kBAAkB;IACZ,oBAAoB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IASjF;;OAEG;YACW,0BAA0B;CAyBzC"}
@@ -11,6 +11,7 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
11
  const statics_1 = require("@bitgo-beta/statics");
12
12
  const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
13
13
  const lib_1 = require("./lib");
14
+ const utils_1 = require("./lib/utils");
14
15
  const assert_1 = __importDefault(require("assert"));
15
16
  class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
16
17
  constructor(bitgo, staticsCoin) {
@@ -34,6 +35,14 @@ class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
34
35
  getMPCAlgorithm() {
35
36
  return 'ecdsa';
36
37
  }
38
+ /** @inheritDoc */
39
+ supportsMessageSigning() {
40
+ return true;
41
+ }
42
+ /** @inheritDoc */
43
+ supportsSigningTypedData() {
44
+ return true;
45
+ }
37
46
  async buildUnsignedSweepTxnTSS(params) {
38
47
  if (this.staticsCoin?.features.includes(statics_1.CoinFeature.MPCV2)) {
39
48
  return this.buildUnsignedSweepTxnMPCv2(params);
@@ -43,15 +52,53 @@ class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
43
52
  /**
44
53
  * Make a query to chain explorer for information such as balance, token balance, solidity calls
45
54
  * @param {Object} query key-value pairs of parameters to append after /api
55
+ * @param {string} apiKey optional API key to use for the query falls back to EVM config if not provided
46
56
  * @returns {Promise<Object>} response from chain explorer
47
57
  */
48
- async recoveryBlockchainExplorerQuery(query) {
58
+ async recoveryBlockchainExplorerQuery(query, apiKey) {
49
59
  const evmConfig = sdk_core_1.common.Environments[this.bitgo.getEnv()].evm;
50
60
  (0, assert_1.default)(evmConfig && this.getFamily() in evmConfig, `env config is missing for ${this.getFamily()} in ${this.bitgo.getEnv()}`);
51
- const apiToken = evmConfig[this.getFamily()].apiToken;
61
+ const apiToken = apiKey || evmConfig[this.getFamily()].apiToken;
52
62
  const explorerUrl = evmConfig[this.getFamily()].baseUrl;
53
- return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
63
+ switch (this.getFamily()) {
64
+ case statics_1.CoinFamily.HBAREVM:
65
+ (0, assert_1.default)(evmConfig[this.getFamily()].rpcUrl, `rpc url config is missing for ${this.getFamily()} in ${this.bitgo.getEnv()}`);
66
+ const rpcUrl = evmConfig[this.getFamily()].rpcUrl;
67
+ return await (0, utils_1.recovery_HBAREVM_BlockchainExplorerQuery)(query, rpcUrl, explorerUrl, apiToken);
68
+ default:
69
+ return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
70
+ }
71
+ }
72
+ /** @inheritDoc */
73
+ async verifyTssTransaction(params) {
74
+ const supportsEIP1559 = this.staticsCoin?.features?.includes(statics_1.CoinFeature.EIP1559);
75
+ if (supportsEIP1559) {
76
+ return await super.verifyTssTransaction(params);
77
+ }
78
+ else {
79
+ return await this.verifyLegacyTssTransaction(params);
80
+ }
81
+ }
82
+ /**
83
+ * Verifies legacy (non-EIP-1559) TSS transactions with basic validation.
84
+ */
85
+ async verifyLegacyTssTransaction(params) {
86
+ const { txParams, txPrebuild, wallet } = params;
87
+ // Basic validation for legacy transactions only
88
+ if (!txParams?.recipients &&
89
+ !(txParams.prebuildTx?.consolidateId ||
90
+ (txParams.type && ['acceleration', 'fillNonce', 'transferToken', 'tokenApproval'].includes(txParams.type)))) {
91
+ throw new Error(`missing txParams`);
92
+ }
93
+ if (!wallet || !txPrebuild) {
94
+ throw new Error(`missing params`);
95
+ }
96
+ if (txParams.hop && txParams.recipients && txParams.recipients.length > 1) {
97
+ throw new Error(`tx cannot be both a batch and hop transaction`);
98
+ }
99
+ // If validation passes, consider it verified
100
+ return true;
54
101
  }
55
102
  }
56
103
  exports.EvmCoin = EvmCoin;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldm1Db2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsbURBQThHO0FBQzlHLGlEQUFzRjtBQUN0RiwyREFPa0M7QUFDbEMsK0JBQTJDO0FBQzNDLG9EQUE0QjtBQUU1QixNQUFhLE9BQVEsU0FBUSxzQ0FBdUI7SUFDbEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixPQUFPLElBQUksd0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyx3QkFBYSxDQUFDLE9BQU8sQ0FBQztJQUMxRyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGVBQWU7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLE1BQXNCO1FBQzdELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsK0JBQStCLENBQUMsS0FBNkI7UUFDakUsTUFBTSxTQUFTLEdBQUcsaUJBQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMvRCxJQUFBLGdCQUFNLEVBQ0osU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxTQUFTLEVBQzFDLDZCQUE2QixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMxRSxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN0RCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxJQUFBLDhDQUErQixFQUFDLEtBQUssRUFBRSxXQUFxQixFQUFFLFFBQWtCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0NBQ0Y7QUFuREQsMEJBbURDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSwgY29tbW9uLCBNUENBbGdvcml0aG0sIE11bHRpc2lnVHlwZSwgbXVsdGlzaWdUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSxcbiAgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEV0aExpa2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxufSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9saWInO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5leHBvcnQgY2xhc3MgRXZtQ29pbiBleHRlbmRzIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgRXZtQ29pbihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBFdGhMaWtlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8gbXVsdGlzaWdUeXBlcy50c3MgOiBtdWx0aXNpZ1R5cGVzLm9uY2hhaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgaWYgKHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLk1QQ1YyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRVbnNpZ25lZFN3ZWVwVHhuTVBDdjIocGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBxdWVyeSB0byBjaGFpbiBleHBsb3JlciBmb3IgaW5mb3JtYXRpb24gc3VjaCBhcyBiYWxhbmNlLCB0b2tlbiBiYWxhbmNlLCBzb2xpZGl0eSBjYWxsc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcXVlcnkga2V5LXZhbHVlIHBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYXBwZW5kIGFmdGVyIC9hcGlcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gcmVzcG9uc2UgZnJvbSBjaGFpbiBleHBsb3JlclxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICBjb25zdCBldm1Db25maWcgPSBjb21tb24uRW52aXJvbm1lbnRzW3RoaXMuYml0Z28uZ2V0RW52KCldLmV2bTtcbiAgICBhc3NlcnQoXG4gICAgICBldm1Db25maWcgJiYgdGhpcy5nZXRGYW1pbHkoKSBpbiBldm1Db25maWcsXG4gICAgICBgZW52IGNvbmZpZyBpcyBtaXNzaW5nIGZvciAke3RoaXMuZ2V0RmFtaWx5KCl9IGluICR7dGhpcy5iaXRnby5nZXRFbnYoKX1gXG4gICAgKTtcblxuICAgIGNvbnN0IGFwaVRva2VuID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmFwaVRva2VuO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmJhc2VVcmw7XG4gICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5QmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkocXVlcnksIGV4cGxvcmVyVXJsIGFzIHN0cmluZywgYXBpVG9rZW4gYXMgc3RyaW5nKTtcbiAgfVxufVxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldm1Db2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsbURBQThHO0FBQzlHLGlEQUFrRztBQUNsRywyREFRa0M7QUFDbEMsK0JBQTJDO0FBQzNDLHVDQUF1RTtBQUN2RSxvREFBNEI7QUFFNUIsTUFBYSxPQUFRLFNBQVEsc0NBQXVCO0lBQ2xELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN2RSxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsd0JBQWEsQ0FBQyxPQUFPLENBQUM7SUFDMUcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixzQkFBc0I7UUFDcEIs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LENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNHLEVBQ0QsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF2SEQsMEJBdUhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSwgY29tbW9uLCBNUENBbGdvcml0aG0sIE11bHRpc2lnVHlwZSwgbXVsdGlzaWdUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIGNvaW5zLCBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSxcbiAgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEV0aExpa2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxuICBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyByZWNvdmVyeV9IQkFSRVZNX0Jsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5IH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5leHBvcnQgY2xhc3MgRXZtQ29pbiBleHRlbmRzIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgRXZtQ29pbihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBFdGhMaWtlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8gbXVsdGlzaWdUeXBlcy50c3MgOiBtdWx0aXNpZ1R5cGVzLm9uY2hhaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNNZXNzYWdlU2lnbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c1NpZ25pbmdUeXBlZERhdGEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgaWYgKHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLk1QQ1YyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRVbnNpZ25lZFN3ZWVwVHhuTVBDdjIocGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBxdWVyeSB0byBjaGFpbiBleHBsb3JlciBmb3IgaW5mb3JtYXRpb24gc3VjaCBhcyBiYWxhbmNlLCB0b2tlbiBiYWxhbmNlLCBzb2xpZGl0eSBjYWxsc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcXVlcnkga2V5LXZhbHVlIHBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYXBwZW5kIGFmdGVyIC9hcGlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUtleSBvcHRpb25hbCBBUEkga2V5IHRvIHVzZSBmb3IgdGhlIHF1ZXJ5IGZhbGxzIGJhY2sgdG8gRVZNIGNvbmZpZyBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gcmVzcG9uc2UgZnJvbSBjaGFpbiBleHBsb3JlclxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBhcGlLZXk/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IGV2bUNvbmZpZyA9IGNvbW1vbi5FbnZpcm9ubWVudHNbdGhpcy5iaXRnby5nZXRFbnYoKV0uZXZtO1xuICAgIGFzc2VydChcbiAgICAgIGV2bUNvbmZpZyAmJiB0aGlzLmdldEZhbWlseSgpIGluIGV2bUNvbmZpZyxcbiAgICAgIGBlbnYgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7dGhpcy5nZXRGYW1pbHkoKX0gaW4gJHt0aGlzLmJpdGdvLmdldEVudigpfWBcbiAgICApO1xuXG4gICAgY29uc3QgYXBpVG9rZW4gPSBhcGlLZXkgfHwgZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmFwaVRva2VuO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmJhc2VVcmw7XG4gICAgc3dpdGNoICh0aGlzLmdldEZhbWlseSgpKSB7XG4gICAgICBjYXNlIENvaW5GYW1pbHkuSEJBUkVWTTpcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIGV2bUNvbmZpZ1t0aGlzLmdldEZhbWlseSgpXS5ycGNVcmwsXG4gICAgICAgICAgYHJwYyB1cmwgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7dGhpcy5nZXRGYW1pbHkoKX0gaW4gJHt0aGlzLmJpdGdvLmdldEVudigpfWBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcnBjVXJsID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLnJwY1VybDtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5X0hCQVJFVk1fQmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgcnBjVXJsIGFzIHN0cmluZyxcbiAgICAgICAgICBleHBsb3JlclVybCBhcyBzdHJpbmcsXG4gICAgICAgICAgYXBpVG9rZW4gYXMgc3RyaW5nXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYXdhaXQgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeSwgZXhwbG9yZXJVcmwgYXMgc3RyaW5nLCBhcGlUb2tlbiBhcyBzdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhc3luYyB2ZXJpZnlUc3NUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHN1cHBvcnRzRUlQMTU1OSA9IHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzPy5pbmNsdWRlcyhDb2luRmVhdHVyZS5FSVAxNTU5KTtcbiAgICBpZiAoc3VwcG9ydHNFSVAxNTU5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgc3VwZXIudmVyaWZ5VHNzVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmVyaWZ5TGVnYWN5VHNzVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgbGVnYWN5IChub24tRUlQLTE1NTkpIFRTUyB0cmFuc2FjdGlvbnMgd2l0aCBiYXNpYyB2YWxpZGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB2ZXJpZnlMZWdhY3lUc3NUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdHhQYXJhbXMsIHR4UHJlYnVpbGQsIHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gICAgLy8gQmFzaWMgdmFsaWRhdGlvbiBmb3IgbGVnYWN5IHRyYW5zYWN0aW9ucyBvbmx5XG4gICAgaWYgKFxuICAgICAgIXR4UGFyYW1zPy5yZWNpcGllbnRzICYmXG4gICAgICAhKFxuICAgICAgICB0eFBhcmFtcy5wcmVidWlsZFR4Py5jb25zb2xpZGF0ZUlkIHx8XG4gICAgICAgICh0eFBhcmFtcy50eXBlICYmIFsnYWNjZWxlcmF0aW9uJywgJ2ZpbGxOb25jZScsICd0cmFuc2ZlclRva2VuJywgJ3Rva2VuQXBwcm92YWwnXS5pbmNsdWRlcyh0eFBhcmFtcy50eXBlKSlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyB0eFBhcmFtc2ApO1xuICAgIH1cblxuICAgIGlmICghd2FsbGV0IHx8ICF0eFByZWJ1aWxkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc3NpbmcgcGFyYW1zYCk7XG4gICAgfVxuXG4gICAgaWYgKHR4UGFyYW1zLmhvcCAmJiB0eFBhcmFtcy5yZWNpcGllbnRzICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eCBjYW5ub3QgYmUgYm90aCBhIGJhdGNoIGFuZCBob3AgdHJhbnNhY3Rpb25gKTtcbiAgICB9XG5cbiAgICAvLyBJZiB2YWxpZGF0aW9uIHBhc3NlcywgY29uc2lkZXIgaXQgdmVyaWZpZWRcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -1,4 +1,6 @@
1
1
  export * from './evmCoin';
2
2
  export * from './lib';
3
3
  export * from './register';
4
+ export * from './ethLikeErc20Token';
5
+ export * from './ethLikeErc721Token';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC"}
package/dist/src/index.js CHANGED
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./evmCoin"), exports);
18
18
  __exportStar(require("./lib"), exports);
19
19
  __exportStar(require("./register"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQix3Q0FBc0I7QUFDdEIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ldm1Db2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliJztcbmV4cG9ydCAqIGZyb20gJy4vcmVnaXN0ZXInO1xuIl19
20
+ __exportStar(require("./ethLikeErc20Token"), exports);
21
+ __exportStar(require("./ethLikeErc721Token"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQix3Q0FBc0I7QUFDdEIsNkNBQTJCO0FBQzNCLHNEQUFvQztBQUNwQyx1REFBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2V2bUNvaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWInO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlcic7XG5leHBvcnQgKiBmcm9tICcuL2V0aExpa2VFcmMyMFRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vZXRoTGlrZUVyYzcyMVRva2VuJztcbiJdfQ==
@@ -5,4 +5,13 @@ import EthereumCommon from '@ethereumjs/common';
5
5
  * @returns {EthereumCommon} Ethereum common configuration object
6
6
  */
7
7
  export declare function getCommon(coin: Readonly<BaseCoin>): EthereumCommon;
8
+ /**
9
+ *
10
+ * @param query - etherscan query parameters for the API call
11
+ * @param rpcUrl - RPC URL of the Hedera network
12
+ * @param explorerUrl - base URL of the Hedera Mirror Node API
13
+ * @param token - optional API key to use for the query
14
+ * @returns
15
+ */
16
+ export declare function recovery_HBAREVM_BlockchainExplorerQuery(query: Record<string, string>, rpcUrl: string, explorerUrl: string, token?: string): Promise<Record<string, unknown>>;
8
17
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,QAAQ,EAAmB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAGhD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAc,CAgBlE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,QAAQ,EAAmB,MAAM,qBAAqB,CAAC;AAC1F,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAIhD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAc,CAgBlE;AAQD;;;;;;;GAOG;AACH,wBAAsB,wCAAwC,CAC5D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiClC"}
@@ -4,8 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getCommon = getCommon;
7
+ exports.recovery_HBAREVM_BlockchainExplorerQuery = recovery_HBAREVM_BlockchainExplorerQuery;
7
8
  const statics_1 = require("@bitgo-beta/statics");
8
9
  const common_1 = __importDefault(require("@ethereumjs/common"));
10
+ const superagent_1 = __importDefault(require("superagent"));
9
11
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
10
12
  /**
11
13
  * @param {NetworkType} network either mainnet or testnet
@@ -25,4 +27,149 @@ function getCommon(coin) {
25
27
  eips: coin.features.includes(statics_1.CoinFeature.EIP1559) ? [1559] : undefined,
26
28
  });
27
29
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBUUEsOEJBZ0JDO0FBeEJELGlEQUEwRjtBQUMxRixnRUFBZ0Q7QUFDaEQsbURBQStEO0FBRS9EOzs7R0FHRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxJQUF3QjtJQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyw2Q0FBNkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELE9BQU8sZ0JBQWMsQ0FBQyxNQUFNLENBQzFCO1FBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtRQUN2QixTQUFTLEVBQUcsSUFBSSxDQUFDLE9BQTJCLENBQUMsT0FBTztRQUNwRCxPQUFPLEVBQUcsSUFBSSxDQUFDLE9BQTJCLENBQUMsT0FBTztLQUNuRCxFQUNEO1FBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztLQUN2RSxDQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29pbkZlYXR1cmUsIE5ldHdvcmtUeXBlLCBCYXNlQ29pbiwgRXRoZXJldW1OZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya1R5cGV9IG5ldHdvcmsgZWl0aGVyIG1haW5uZXQgb3IgdGVzdG5ldFxuICogQHJldHVybnMge0V0aGVyZXVtQ29tbW9ufSBFdGhlcmV1bSBjb21tb24gY29uZmlndXJhdGlvbiBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbihjb2luOiBSZWFkb25seTxCYXNlQ29pbj4pOiBFdGhlcmV1bUNvbW1vbiB7XG4gIGlmICghY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESykpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYENhbm5vdCB1c2UgY29tbW9uIHNkayBtb2R1bGUgZm9yIHRoZSBjb2luICR7Y29pbi5uYW1lfWApO1xuICB9XG4gIHJldHVybiBFdGhlcmV1bUNvbW1vbi5jdXN0b20oXG4gICAge1xuICAgICAgbmFtZTogY29pbi5uZXR3b3JrLm5hbWUsXG4gICAgICBuZXR3b3JrSWQ6IChjb2luLm5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKS5jaGFpbklkLFxuICAgICAgY2hhaW5JZDogKGNvaW4ubmV0d29yayBhcyBFdGhlcmV1bU5ldHdvcmspLmNoYWluSWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBiYXNlQ2hhaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ21haW5uZXQnIDogJ3NlcG9saWEnLFxuICAgICAgaGFyZGZvcms6IGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuRUlQMTU1OSkgPyAnbG9uZG9uJyA6IHVuZGVmaW5lZCxcbiAgICAgIGVpcHM6IGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuRUlQMTU1OSkgPyBbMTU1OV0gOiB1bmRlZmluZWQsXG4gICAgfVxuICApO1xufVxuIl19
30
+ function tinybarsToWei(tinybars) {
31
+ // Convert from tinybars to wei (1 HBAR = 10^8 tinybars, 1 HBAR = 10^18 wei)
32
+ // So: wei = tinybars * 10^10
33
+ return (BigInt(tinybars) * BigInt('10000000000')).toString();
34
+ }
35
+ /**
36
+ *
37
+ * @param query - etherscan query parameters for the API call
38
+ * @param rpcUrl - RPC URL of the Hedera network
39
+ * @param explorerUrl - base URL of the Hedera Mirror Node API
40
+ * @param token - optional API key to use for the query
41
+ * @returns
42
+ */
43
+ async function recovery_HBAREVM_BlockchainExplorerQuery(query, rpcUrl, explorerUrl, token) {
44
+ // Hedera Mirror Node API does not use API keys, but we keep this for compatibility
45
+ if (token) {
46
+ query.apikey = token;
47
+ }
48
+ const { module, action } = query;
49
+ // Remove trailing slash from explorerUrl if present
50
+ const baseUrl = explorerUrl.replace(/\/$/, '');
51
+ switch (`${module}.${action}`) {
52
+ case 'account.balance':
53
+ return await queryAddressBalanceHedera(query, baseUrl);
54
+ case 'account.txlist':
55
+ return await getAddressNonceHedera(query, baseUrl);
56
+ case 'account.tokenbalance':
57
+ return await queryTokenBalanceHedera(query, baseUrl);
58
+ case 'proxy.eth_gasPrice':
59
+ return await getGasPriceFromRPC(query, rpcUrl);
60
+ case 'proxy.eth_estimateGas':
61
+ return await getGasLimitFromRPC(query, rpcUrl);
62
+ case 'proxy.eth_call':
63
+ return await querySequenceIdFromRPC(query, rpcUrl);
64
+ default:
65
+ throw new Error(`Unsupported API call: ${module}.${action}`);
66
+ }
67
+ }
68
+ /**
69
+ * 1. Gets address balance using Hedera Mirror Node API
70
+ */
71
+ async function queryAddressBalanceHedera(query, baseUrl) {
72
+ const address = query.address;
73
+ const url = `${baseUrl}/accounts/${address}?transactions=false`;
74
+ const response = await superagent_1.default.get(url).send();
75
+ if (!response.ok) {
76
+ throw new Error('could not reach explorer');
77
+ }
78
+ const balance = response.body.balance?.balance || '0';
79
+ const balanceInWei = tinybarsToWei(balance);
80
+ return { result: balanceInWei };
81
+ }
82
+ /**
83
+ * 2. Gets nonce using Hedera Mirror Node API
84
+ */
85
+ async function getAddressNonceHedera(query, baseUrl) {
86
+ const address = query.address;
87
+ const accountUrl = `${baseUrl}/accounts/${address}?transactions=false`;
88
+ const response = await superagent_1.default.get(accountUrl).send();
89
+ if (!response.ok) {
90
+ throw new Error('could not reach explorer');
91
+ }
92
+ const nonce = response.body.ethereum_nonce || 0;
93
+ return { nonce: nonce };
94
+ }
95
+ /**
96
+ * 3. Gets token balance using Hedera Mirror Node API
97
+ */
98
+ async function queryTokenBalanceHedera(query, baseUrl) {
99
+ const contractAddress = query.contractaddress;
100
+ const address = query.address;
101
+ // Get token balances for the account
102
+ const url = `${baseUrl}/accounts/${address}/tokens`;
103
+ const response = await superagent_1.default.get(url).send();
104
+ if (!response.ok) {
105
+ throw new Error('could not reach explorer');
106
+ }
107
+ // Find the specific token balance
108
+ const tokens = response.body.tokens || [];
109
+ const tokenBalance = tokens.find((token) => token.token_id === contractAddress || token.contract_address === contractAddress);
110
+ const balance = tokenBalance && tokenBalance.balance !== null ? tokenBalance.balance.toString() : '0';
111
+ const balanceInWei = tinybarsToWei(balance);
112
+ return { result: balanceInWei };
113
+ }
114
+ /**
115
+ * 4. Gets sequence ID using RPC call
116
+ */
117
+ async function querySequenceIdFromRPC(query, rpcUrl) {
118
+ const { to, data } = query;
119
+ const requestBody = {
120
+ jsonrpc: '2.0',
121
+ method: 'eth_call',
122
+ params: [
123
+ {
124
+ to: to,
125
+ data: data,
126
+ },
127
+ ],
128
+ id: 1,
129
+ };
130
+ const response = await superagent_1.default.post(rpcUrl).send(requestBody).set('Content-Type', 'application/json');
131
+ if (!response.ok) {
132
+ throw new Error('could not fetch sequence ID from RPC');
133
+ }
134
+ return response.body;
135
+ }
136
+ /**
137
+ * 5. getGasPriceFromRPC - Gets gas price using Hedera Mirror Node API
138
+ */
139
+ async function getGasPriceFromRPC(query, rpcUrl) {
140
+ const requestBody = {
141
+ jsonrpc: '2.0',
142
+ method: 'eth_gasPrice',
143
+ params: [],
144
+ id: 1,
145
+ };
146
+ const response = await superagent_1.default.post(rpcUrl).send(requestBody).set('Content-Type', 'application/json');
147
+ if (!response.ok) {
148
+ throw new Error('could not fetch gas price from RPC');
149
+ }
150
+ return response.body;
151
+ }
152
+ /**
153
+ * 6. getGasLimitFromRPC - Gets gas limit estimate using RPC call.
154
+ */
155
+ async function getGasLimitFromRPC(query, rpcUrl) {
156
+ const { from, to, data } = query;
157
+ const requestBody = {
158
+ jsonrpc: '2.0',
159
+ method: 'eth_estimateGas',
160
+ params: [
161
+ {
162
+ from,
163
+ to,
164
+ data,
165
+ },
166
+ ],
167
+ id: 1,
168
+ };
169
+ const response = await superagent_1.default.post(rpcUrl).send(requestBody).set('Content-Type', 'application/json');
170
+ if (!response.ok) {
171
+ throw new Error('could not estimate gas limit from RPC');
172
+ }
173
+ return response.body;
174
+ }
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBU0EsOEJBZ0JDO0FBZ0JELDRGQXNDQztBQS9FRCxpREFBMEY7QUFDMUYsZ0VBQWdEO0FBQ2hELDREQUFpQztBQUNqQyxtREFBK0Q7QUFFL0Q7OztHQUdHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLElBQXdCO0lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLGtDQUF1QixDQUFDLDZDQUE2QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsT0FBTyxnQkFBYyxDQUFDLE1BQU0sQ0FDMUI7UUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1FBQ3ZCLFNBQVMsRUFBRyxJQUFJLENBQUMsT0FBMkIsQ0FBQyxPQUFPO1FBQ3BELE9BQU8sRUFBRyxJQUFJLENBQUMsT0FBMkIsQ0FBQyxPQUFPO0tBQ25ELEVBQ0Q7UUFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUsscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM1RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzVFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ3ZFLENBQ0YsQ0FBQztBQUNKLENB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QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztBQUN2QixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxLQUFLLFVBQVUsa0JBQWtCLENBQUMsS0FBNkIsRUFBRSxNQUFjO0lBQzdFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVqQyxNQUFNLFdBQVcsR0FBRztRQUNsQixPQUFPLEVBQUUsS0FBSztRQUNkLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSTtnQkFDSixFQUFFO2dCQUNGLElBQUk7YUFDTDtTQUNGO1FBQ0QsRUFBRSxFQUFFLENBQUM7S0FDTixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxvQkFBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBRXRHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7QUFDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvaW5GZWF0dXJlLCBOZXR3b3JrVHlwZSwgQmFzZUNvaW4sIEV0aGVyZXVtTmV0d29yayB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IEV0aGVyZXVtQ29tbW9uIGZyb20gJ0BldGhlcmV1bWpzL2NvbW1vbic7XG5pbXBvcnQgcmVxdWVzdCBmcm9tICdzdXBlcmFnZW50JztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG4vKipcbiAqIEBwYXJhbSB7TmV0d29ya1R5cGV9IG5ldHdvcmsgZWl0aGVyIG1haW5uZXQgb3IgdGVzdG5ldFxuICogQHJldHVybnMge0V0aGVyZXVtQ29tbW9ufSBFdGhlcmV1bSBjb21tb24gY29uZmlndXJhdGlvbiBvYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbihjb2luOiBSZWFkb25seTxCYXNlQ29pbj4pOiBFdGhlcmV1bUNvbW1vbiB7XG4gIGlmICghY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESykpIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYENhbm5vdCB1c2UgY29tbW9uIHNkayBtb2R1bGUgZm9yIHRoZSBjb2luICR7Y29pbi5uYW1lfWApO1xuICB9XG4gIHJldHVybiBFdGhlcmV1bUNvbW1vbi5jdXN0b20oXG4gICAge1xuICAgICAgbmFtZTogY29pbi5uZXR3b3JrLm5hbWUsXG4gICAgICBuZXR3b3JrSWQ6IChjb2luLm5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKS5jaGFpbklkLFxuICAgICAgY2hhaW5JZDogKGNvaW4ubmV0d29yayBhcyBFdGhlcmV1bU5ldHdvcmspLmNoYWluSWQsXG4gICAgfSxcbiAgICB7XG4gICAgICBiYXNlQ2hhaW46IGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUID8gJ21haW5uZXQnIDogJ3NlcG9saWEnLFxuICAgICAgaGFyZGZvcms6IGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuRUlQMTU1OSkgPyAnbG9uZG9uJyA6IHVuZGVmaW5lZCxcbiAgICAgIGVpcHM6IGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuRUlQMTU1OSkgPyBbMTU1OV0gOiB1bmRlZmluZWQsXG4gICAgfVxuICApO1xufVxuXG5mdW5jdGlvbiB0aW55YmFyc1RvV2VpKHRpbnliYXJzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBDb252ZXJ0IGZyb20gdGlueWJhcnMgdG8gd2VpICgxIEhCQVIgPSAxMF44IHRpbnliYXJzLCAxIEhCQVIgPSAxMF4xOCB3ZWkpXG4gIC8vIFNvOiB3ZWkgPSB0aW55YmFycyAqIDEwXjEwXG4gIHJldHVybiAoQmlnSW50KHRpbnliYXJzKSAqIEJpZ0ludCgnMTAwMDAwMDAwMDAnKSkudG9TdHJpbmcoKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIHF1ZXJ5IC0gZXRoZXJzY2FuIHF1ZXJ5IHBhcmFtZXRlcnMgZm9yIHRoZSBBUEkgY2FsbFxuICogQHBhcmFtIHJwY1VybCAtIFJQQyBVUkwgb2YgdGhlIEhlZGVyYSBuZXR3b3JrXG4gKiBAcGFyYW0gZXhwbG9yZXJVcmwgLSBiYXNlIFVSTCBvZiB0aGUgSGVkZXJhIE1pcnJvciBOb2RlIEFQSVxuICogQHBhcmFtIHRva2VuIC0gb3B0aW9uYWwgQVBJIGtleSB0byB1c2UgZm9yIHRoZSBxdWVyeVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlY292ZXJ5X0hCQVJFVk1fQmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBycGNVcmw6IHN0cmluZyxcbiAgZXhwbG9yZXJVcmw6IHN0cmluZyxcbiAgdG9rZW4/OiBzdHJpbmdcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgLy8gSGVkZXJhIE1pcnJvciBOb2RlIEFQSSBkb2VzIG5vdCB1c2UgQVBJIGtleXMsIGJ1dCB3ZSBrZWVwIHRoaXMgZm9yIGNvbXBhdGliaWxpdHlcbiAgaWYgKHRva2VuKSB7XG4gICAgcXVlcnkuYXBpa2V5ID0gdG9rZW47XG4gIH1cblxuICBjb25zdCB7IG1vZHVsZSwgYWN0aW9uIH0gPSBxdWVyeTtcblxuICAvLyBSZW1vdmUgdHJhaWxpbmcgc2xhc2ggZnJvbSBleHBsb3JlclVybCBpZiBwcmVzZW50XG4gIGNvbnN0IGJhc2VVcmwgPSBleHBsb3JlclVybC5yZXBsYWNlKC9cXC8kLywgJycpO1xuXG4gIHN3aXRjaCAoYCR7bW9kdWxlfS4ke2FjdGlvbn1gKSB7XG4gICAgY2FzZSAnYWNjb3VudC5iYWxhbmNlJzpcbiAgICAgIHJldHVybiBhd2FpdCBxdWVyeUFkZHJlc3NCYWxhbmNlSGVkZXJhKHF1ZXJ5LCBiYXNlVXJsKTtcblxuICAgIGNhc2UgJ2FjY291bnQudHhsaXN0JzpcbiAgICAgIHJldHVybiBhd2FpdCBnZXRBZGRyZXNzTm9uY2VIZWRlcmEocXVlcnksIGJhc2VVcmwpO1xuXG4gICAgY2FzZSAnYWNjb3VudC50b2tlbmJhbGFuY2UnOlxuICAgICAgcmV0dXJuIGF3YWl0IHF1ZXJ5VG9rZW5CYWxhbmNlSGVkZXJhKHF1ZXJ5LCBiYXNlVXJsKTtcblxuICAgIGNhc2UgJ3Byb3h5LmV0aF9nYXNQcmljZSc6XG4gICAgICByZXR1cm4gYXdhaXQgZ2V0R2FzUHJpY2VGcm9tUlBDKHF1ZXJ5LCBycGNVcmwpO1xuXG4gICAgY2FzZSAncHJveHkuZXRoX2VzdGltYXRlR2FzJzpcbiAgICAgIHJldHVybiBhd2FpdCBnZXRHYXNMaW1pdEZyb21SUEMocXVlcnksIHJwY1VybCk7XG5cbiAgICBjYXNlICdwcm94eS5ldGhfY2FsbCc6XG4gICAgICByZXR1cm4gYXdhaXQgcXVlcnlTZXF1ZW5jZUlkRnJvbVJQQyhxdWVyeSwgcnBjVXJsKTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFQSSBjYWxsOiAke21vZHVsZX0uJHthY3Rpb259YCk7XG4gIH1cbn1cblxuLyoqXG4gKiAxLiBHZXRzIGFkZHJlc3MgYmFsYW5jZSB1c2luZyBIZWRlcmEgTWlycm9yIE5vZGUgQVBJXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHF1ZXJ5QWRkcmVzc0JhbGFuY2VIZWRlcmEoXG4gIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBiYXNlVXJsOiBzdHJpbmdcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgYWRkcmVzcyA9IHF1ZXJ5LmFkZHJlc3M7XG4gIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L2FjY291bnRzLyR7YWRkcmVzc30/dHJhbnNhY3Rpb25zPWZhbHNlYDtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LmdldCh1cmwpLnNlbmQoKTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhY2ggZXhwbG9yZXInKTtcbiAgfVxuXG4gIGNvbnN0IGJhbGFuY2UgPSByZXNwb25zZS5ib2R5LmJhbGFuY2U/LmJhbGFuY2UgfHwgJzAnO1xuXG4gIGNvbnN0IGJhbGFuY2VJbldlaSA9IHRpbnliYXJzVG9XZWkoYmFsYW5jZSk7XG5cbiAgcmV0dXJuIHsgcmVzdWx0OiBiYWxhbmNlSW5XZWkgfTtcbn1cblxuLyoqXG4gKiAyLiBHZXRzIG5vbmNlIHVzaW5nIEhlZGVyYSBNaXJyb3IgTm9kZSBBUElcbiAqL1xuYXN5bmMgZnVuY3Rpb24gZ2V0QWRkcmVzc05vbmNlSGVkZXJhKHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBiYXNlVXJsOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IGFkZHJlc3MgPSBxdWVyeS5hZGRyZXNzO1xuICBjb25zdCBhY2NvdW50VXJsID0gYCR7YmFzZVVybH0vYWNjb3VudHMvJHthZGRyZXNzfT90cmFuc2FjdGlvbnM9ZmFsc2VgO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3QuZ2V0KGFjY291bnRVcmwpLnNlbmQoKTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhY2ggZXhwbG9yZXInKTtcbiAgfVxuXG4gIGNvbnN0IG5vbmNlID0gcmVzcG9uc2UuYm9keS5ldGhlcmV1bV9ub25jZSB8fCAwO1xuXG4gIHJldHVybiB7IG5vbmNlOiBub25jZSB9O1xufVxuXG4vKipcbiAqIDMuIEdldHMgdG9rZW4gYmFsYW5jZSB1c2luZyBIZWRlcmEgTWlycm9yIE5vZGUgQVBJXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHF1ZXJ5VG9rZW5CYWxhbmNlSGVkZXJhKFxuICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgYmFzZVVybDogc3RyaW5nXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9IHF1ZXJ5LmNvbnRyYWN0YWRkcmVzcztcbiAgY29uc3QgYWRkcmVzcyA9IHF1ZXJ5LmFkZHJlc3M7XG5cbiAgLy8gR2V0IHRva2VuIGJhbGFuY2VzIGZvciB0aGUgYWNjb3VudFxuICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfS9hY2NvdW50cy8ke2FkZHJlc3N9L3Rva2Vuc2A7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5nZXQodXJsKS5zZW5kKCk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWNoIGV4cGxvcmVyJyk7XG4gIH1cblxuICAvLyBGaW5kIHRoZSBzcGVjaWZpYyB0b2tlbiBiYWxhbmNlXG4gIGNvbnN0IHRva2VucyA9IHJlc3BvbnNlLmJvZHkudG9rZW5zIHx8IFtdO1xuICBjb25zdCB0b2tlbkJhbGFuY2UgPSB0b2tlbnMuZmluZChcbiAgICAodG9rZW46IHsgdG9rZW5faWQ6IHN0cmluZzsgY29udHJhY3RfYWRkcmVzczogc3RyaW5nOyBiYWxhbmNlOiBudW1iZXIgfSkgPT5cbiAgICAgIHRva2VuLnRva2VuX2lkID09PSBjb250cmFjdEFkZHJlc3MgfHwgdG9rZW4uY29udHJhY3RfYWRkcmVzcyA9PT0gY29udHJhY3RBZGRyZXNzXG4gICk7XG5cbiAgY29uc3QgYmFsYW5jZSA9IHRva2VuQmFsYW5jZSAmJiB0b2tlbkJhbGFuY2UuYmFsYW5jZSAhPT0gbnVsbCA/IHRva2VuQmFsYW5jZS5iYWxhbmNlLnRvU3RyaW5nKCkgOiAnMCc7XG5cbiAgY29uc3QgYmFsYW5jZUluV2VpID0gdGlueWJhcnNUb1dlaShiYWxhbmNlKTtcblxuICByZXR1cm4geyByZXN1bHQ6IGJhbGFuY2VJbldlaSB9O1xufVxuXG4vKipcbiAqIDQuIEdldHMgc2VxdWVuY2UgSUQgdXNpbmcgUlBDIGNhbGxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcXVlcnlTZXF1ZW5jZUlkRnJvbVJQQyhxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcnBjVXJsOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IHsgdG8sIGRhdGEgfSA9IHF1ZXJ5O1xuXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIG1ldGhvZDogJ2V0aF9jYWxsJyxcbiAgICBwYXJhbXM6IFtcbiAgICAgIHtcbiAgICAgICAgdG86IHRvLFxuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGlkOiAxLFxuICB9O1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5wb3N0KHJwY1VybCkuc2VuZChyZXF1ZXN0Qm9keSkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmZXRjaCBzZXF1ZW5jZSBJRCBmcm9tIFJQQycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG59XG5cbi8qKlxuICogNS4gZ2V0R2FzUHJpY2VGcm9tUlBDIC0gR2V0cyBnYXMgcHJpY2UgdXNpbmcgSGVkZXJhIE1pcnJvciBOb2RlIEFQSVxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRHYXNQcmljZUZyb21SUEMocXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHJwY1VybDogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCByZXF1ZXN0Qm9keSA9IHtcbiAgICBqc29ucnBjOiAnMi4wJyxcbiAgICBtZXRob2Q6ICdldGhfZ2FzUHJpY2UnLFxuICAgIHBhcmFtczogW10sXG4gICAgaWQ6IDEsXG4gIH07XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LnBvc3QocnBjVXJsKS5zZW5kKHJlcXVlc3RCb2R5KS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZldGNoIGdhcyBwcmljZSBmcm9tIFJQQycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG59XG5cbi8qKlxuICogNi4gZ2V0R2FzTGltaXRGcm9tUlBDIC0gR2V0cyBnYXMgbGltaXQgZXN0aW1hdGUgdXNpbmcgUlBDIGNhbGwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEdhc0xpbWl0RnJvbVJQQyhxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcnBjVXJsOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IHsgZnJvbSwgdG8sIGRhdGEgfSA9IHF1ZXJ5O1xuXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIG1ldGhvZDogJ2V0aF9lc3RpbWF0ZUdhcycsXG4gICAgcGFyYW1zOiBbXG4gICAgICB7XG4gICAgICAgIGZyb20sXG4gICAgICAgIHRvLFxuICAgICAgICBkYXRhLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGlkOiAxLFxuICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3QucG9zdChycGNVcmwpLnNlbmQocmVxdWVzdEJvZHkpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZXN0aW1hdGUgZ2FzIGxpbWl0IGZyb20gUlBDJyk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuYm9keTtcbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  import { BitGoBase } from '@bitgo-beta/sdk-core';
2
- export declare const register: (sdk: BitGoBase) => void;
2
+ export declare const registerAll: (sdk: BitGoBase) => void;
3
+ export declare const register: (coinFamily: string, sdk: BitGoBase) => void;
3
4
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMjD,eAAO,MAAM,WAAW,QAAS,SAAS,KAAG,IAS5C,CAAC;AAEF,eAAO,MAAM,QAAQ,eAAgB,MAAM,OAAO,SAAS,KAAG,IAkC7D,CAAC"}
@@ -1,14 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.register = void 0;
3
+ exports.register = exports.registerAll = void 0;
4
4
  const statics_1 = require("@bitgo-beta/statics");
5
5
  const evmCoin_1 = require("./evmCoin");
6
- const register = (sdk) => {
6
+ const ethLikeErc20Token_1 = require("./ethLikeErc20Token");
7
+ const ethLikeErc721Token_1 = require("./ethLikeErc721Token");
8
+ const registerAll = (sdk) => {
7
9
  statics_1.coins
8
- .filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK))
10
+ .filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK) && coin.network.type === statics_1.NetworkType.MAINNET && !coin.isToken)
9
11
  .forEach((coin) => {
10
- sdk.register(coin.name, evmCoin_1.EvmCoin.createInstance);
12
+ (0, exports.register)(coin.family, sdk);
13
+ });
14
+ };
15
+ exports.registerAll = registerAll;
16
+ const register = (coinFamily, sdk) => {
17
+ const coinFeatures = statics_1.coins.get(coinFamily).features;
18
+ statics_1.coins
19
+ .filter((coin) => coin.family === coinFamily && !coin.isToken)
20
+ .forEach((coin) => {
21
+ // Handle SHARED_EVM_SDK registration
22
+ if (coinFeatures.includes(statics_1.CoinFeature.SHARED_EVM_SDK)) {
23
+ sdk.register(coin.name, evmCoin_1.EvmCoin.createInstance);
24
+ }
25
+ // Handle SUPPORTS_ERC20 registration
26
+ if (coinFeatures.includes(statics_1.CoinFeature.SUPPORTS_ERC20)) {
27
+ const coinNames = {
28
+ Mainnet: `${coin.name}`,
29
+ Testnet: `${coin.name}`,
30
+ };
31
+ ethLikeErc20Token_1.EthLikeErc20Token.createTokenConstructors(coinNames).forEach(({ name, coinConstructor }) => {
32
+ sdk.register(name, coinConstructor);
33
+ });
34
+ }
35
+ // Handle SUPPORTS_ERC721 registration
36
+ if (coinFeatures.includes(statics_1.CoinFeature.SUPPORTS_ERC721)) {
37
+ const coinNames = {
38
+ Mainnet: `${coin.name}`,
39
+ Testnet: `${coin.name}`,
40
+ };
41
+ ethLikeErc721Token_1.EthLikeErc721Token.createTokenConstructors(coinNames).forEach(({ name, coinConstructor }) => {
42
+ sdk.register(name, coinConstructor);
43
+ });
44
+ }
11
45
  });
12
46
  };
13
47
  exports.register = register;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQXlEO0FBQ3pELHVDQUFvQztBQUU3QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLGVBQUs7U0FDRixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDcEUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFOVyxRQUFBLFFBQVEsWUFNbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb2luRmVhdHVyZSwgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEV2bUNvaW4gfSBmcm9tICcuL2V2bUNvaW4nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgY29pbnNcbiAgICAuZmlsdGVyKChjb2luKSA9PiBjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0RLKSlcbiAgICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgc2RrLnJlZ2lzdGVyKGNvaW4ubmFtZSwgRXZtQ29pbi5jcmVhdGVJbnN0YW5jZSk7XG4gICAgfSk7XG59O1xuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQXNFO0FBQ3RFLHVDQUFvQztBQUNwQywyREFBd0Q7QUFDeEQsNkRBQTBEO0FBRW5ELE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBYyxFQUFRLEVBQUU7SUFDbEQsZUFBSztTQUNGLE1BQU0sQ0FDTCxDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxxQkFBVyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQ25IO1NBQ0EsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIsSUFBQSxnQkFBUSxFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFUVyxRQUFBLFdBQVcsZUFTdEI7QUFFSyxNQUFNLFFBQVEsR0FBRyxDQUFDLFVBQWtCLEVBQUUsR0FBYyxFQUFRLEVBQUU7SUFDbkUsTUFBTSxZQUFZLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDcEQsZUFBSztTQUNGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQzdELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ2hCLHFDQUFxQztRQUNyQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3RELEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxNQUFNLFNBQVMsR0FBRztnQkFDaEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDdkIsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTthQUN4QixDQUFDO1lBRUYscUNBQWlCLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRTtnQkFDekYsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsc0NBQXNDO1FBQ3RDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsTUFBTSxTQUFTLEdBQUc7Z0JBQ2hCLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZCLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDeEIsQ0FBQztZQUVGLHVDQUFrQixDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUU7Z0JBQzFGLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBbENXLFFBQUEsUUFBUSxZQWtDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBDb2luRmVhdHVyZSwgY29pbnMsIE5ldHdvcmtUeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBFdm1Db2luIH0gZnJvbSAnLi9ldm1Db2luJztcbmltcG9ydCB7IEV0aExpa2VFcmMyMFRva2VuIH0gZnJvbSAnLi9ldGhMaWtlRXJjMjBUb2tlbic7XG5pbXBvcnQgeyBFdGhMaWtlRXJjNzIxVG9rZW4gfSBmcm9tICcuL2V0aExpa2VFcmM3MjFUb2tlbic7XG5cbmV4cG9ydCBjb25zdCByZWdpc3RlckFsbCA9IChzZGs6IEJpdEdvQmFzZSk6IHZvaWQgPT4ge1xuICBjb2luc1xuICAgIC5maWx0ZXIoXG4gICAgICAoY29pbikgPT5cbiAgICAgICAgY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESykgJiYgY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgJiYgIWNvaW4uaXNUb2tlblxuICAgIClcbiAgICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgcmVnaXN0ZXIoY29pbi5mYW1pbHksIHNkayk7XG4gICAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoY29pbkZhbWlseTogc3RyaW5nLCBzZGs6IEJpdEdvQmFzZSk6IHZvaWQgPT4ge1xuICBjb25zdCBjb2luRmVhdHVyZXMgPSBjb2lucy5nZXQoY29pbkZhbWlseSkuZmVhdHVyZXM7XG4gIGNvaW5zXG4gICAgLmZpbHRlcigoY29pbikgPT4gY29pbi5mYW1pbHkgPT09IGNvaW5GYW1pbHkgJiYgIWNvaW4uaXNUb2tlbilcbiAgICAuZm9yRWFjaCgoY29pbikgPT4ge1xuICAgICAgLy8gSGFuZGxlIFNIQVJFRF9FVk1fU0RLIHJlZ2lzdHJhdGlvblxuICAgICAgaWYgKGNvaW5GZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5TSEFSRURfRVZNX1NESykpIHtcbiAgICAgICAgc2RrLnJlZ2lzdGVyKGNvaW4ubmFtZSwgRXZtQ29pbi5jcmVhdGVJbnN0YW5jZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBTVVBQT1JUU19FUkMyMCByZWdpc3RyYXRpb25cbiAgICAgIGlmIChjb2luRmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU1VQUE9SVFNfRVJDMjApKSB7XG4gICAgICAgIGNvbnN0IGNvaW5OYW1lcyA9IHtcbiAgICAgICAgICBNYWlubmV0OiBgJHtjb2luLm5hbWV9YCxcbiAgICAgICAgICBUZXN0bmV0OiBgJHtjb2luLm5hbWV9YCxcbiAgICAgICAgfTtcblxuICAgICAgICBFdGhMaWtlRXJjMjBUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhjb2luTmFtZXMpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICAgICAgICBzZGsucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSBTVVBQT1JUU19FUkM3MjEgcmVnaXN0cmF0aW9uXG4gICAgICBpZiAoY29pbkZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzcyMSkpIHtcbiAgICAgICAgY29uc3QgY29pbk5hbWVzID0ge1xuICAgICAgICAgIE1haW5uZXQ6IGAke2NvaW4ubmFtZX1gLFxuICAgICAgICAgIFRlc3RuZXQ6IGAke2NvaW4ubmFtZX1gLFxuICAgICAgICB9O1xuXG4gICAgICAgIEV0aExpa2VFcmM3MjFUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyhjb2luTmFtZXMpLmZvckVhY2goKHsgbmFtZSwgY29pbkNvbnN0cnVjdG9yIH0pID0+IHtcbiAgICAgICAgICBzZGsucmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59O1xuIl19
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-evm",
3
- "version": "1.0.1-beta.55",
3
+ "version": "1.0.1-beta.551",
4
4
  "description": "Configurable common module for EVM assets, using @bitgo-beta/abstract-eth for reduced coin integration boilerplate.",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "yarn tsc --build --incremental --verbose .",
9
9
  "fmt": "prettier --write .",
10
- "check-fmt": "prettier --check .",
10
+ "check-fmt": "prettier --check '**/*.{ts,js,json}'",
11
11
  "clean": "rm -r ./dist",
12
12
  "lint": "eslint --quiet .",
13
13
  "test": "npm run coverage",
@@ -16,10 +16,11 @@
16
16
  "prepare": "npm run build"
17
17
  },
18
18
  "dependencies": {
19
- "@bitgo-beta/abstract-eth": "1.0.2-beta.1226",
20
- "@bitgo-beta/sdk-core": "8.2.1-beta.996",
21
- "@bitgo-beta/statics": "15.1.1-beta.999",
22
- "@ethereumjs/common": "^2.6.5"
19
+ "@bitgo-beta/abstract-eth": "1.0.2-beta.1722",
20
+ "@bitgo-beta/sdk-core": "8.2.1-beta.1492",
21
+ "@bitgo-beta/statics": "15.1.1-beta.1495",
22
+ "@ethereumjs/common": "^2.6.5",
23
+ "superagent": "^9.0.1"
23
24
  },
24
25
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
25
26
  "license": "MIT",
@@ -45,5 +46,5 @@
45
46
  ".ts"
46
47
  ]
47
48
  },
48
- "gitHead": "1d5101f1b0ae209e91f315356b62aa33106c52ac"
49
+ "gitHead": "fab941dc80665db9cdb100ba9c883bbe595a44a7"
49
50
  }