@bitgo-beta/sdk-coin-evm 1.0.1-beta.5 → 1.0.1-beta.500

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,36 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase, MPCAlgorithm, MultisigType } from '@bitgo-beta/sdk-core';
5
+ import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
6
+ import { AbstractEthLikeNewCoins, OfflineVaultTxInfo, RecoverOptions, TransactionBuilder as EthLikeTransactionBuilder, UnsignedSweepTxMPCv2, VerifyEthTransactionOptions } from '@bitgo-beta/abstract-eth';
7
+ export declare class EvmCoin extends AbstractEthLikeNewCoins {
8
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
9
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
10
+ protected getTransactionBuilder(): EthLikeTransactionBuilder;
11
+ /** @inheritDoc */
12
+ supportsTss(): boolean;
13
+ /** inherited doc */
14
+ getDefaultMultisigType(): MultisigType;
15
+ /** @inheritDoc */
16
+ getMPCAlgorithm(): MPCAlgorithm;
17
+ /** @inheritDoc */
18
+ supportsMessageSigning(): boolean;
19
+ /** @inheritDoc */
20
+ supportsSigningTypedData(): boolean;
21
+ protected buildUnsignedSweepTxnTSS(params: RecoverOptions): Promise<OfflineVaultTxInfo | UnsignedSweepTxMPCv2>;
22
+ /**
23
+ * Make a query to chain explorer for information such as balance, token balance, solidity calls
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
26
+ * @returns {Promise<Object>} response from chain explorer
27
+ */
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;
35
+ }
36
+ //# sourceMappingURL=evmCoin.d.ts.map
@@ -0,0 +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,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"}
@@ -0,0 +1,104 @@
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.EvmCoin = void 0;
7
+ /**
8
+ * @prettier
9
+ */
10
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
11
+ const statics_1 = require("@bitgo-beta/statics");
12
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
13
+ const lib_1 = require("./lib");
14
+ const utils_1 = require("./lib/utils");
15
+ const assert_1 = __importDefault(require("assert"));
16
+ class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
17
+ constructor(bitgo, staticsCoin) {
18
+ super(bitgo, staticsCoin);
19
+ }
20
+ static createInstance(bitgo, staticsCoin) {
21
+ return new EvmCoin(bitgo, staticsCoin);
22
+ }
23
+ getTransactionBuilder() {
24
+ return new lib_1.TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
25
+ }
26
+ /** @inheritDoc */
27
+ supportsTss() {
28
+ return this.staticsCoin?.features.includes(statics_1.CoinFeature.TSS) ?? false;
29
+ }
30
+ /** inherited doc */
31
+ getDefaultMultisigType() {
32
+ return this.staticsCoin?.features.includes(statics_1.CoinFeature.TSS) ? sdk_core_1.multisigTypes.tss : sdk_core_1.multisigTypes.onchain;
33
+ }
34
+ /** @inheritDoc */
35
+ getMPCAlgorithm() {
36
+ return 'ecdsa';
37
+ }
38
+ /** @inheritDoc */
39
+ supportsMessageSigning() {
40
+ return true;
41
+ }
42
+ /** @inheritDoc */
43
+ supportsSigningTypedData() {
44
+ return true;
45
+ }
46
+ async buildUnsignedSweepTxnTSS(params) {
47
+ if (this.staticsCoin?.features.includes(statics_1.CoinFeature.MPCV2)) {
48
+ return this.buildUnsignedSweepTxnMPCv2(params);
49
+ }
50
+ return super.buildUnsignedSweepTxnTSS(params);
51
+ }
52
+ /**
53
+ * Make a query to chain explorer for information such as balance, token balance, solidity calls
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
56
+ * @returns {Promise<Object>} response from chain explorer
57
+ */
58
+ async recoveryBlockchainExplorerQuery(query, apiKey) {
59
+ const evmConfig = sdk_core_1.common.Environments[this.bitgo.getEnv()].evm;
60
+ (0, assert_1.default)(evmConfig && this.getFamily() in evmConfig, `env config is missing for ${this.getFamily()} in ${this.bitgo.getEnv()}`);
61
+ const apiToken = apiKey || evmConfig[this.getFamily()].apiToken;
62
+ const explorerUrl = evmConfig[this.getFamily()].baseUrl;
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;
101
+ }
102
+ }
103
+ exports.EvmCoin = EvmCoin;
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldm1Db2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsbURBQThHO0FBQzlHLGlEQUFrRztBQUNsRywyREFRa0M7QUFDbEMsK0JBQTJDO0FBQzNDLHVDQUF1RTtBQUN2RSxvREFBNEI7QUFFNUIsTUFBYSxPQUFRLFNBQVEsc0NBQXVCO0lBQ2xELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUN2RSxDQUFDO0lBRUQsb0JBQW9CO0lBQ3BCLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsd0JBQWEsQ0FBQyxPQUFPLENBQUM7SUFDMUcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixzQkFBc0I7UUFDcEIs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LENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzNHLEVBQ0QsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUUsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCw2Q0FBNkM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUF2SEQsMEJBdUhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSwgY29tbW9uLCBNUENBbGdvcml0aG0sIE11bHRpc2lnVHlwZSwgbXVsdGlzaWdUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIGNvaW5zLCBDb2luRmFtaWx5IH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSxcbiAgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEV0aExpa2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxuICBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgeyByZWNvdmVyeV9IQkFSRVZNX0Jsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5IH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5leHBvcnQgY2xhc3MgRXZtQ29pbiBleHRlbmRzIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgRXZtQ29pbihiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBFdGhMaWtlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlcihjb2lucy5nZXQodGhpcy5nZXRCYXNlQ2hhaW4oKSkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8/IGZhbHNlO1xuICB9XG5cbiAgLyoqIGluaGVyaXRlZCBkb2MgKi9cbiAgZ2V0RGVmYXVsdE11bHRpc2lnVHlwZSgpOiBNdWx0aXNpZ1R5cGUge1xuICAgIHJldHVybiB0aGlzLnN0YXRpY3NDb2luPy5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5UU1MpID8gbXVsdGlzaWdUeXBlcy50c3MgOiBtdWx0aXNpZ1R5cGVzLm9uY2hhaW47XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNNZXNzYWdlU2lnbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c1NpZ25pbmdUeXBlZERhdGEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgaWYgKHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLk1QQ1YyKSkge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRVbnNpZ25lZFN3ZWVwVHhuTVBDdjIocGFyYW1zKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgYSBxdWVyeSB0byBjaGFpbiBleHBsb3JlciBmb3IgaW5mb3JtYXRpb24gc3VjaCBhcyBiYWxhbmNlLCB0b2tlbiBiYWxhbmNlLCBzb2xpZGl0eSBjYWxsc1xuICAgKiBAcGFyYW0ge09iamVjdH0gcXVlcnkga2V5LXZhbHVlIHBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYXBwZW5kIGFmdGVyIC9hcGlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUtleSBvcHRpb25hbCBBUEkga2V5IHRvIHVzZSBmb3IgdGhlIHF1ZXJ5IGZhbGxzIGJhY2sgdG8gRVZNIGNvbmZpZyBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gcmVzcG9uc2UgZnJvbSBjaGFpbiBleHBsb3JlclxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBhcGlLZXk/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIGNvbnN0IGV2bUNvbmZpZyA9IGNvbW1vbi5FbnZpcm9ubWVudHNbdGhpcy5iaXRnby5nZXRFbnYoKV0uZXZtO1xuICAgIGFzc2VydChcbiAgICAgIGV2bUNvbmZpZyAmJiB0aGlzLmdldEZhbWlseSgpIGluIGV2bUNvbmZpZyxcbiAgICAgIGBlbnYgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7dGhpcy5nZXRGYW1pbHkoKX0gaW4gJHt0aGlzLmJpdGdvLmdldEVudigpfWBcbiAgICApO1xuXG4gICAgY29uc3QgYXBpVG9rZW4gPSBhcGlLZXkgfHwgZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmFwaVRva2VuO1xuICAgIGNvbnN0IGV4cGxvcmVyVXJsID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLmJhc2VVcmw7XG4gICAgc3dpdGNoICh0aGlzLmdldEZhbWlseSgpKSB7XG4gICAgICBjYXNlIENvaW5GYW1pbHkuSEJBUkVWTTpcbiAgICAgICAgYXNzZXJ0KFxuICAgICAgICAgIGV2bUNvbmZpZ1t0aGlzLmdldEZhbWlseSgpXS5ycGNVcmwsXG4gICAgICAgICAgYHJwYyB1cmwgY29uZmlnIGlzIG1pc3NpbmcgZm9yICR7dGhpcy5nZXRGYW1pbHkoKX0gaW4gJHt0aGlzLmJpdGdvLmdldEVudigpfWBcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcnBjVXJsID0gZXZtQ29uZmlnW3RoaXMuZ2V0RmFtaWx5KCldLnJwY1VybDtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHJlY292ZXJ5X0hCQVJFVk1fQmxvY2tjaGFpbkV4cGxvcmVyUXVlcnkoXG4gICAgICAgICAgcXVlcnksXG4gICAgICAgICAgcnBjVXJsIGFzIHN0cmluZyxcbiAgICAgICAgICBleHBsb3JlclVybCBhcyBzdHJpbmcsXG4gICAgICAgICAgYXBpVG9rZW4gYXMgc3RyaW5nXG4gICAgICAgICk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYXdhaXQgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeSwgZXhwbG9yZXJVcmwgYXMgc3RyaW5nLCBhcGlUb2tlbiBhcyBzdHJpbmcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhc3luYyB2ZXJpZnlUc3NUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHN1cHBvcnRzRUlQMTU1OSA9IHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzPy5pbmNsdWRlcyhDb2luRmVhdHVyZS5FSVAxNTU5KTtcbiAgICBpZiAoc3VwcG9ydHNFSVAxNTU5KSB7XG4gICAgICByZXR1cm4gYXdhaXQgc3VwZXIudmVyaWZ5VHNzVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMudmVyaWZ5TGVnYWN5VHNzVHJhbnNhY3Rpb24ocGFyYW1zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgbGVnYWN5IChub24tRUlQLTE1NTkpIFRTUyB0cmFuc2FjdGlvbnMgd2l0aCBiYXNpYyB2YWxpZGF0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB2ZXJpZnlMZWdhY3lUc3NUcmFuc2FjdGlvbihwYXJhbXM6IFZlcmlmeUV0aFRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgdHhQYXJhbXMsIHR4UHJlYnVpbGQsIHdhbGxldCB9ID0gcGFyYW1zO1xuXG4gICAgLy8gQmFzaWMgdmFsaWRhdGlvbiBmb3IgbGVnYWN5IHRyYW5zYWN0aW9ucyBvbmx5XG4gICAgaWYgKFxuICAgICAgIXR4UGFyYW1zPy5yZWNpcGllbnRzICYmXG4gICAgICAhKFxuICAgICAgICB0eFBhcmFtcy5wcmVidWlsZFR4Py5jb25zb2xpZGF0ZUlkIHx8XG4gICAgICAgICh0eFBhcmFtcy50eXBlICYmIFsnYWNjZWxlcmF0aW9uJywgJ2ZpbGxOb25jZScsICd0cmFuc2ZlclRva2VuJywgJ3Rva2VuQXBwcm92YWwnXS5pbmNsdWRlcyh0eFBhcmFtcy50eXBlKSlcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyB0eFBhcmFtc2ApO1xuICAgIH1cblxuICAgIGlmICghd2FsbGV0IHx8ICF0eFByZWJ1aWxkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG1pc3NpbmcgcGFyYW1zYCk7XG4gICAgfVxuXG4gICAgaWYgKHR4UGFyYW1zLmhvcCAmJiB0eFBhcmFtcy5yZWNpcGllbnRzICYmIHR4UGFyYW1zLnJlY2lwaWVudHMubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB0eCBjYW5ub3QgYmUgYm90aCBhIGJhdGNoIGFuZCBob3AgdHJhbnNhY3Rpb25gKTtcbiAgICB9XG5cbiAgICAvLyBJZiB2YWxpZGF0aW9uIHBhc3NlcywgY29uc2lkZXIgaXQgdmVyaWZpZWRcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
@@ -1 +1,5 @@
1
+ export * from './evmCoin';
2
+ export * from './lib';
3
+ export * from './register';
4
+ export * from './ethLikeErc20Token';
1
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
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"}
package/dist/src/index.js CHANGED
@@ -1 +1,21 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIiJdfQ==
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./evmCoin"), exports);
18
+ __exportStar(require("./lib"), exports);
19
+ __exportStar(require("./register"), exports);
20
+ __exportStar(require("./ethLikeErc20Token"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQix3Q0FBc0I7QUFDdEIsNkNBQTJCO0FBQzNCLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXZtQ29pbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXRoTGlrZUVyYzIwVG9rZW4nO1xuIl19
@@ -0,0 +1,6 @@
1
+ import * as Utils from './utils';
2
+ export { TransactionBuilder } from './transactionBuilder';
3
+ export { TransferBuilder } from './transferBuilder';
4
+ export { Transaction, KeyPair } from '@bitgo-beta/abstract-eth';
5
+ export { Utils };
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Utils = exports.KeyPair = exports.Transaction = exports.TransferBuilder = exports.TransactionBuilder = void 0;
37
+ const Utils = __importStar(require("./utils"));
38
+ exports.Utils = Utils;
39
+ var transactionBuilder_1 = require("./transactionBuilder");
40
+ Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
41
+ var transferBuilder_1 = require("./transferBuilder");
42
+ Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
43
+ var abstract_eth_1 = require("@bitgo-beta/abstract-eth");
44
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_eth_1.Transaction; } });
45
+ Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return abstract_eth_1.KeyPair; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUt4QixzQkFBSztBQUhkLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUFnRTtBQUF2RCwyR0FBQSxXQUFXLE9BQUE7QUFBRSx1R0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24sIEtleVBhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import { TransactionBuilder as AbstractTransactionBuilder } from '@bitgo-beta/abstract-eth';
3
+ import { TransferBuilder } from './transferBuilder';
4
+ export declare class TransactionBuilder extends AbstractTransactionBuilder {
5
+ protected _transfer: TransferBuilder;
6
+ private _signatures;
7
+ constructor(_coinConfig: Readonly<CoinConfig>);
8
+ /** @inheritdoc */
9
+ transfer(data?: string): TransferBuilder;
10
+ addSignature(publicKey: any, signature: any): void;
11
+ protected getContractData(addresses: string[]): string;
12
+ }
13
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAe,MAAM,0BAA0B,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;IACrC,OAAO,CAAC,WAAW,CAAM;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC,YAAY,CAAC,SAAS,KAAA,EAAE,SAAS,KAAA;IAKjC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;CAGvD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
6
+ const utils_1 = require("./utils");
7
+ const transferBuilder_1 = require("./transferBuilder");
8
+ class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
9
+ constructor(_coinConfig) {
10
+ super(_coinConfig);
11
+ this._common = (0, utils_1.getCommon)(this._coinConfig);
12
+ this.transaction = new abstract_eth_1.Transaction(this._coinConfig, this._common);
13
+ }
14
+ /** @inheritdoc */
15
+ transfer(data) {
16
+ if (this._type !== sdk_core_1.TransactionType.Send) {
17
+ throw new sdk_core_1.BuildTransactionError('Transfers can only be set for send transactions');
18
+ }
19
+ if (!this._transfer) {
20
+ this._transfer = new transferBuilder_1.TransferBuilder(data);
21
+ }
22
+ return this._transfer;
23
+ }
24
+ addSignature(publicKey, signature) {
25
+ this._signatures = [];
26
+ this._signatures.push({ publicKey, signature });
27
+ }
28
+ getContractData(addresses) {
29
+ throw new Error('Method not implemented.');
30
+ }
31
+ }
32
+ exports.TransactionBuilder = TransactionBuilder;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQThFO0FBQzlFLDJEQUF5RztBQUN6RyxtQ0FBb0M7QUFDcEMsdURBQW9EO0FBRXBELE1BQWEsa0JBQW1CLFNBQVEsaUNBQTBCO0lBSWhFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFFBQVEsQ0FBQyxJQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUztRQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFUyxlQUFlLENBQUMsU0FBbUI7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQTdCRCxnREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciBhcyBBYnN0cmFjdFRyYW5zYWN0aW9uQnVpbGRlciwgVHJhbnNhY3Rpb24gfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgZ2V0Q29tbW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNmZXI6IFRyYW5zZmVyQnVpbGRlcjtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlczogYW55O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl9jb21tb24gPSBnZXRDb21tb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0aGlzLl9jb21tb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl90cmFuc2Zlcikge1xuICAgICAgdGhpcy5fdHJhbnNmZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXI7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29udHJhY3REYXRhKGFkZHJlc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export { TransferBuilder } from '@bitgo-beta/abstract-eth';
2
+ //# sourceMappingURL=transferBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransferBuilder = void 0;
4
+ var abstract_eth_1 = require("@bitgo-beta/abstract-eth");
5
+ Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return abstract_eth_1.TransferBuilder; } });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQTJEO0FBQWxELCtHQUFBLGVBQWUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { BaseCoin } from '@bitgo-beta/statics';
2
+ import EthereumCommon from '@ethereumjs/common';
3
+ /**
4
+ * @param {NetworkType} network either mainnet or testnet
5
+ * @returns {EthereumCommon} Ethereum common configuration object
6
+ */
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>>;
17
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +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;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"}
@@ -0,0 +1,175 @@
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.getCommon = getCommon;
7
+ exports.recovery_HBAREVM_BlockchainExplorerQuery = recovery_HBAREVM_BlockchainExplorerQuery;
8
+ const statics_1 = require("@bitgo-beta/statics");
9
+ const common_1 = __importDefault(require("@ethereumjs/common"));
10
+ const superagent_1 = __importDefault(require("superagent"));
11
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
12
+ /**
13
+ * @param {NetworkType} network either mainnet or testnet
14
+ * @returns {EthereumCommon} Ethereum common configuration object
15
+ */
16
+ function getCommon(coin) {
17
+ if (!coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK)) {
18
+ throw new sdk_core_1.InvalidTransactionError(`Cannot use common sdk module for the coin ${coin.name}`);
19
+ }
20
+ return common_1.default.custom({
21
+ name: coin.network.name,
22
+ networkId: coin.network.chainId,
23
+ chainId: coin.network.chainId,
24
+ }, {
25
+ baseChain: coin.network.type === statics_1.NetworkType.MAINNET ? 'mainnet' : 'sepolia',
26
+ hardfork: coin.features.includes(statics_1.CoinFeature.EIP1559) ? 'london' : undefined,
27
+ eips: coin.features.includes(statics_1.CoinFeature.EIP1559) ? [1559] : undefined,
28
+ });
29
+ }
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}`;
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}`;
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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QU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7R0FFRztBQUNILEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxLQUE2QixFQUFFLE1BQWM7SUFDN0UsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRWpDLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsTUFBTSxFQUFFLGlCQUFpQjtRQUN6QixNQUFNLEVBQUU7WUFDTjtnQkFDRSxJQUFJO2dCQUNKLEVBQUU7Z0JBQ0YsSUFBSTthQUNMO1NBQ0Y7UUFDRCxFQUFFLEVBQUUsQ0FBQztLQUNOLENBQUM7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLG9CQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFdEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29pbkZlYXR1cmUsIE5ldHdvcmtUeXBlLCBCYXNlQ29pbiwgRXRoZXJldW1OZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCByZXF1ZXN0IGZyb20gJ3N1cGVyYWdlbnQnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbi8qKlxuICogQHBhcmFtIHtOZXR3b3JrVHlwZX0gbmV0d29yayBlaXRoZXIgbWFpbm5ldCBvciB0ZXN0bmV0XG4gKiBAcmV0dXJucyB7RXRoZXJldW1Db21tb259IEV0aGVyZXVtIGNvbW1vbiBjb25maWd1cmF0aW9uIG9iamVjdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbW9uKGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPik6IEV0aGVyZXVtQ29tbW9uIHtcbiAgaWYgKCFjb2luLmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNIQVJFRF9FVk1fU0RLKSkge1xuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcihgQ2Fubm90IHVzZSBjb21tb24gc2RrIG1vZHVsZSBmb3IgdGhlIGNvaW4gJHtjb2luLm5hbWV9YCk7XG4gIH1cbiAgcmV0dXJuIEV0aGVyZXVtQ29tbW9uLmN1c3RvbShcbiAgICB7XG4gICAgICBuYW1lOiBjb2luLm5ldHdvcmsubmFtZSxcbiAgICAgIG5ldHdvcmtJZDogKGNvaW4ubmV0d29yayBhcyBFdGhlcmV1bU5ldHdvcmspLmNoYWluSWQsXG4gICAgICBjaGFpbklkOiAoY29pbi5uZXR3b3JrIGFzIEV0aGVyZXVtTmV0d29yaykuY2hhaW5JZCxcbiAgICB9LFxuICAgIHtcbiAgICAgIGJhc2VDaGFpbjogY29pbi5uZXR3b3JrLnR5cGUgPT09IE5ldHdvcmtUeXBlLk1BSU5ORVQgPyAnbWFpbm5ldCcgOiAnc2Vwb2xpYScsXG4gICAgICBoYXJkZm9yazogY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5FSVAxNTU5KSA/ICdsb25kb24nIDogdW5kZWZpbmVkLFxuICAgICAgZWlwczogY29pbi5mZWF0dXJlcy5pbmNsdWRlcyhDb2luRmVhdHVyZS5FSVAxNTU5KSA/IFsxNTU5XSA6IHVuZGVmaW5lZCxcbiAgICB9XG4gICk7XG59XG5cbmZ1bmN0aW9uIHRpbnliYXJzVG9XZWkodGlueWJhcnM6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIENvbnZlcnQgZnJvbSB0aW55YmFycyB0byB3ZWkgKDEgSEJBUiA9IDEwXjggdGlueWJhcnMsIDEgSEJBUiA9IDEwXjE4IHdlaSlcbiAgLy8gU286IHdlaSA9IHRpbnliYXJzICogMTBeMTBcbiAgcmV0dXJuIChCaWdJbnQodGlueWJhcnMpICogQmlnSW50KCcxMDAwMDAwMDAwMCcpKS50b1N0cmluZygpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gcXVlcnkgLSBldGhlcnNjYW4gcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIEFQSSBjYWxsXG4gKiBAcGFyYW0gcnBjVXJsIC0gUlBDIFVSTCBvZiB0aGUgSGVkZXJhIG5ldHdvcmtcbiAqIEBwYXJhbSBleHBsb3JlclVybCAtIGJhc2UgVVJMIG9mIHRoZSBIZWRlcmEgTWlycm9yIE5vZGUgQVBJXG4gKiBAcGFyYW0gdG9rZW4gLSBvcHRpb25hbCBBUEkga2V5IHRvIHVzZSBmb3IgdGhlIHF1ZXJ5XG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVjb3ZlcnlfSEJBUkVWTV9CbG9ja2NoYWluRXhwbG9yZXJRdWVyeShcbiAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIHJwY1VybDogc3RyaW5nLFxuICBleHBsb3JlclVybDogc3RyaW5nLFxuICB0b2tlbj86IHN0cmluZ1xuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAvLyBIZWRlcmEgTWlycm9yIE5vZGUgQVBJIGRvZXMgbm90IHVzZSBBUEkga2V5cywgYnV0IHdlIGtlZXAgdGhpcyBmb3IgY29tcGF0aWJpbGl0eVxuICBpZiAodG9rZW4pIHtcbiAgICBxdWVyeS5hcGlrZXkgPSB0b2tlbjtcbiAgfVxuXG4gIGNvbnN0IHsgbW9kdWxlLCBhY3Rpb24gfSA9IHF1ZXJ5O1xuXG4gIC8vIFJlbW92ZSB0cmFpbGluZyBzbGFzaCBmcm9tIGV4cGxvcmVyVXJsIGlmIHByZXNlbnRcbiAgY29uc3QgYmFzZVVybCA9IGV4cGxvcmVyVXJsLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG5cbiAgc3dpdGNoIChgJHttb2R1bGV9LiR7YWN0aW9ufWApIHtcbiAgICBjYXNlICdhY2NvdW50LmJhbGFuY2UnOlxuICAgICAgcmV0dXJuIGF3YWl0IHF1ZXJ5QWRkcmVzc0JhbGFuY2VIZWRlcmEocXVlcnksIGJhc2VVcmwpO1xuXG4gICAgY2FzZSAnYWNjb3VudC50eGxpc3QnOlxuICAgICAgcmV0dXJuIGF3YWl0IGdldEFkZHJlc3NOb25jZUhlZGVyYShxdWVyeSwgYmFzZVVybCk7XG5cbiAgICBjYXNlICdhY2NvdW50LnRva2VuYmFsYW5jZSc6XG4gICAgICByZXR1cm4gYXdhaXQgcXVlcnlUb2tlbkJhbGFuY2VIZWRlcmEocXVlcnksIGJhc2VVcmwpO1xuXG4gICAgY2FzZSAncHJveHkuZXRoX2dhc1ByaWNlJzpcbiAgICAgIHJldHVybiBhd2FpdCBnZXRHYXNQcmljZUZyb21SUEMocXVlcnksIHJwY1VybCk7XG5cbiAgICBjYXNlICdwcm94eS5ldGhfZXN0aW1hdGVHYXMnOlxuICAgICAgcmV0dXJuIGF3YWl0IGdldEdhc0xpbWl0RnJvbVJQQyhxdWVyeSwgcnBjVXJsKTtcblxuICAgIGNhc2UgJ3Byb3h5LmV0aF9jYWxsJzpcbiAgICAgIHJldHVybiBhd2FpdCBxdWVyeVNlcXVlbmNlSWRGcm9tUlBDKHF1ZXJ5LCBycGNVcmwpO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgQVBJIGNhbGw6ICR7bW9kdWxlfS4ke2FjdGlvbn1gKTtcbiAgfVxufVxuXG4vKipcbiAqIDEuIEdldHMgYWRkcmVzcyBiYWxhbmNlIHVzaW5nIEhlZGVyYSBNaXJyb3IgTm9kZSBBUElcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcXVlcnlBZGRyZXNzQmFsYW5jZUhlZGVyYShcbiAgcXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gIGJhc2VVcmw6IHN0cmluZ1xuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCBhZGRyZXNzID0gcXVlcnkuYWRkcmVzcztcbiAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vYWNjb3VudHMvJHthZGRyZXNzfWA7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5nZXQodXJsKS5zZW5kKCk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWNoIGV4cGxvcmVyJyk7XG4gIH1cblxuICBjb25zdCBiYWxhbmNlID0gcmVzcG9uc2UuYm9keS5iYWxhbmNlPy5iYWxhbmNlIHx8ICcwJztcblxuICBjb25zdCBiYWxhbmNlSW5XZWkgPSB0aW55YmFyc1RvV2VpKGJhbGFuY2UpO1xuXG4gIHJldHVybiB7IHJlc3VsdDogYmFsYW5jZUluV2VpIH07XG59XG5cbi8qKlxuICogMi4gR2V0cyBub25jZSB1c2luZyBIZWRlcmEgTWlycm9yIE5vZGUgQVBJXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEFkZHJlc3NOb25jZUhlZGVyYShxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgYmFzZVVybDogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCBhZGRyZXNzID0gcXVlcnkuYWRkcmVzcztcbiAgY29uc3QgYWNjb3VudFVybCA9IGAke2Jhc2VVcmx9L2FjY291bnRzLyR7YWRkcmVzc31gO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3QuZ2V0KGFjY291bnRVcmwpLnNlbmQoKTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgcmVhY2ggZXhwbG9yZXInKTtcbiAgfVxuXG4gIGNvbnN0IG5vbmNlID0gcmVzcG9uc2UuYm9keS5ldGhlcmV1bV9ub25jZSB8fCAwO1xuXG4gIHJldHVybiB7IG5vbmNlOiBub25jZSB9O1xufVxuXG4vKipcbiAqIDMuIEdldHMgdG9rZW4gYmFsYW5jZSB1c2luZyBIZWRlcmEgTWlycm9yIE5vZGUgQVBJXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHF1ZXJ5VG9rZW5CYWxhbmNlSGVkZXJhKFxuICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgYmFzZVVybDogc3RyaW5nXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9IHF1ZXJ5LmNvbnRyYWN0YWRkcmVzcztcbiAgY29uc3QgYWRkcmVzcyA9IHF1ZXJ5LmFkZHJlc3M7XG5cbiAgLy8gR2V0IHRva2VuIGJhbGFuY2VzIGZvciB0aGUgYWNjb3VudFxuICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfS9hY2NvdW50cy8ke2FkZHJlc3N9L3Rva2Vuc2A7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5nZXQodXJsKS5zZW5kKCk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IHJlYWNoIGV4cGxvcmVyJyk7XG4gIH1cblxuICAvLyBGaW5kIHRoZSBzcGVjaWZpYyB0b2tlbiBiYWxhbmNlXG4gIGNvbnN0IHRva2VucyA9IHJlc3BvbnNlLmJvZHkudG9rZW5zIHx8IFtdO1xuICBjb25zdCB0b2tlbkJhbGFuY2UgPSB0b2tlbnMuZmluZChcbiAgICAodG9rZW46IHsgdG9rZW5faWQ6IHN0cmluZzsgY29udHJhY3RfYWRkcmVzczogc3RyaW5nOyBiYWxhbmNlOiBudW1iZXIgfSkgPT5cbiAgICAgIHRva2VuLnRva2VuX2lkID09PSBjb250cmFjdEFkZHJlc3MgfHwgdG9rZW4uY29udHJhY3RfYWRkcmVzcyA9PT0gY29udHJhY3RBZGRyZXNzXG4gICk7XG5cbiAgY29uc3QgYmFsYW5jZSA9IHRva2VuQmFsYW5jZSAmJiB0b2tlbkJhbGFuY2UuYmFsYW5jZSAhPT0gbnVsbCA/IHRva2VuQmFsYW5jZS5iYWxhbmNlLnRvU3RyaW5nKCkgOiAnMCc7XG5cbiAgY29uc3QgYmFsYW5jZUluV2VpID0gdGlueWJhcnNUb1dlaShiYWxhbmNlKTtcblxuICByZXR1cm4geyByZXN1bHQ6IGJhbGFuY2VJbldlaSB9O1xufVxuXG4vKipcbiAqIDQuIEdldHMgc2VxdWVuY2UgSUQgdXNpbmcgUlBDIGNhbGxcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcXVlcnlTZXF1ZW5jZUlkRnJvbVJQQyhxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcnBjVXJsOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IHsgdG8sIGRhdGEgfSA9IHF1ZXJ5O1xuXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIG1ldGhvZDogJ2V0aF9jYWxsJyxcbiAgICBwYXJhbXM6IFtcbiAgICAgIHtcbiAgICAgICAgdG86IHRvLFxuICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGlkOiAxLFxuICB9O1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5wb3N0KHJwY1VybCkuc2VuZChyZXF1ZXN0Qm9keSkuc2V0KCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24vanNvbicpO1xuXG4gIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NvdWxkIG5vdCBmZXRjaCBzZXF1ZW5jZSBJRCBmcm9tIFJQQycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG59XG5cbi8qKlxuICogNS4gZ2V0R2FzUHJpY2VGcm9tUlBDIC0gR2V0cyBnYXMgcHJpY2UgdXNpbmcgSGVkZXJhIE1pcnJvciBOb2RlIEFQSVxuICovXG5hc3luYyBmdW5jdGlvbiBnZXRHYXNQcmljZUZyb21SUEMocXVlcnk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHJwY1VybDogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICBjb25zdCByZXF1ZXN0Qm9keSA9IHtcbiAgICBqc29ucnBjOiAnMi4wJyxcbiAgICBtZXRob2Q6ICdldGhfZ2FzUHJpY2UnLFxuICAgIHBhcmFtczogW10sXG4gICAgaWQ6IDEsXG4gIH07XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0LnBvc3QocnBjVXJsKS5zZW5kKHJlcXVlc3RCb2R5KS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XG5cbiAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZldGNoIGdhcyBwcmljZSBmcm9tIFJQQycpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3BvbnNlLmJvZHk7XG59XG5cbi8qKlxuICogNi4gZ2V0R2FzTGltaXRGcm9tUlBDIC0gR2V0cyBnYXMgbGltaXQgZXN0aW1hdGUgdXNpbmcgUlBDIGNhbGwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldEdhc0xpbWl0RnJvbVJQQyhxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgcnBjVXJsOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIGNvbnN0IHsgZnJvbSwgdG8sIGRhdGEgfSA9IHF1ZXJ5O1xuXG4gIGNvbnN0IHJlcXVlc3RCb2R5ID0ge1xuICAgIGpzb25ycGM6ICcyLjAnLFxuICAgIG1ldGhvZDogJ2V0aF9lc3RpbWF0ZUdhcycsXG4gICAgcGFyYW1zOiBbXG4gICAgICB7XG4gICAgICAgIGZyb20sXG4gICAgICAgIHRvLFxuICAgICAgICBkYXRhLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGlkOiAxLFxuICB9O1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3QucG9zdChycGNVcmwpLnNlbmQocmVxdWVzdEJvZHkpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKTtcblxuICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZXN0aW1hdGUgZ2FzIGxpbWl0IGZyb20gUlBDJyk7XG4gIH1cblxuICByZXR1cm4gcmVzcG9uc2UuYm9keTtcbn1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ export declare const registerAll: (sdk: BitGoBase) => void;
3
+ export declare const register: (coinFamily: string, sdk: BitGoBase) => void;
4
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,eAAO,MAAM,WAAW,QAAS,SAAS,KAAG,IAS5C,CAAC;AAEF,eAAO,MAAM,QAAQ,eAAgB,MAAM,OAAO,SAAS,KAAG,IAsB7D,CAAC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = exports.registerAll = void 0;
4
+ const statics_1 = require("@bitgo-beta/statics");
5
+ const evmCoin_1 = require("./evmCoin");
6
+ const ethLikeErc20Token_1 = require("./ethLikeErc20Token");
7
+ const registerAll = (sdk) => {
8
+ statics_1.coins
9
+ .filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK) && coin.network.type === statics_1.NetworkType.MAINNET && !coin.isToken)
10
+ .forEach((coin) => {
11
+ (0, exports.register)(coin.family, sdk);
12
+ });
13
+ };
14
+ exports.registerAll = registerAll;
15
+ const register = (coinFamily, sdk) => {
16
+ const coinFeatures = statics_1.coins.get(coinFamily).features;
17
+ statics_1.coins
18
+ .filter((coin) => coin.family === coinFamily && !coin.isToken)
19
+ .forEach((coin) => {
20
+ // Handle SHARED_EVM_SDK registration
21
+ if (coinFeatures.includes(statics_1.CoinFeature.SHARED_EVM_SDK)) {
22
+ sdk.register(coin.name, evmCoin_1.EvmCoin.createInstance);
23
+ }
24
+ // Handle SUPPORTS_ERC20 registration
25
+ if (coinFeatures.includes(statics_1.CoinFeature.SUPPORTS_ERC20)) {
26
+ const coinNames = {
27
+ Mainnet: `${coin.name}`,
28
+ Testnet: `${coin.name}`,
29
+ };
30
+ ethLikeErc20Token_1.EthLikeErc20Token.createTokenConstructors(coinNames).forEach(({ name, coinConstructor }) => {
31
+ sdk.register(name, coinConstructor);
32
+ });
33
+ }
34
+ });
35
+ };
36
+ exports.register = register;
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaURBQXNFO0FBQ3RFLHVDQUFvQztBQUNwQywyREFBd0Q7QUFFakQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUNsRCxlQUFLO1NBQ0YsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDUCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLHFCQUFXLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDbkg7U0FDQSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNoQixJQUFBLGdCQUFRLEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQVRXLFFBQUEsV0FBVyxlQVN0QjtBQUVLLE1BQU0sUUFBUSxHQUFHLENBQUMsVUFBa0IsRUFBRSxHQUFjLEVBQVEsRUFBRTtJQUNuRSxNQUFNLFlBQVksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNwRCxlQUFLO1NBQ0YsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDN0QsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDaEIscUNBQXFDO1FBQ3JDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxxQkFBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDdEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELHFDQUFxQztRQUNyQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMscUJBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3RELE1BQU0sU0FBUyxHQUFHO2dCQUNoQixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUN2QixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFO2FBQ3hCLENBQUM7WUFFRixxQ0FBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO2dCQUN6RixHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQztBQXRCVyxRQUFBLFFBQVEsWUFzQm5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQ29pbkZlYXR1cmUsIGNvaW5zLCBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgRXZtQ29pbiB9IGZyb20gJy4vZXZtQ29pbic7XG5pbXBvcnQgeyBFdGhMaWtlRXJjMjBUb2tlbiB9IGZyb20gJy4vZXRoTGlrZUVyYzIwVG9rZW4nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXJBbGwgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgY29pbnNcbiAgICAuZmlsdGVyKFxuICAgICAgKGNvaW4pID0+XG4gICAgICAgIGNvaW4uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TREspICYmIGNvaW4ubmV0d29yay50eXBlID09PSBOZXR3b3JrVHlwZS5NQUlOTkVUICYmICFjb2luLmlzVG9rZW5cbiAgICApXG4gICAgLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIHJlZ2lzdGVyKGNvaW4uZmFtaWx5LCBzZGspO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlZ2lzdGVyID0gKGNvaW5GYW1pbHk6IHN0cmluZywgc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgY29uc3QgY29pbkZlYXR1cmVzID0gY29pbnMuZ2V0KGNvaW5GYW1pbHkpLmZlYXR1cmVzO1xuICBjb2luc1xuICAgIC5maWx0ZXIoKGNvaW4pID0+IGNvaW4uZmFtaWx5ID09PSBjb2luRmFtaWx5ICYmICFjb2luLmlzVG9rZW4pXG4gICAgLmZvckVhY2goKGNvaW4pID0+IHtcbiAgICAgIC8vIEhhbmRsZSBTSEFSRURfRVZNX1NESyByZWdpc3RyYXRpb25cbiAgICAgIGlmIChjb2luRmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuU0hBUkVEX0VWTV9TREspKSB7XG4gICAgICAgIHNkay5yZWdpc3Rlcihjb2luLm5hbWUsIEV2bUNvaW4uY3JlYXRlSW5zdGFuY2UpO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgU1VQUE9SVFNfRVJDMjAgcmVnaXN0cmF0aW9uXG4gICAgICBpZiAoY29pbkZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlNVUFBPUlRTX0VSQzIwKSkge1xuICAgICAgICBjb25zdCBjb2luTmFtZXMgPSB7XG4gICAgICAgICAgTWFpbm5ldDogYCR7Y29pbi5uYW1lfWAsXG4gICAgICAgICAgVGVzdG5ldDogYCR7Y29pbi5uYW1lfWAsXG4gICAgICAgIH07XG5cbiAgICAgICAgRXRoTGlrZUVyYzIwVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoY29pbk5hbWVzKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgICAgICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufTtcbiJdfQ==
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@bitgo-beta/sdk-coin-evm",
3
- "version": "1.0.1-beta.5",
3
+ "version": "1.0.1-beta.500",
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",
@@ -15,6 +15,13 @@
15
15
  "unit-test": "mocha",
16
16
  "prepare": "npm run build"
17
17
  },
18
+ "dependencies": {
19
+ "@bitgo-beta/abstract-eth": "1.0.2-beta.1671",
20
+ "@bitgo-beta/sdk-core": "8.2.1-beta.1441",
21
+ "@bitgo-beta/statics": "15.1.1-beta.1444",
22
+ "@ethereumjs/common": "^2.6.5",
23
+ "superagent": "^9.0.1"
24
+ },
18
25
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
26
  "license": "MIT",
20
27
  "repository": {
@@ -39,5 +46,5 @@
39
46
  ".ts"
40
47
  ]
41
48
  },
42
- "gitHead": "2839c1ff595a3469c601a25e393647ff1625a92e"
49
+ "gitHead": "34306dacd041c55a118a43efa8e0aad7232f072c"
43
50
  }