@bitgo-beta/sdk-coin-evm 1.0.1-beta.44 → 1.0.1-beta.441
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/ethLikeErc20Token.d.ts +20 -0
- package/dist/src/ethLikeErc20Token.d.ts.map +1 -0
- package/dist/src/ethLikeErc20Token.js +49 -0
- package/dist/src/evmCoin.d.ts +13 -2
- package/dist/src/evmCoin.d.ts.map +1 -1
- package/dist/src/evmCoin.js +42 -3
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/register.d.ts +2 -1
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +28 -5
- package/package.json +6 -6
|
@@ -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
|
package/dist/src/evmCoin.d.ts
CHANGED
|
@@ -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
|
|
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,
|
|
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,EACpB,2BAA2B,EAC5B,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;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;IAYnC,kBAAkB;IACZ,oBAAoB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;IASjF;;OAEG;YACW,0BAA0B;CAyBzC"}
|
package/dist/src/evmCoin.js
CHANGED
|
@@ -34,6 +34,14 @@ class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
34
34
|
getMPCAlgorithm() {
|
|
35
35
|
return 'ecdsa';
|
|
36
36
|
}
|
|
37
|
+
/** @inheritDoc */
|
|
38
|
+
supportsMessageSigning() {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
/** @inheritDoc */
|
|
42
|
+
supportsSigningTypedData() {
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
37
45
|
async buildUnsignedSweepTxnTSS(params) {
|
|
38
46
|
if (this.staticsCoin?.features.includes(statics_1.CoinFeature.MPCV2)) {
|
|
39
47
|
return this.buildUnsignedSweepTxnMPCv2(params);
|
|
@@ -43,15 +51,46 @@ class EvmCoin extends abstract_eth_1.AbstractEthLikeNewCoins {
|
|
|
43
51
|
/**
|
|
44
52
|
* Make a query to chain explorer for information such as balance, token balance, solidity calls
|
|
45
53
|
* @param {Object} query key-value pairs of parameters to append after /api
|
|
54
|
+
* @param {string} apiKey optional API key to use for the query falls back to EVM config if not provided
|
|
46
55
|
* @returns {Promise<Object>} response from chain explorer
|
|
47
56
|
*/
|
|
48
|
-
async recoveryBlockchainExplorerQuery(query) {
|
|
57
|
+
async recoveryBlockchainExplorerQuery(query, apiKey) {
|
|
49
58
|
const evmConfig = sdk_core_1.common.Environments[this.bitgo.getEnv()].evm;
|
|
50
59
|
(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;
|
|
60
|
+
const apiToken = apiKey || evmConfig[this.getFamily()].apiToken;
|
|
52
61
|
const explorerUrl = evmConfig[this.getFamily()].baseUrl;
|
|
53
62
|
return await (0, abstract_eth_1.recoveryBlockchainExplorerQuery)(query, explorerUrl, apiToken);
|
|
54
63
|
}
|
|
64
|
+
/** @inheritDoc */
|
|
65
|
+
async verifyTssTransaction(params) {
|
|
66
|
+
const supportsEIP1559 = this.staticsCoin?.features?.includes(statics_1.CoinFeature.EIP1559);
|
|
67
|
+
if (supportsEIP1559) {
|
|
68
|
+
return await super.verifyTssTransaction(params);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return await this.verifyLegacyTssTransaction(params);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Verifies legacy (non-EIP-1559) TSS transactions with basic validation.
|
|
76
|
+
*/
|
|
77
|
+
async verifyLegacyTssTransaction(params) {
|
|
78
|
+
const { txParams, txPrebuild, wallet } = params;
|
|
79
|
+
// Basic validation for legacy transactions only
|
|
80
|
+
if (!txParams?.recipients &&
|
|
81
|
+
!(txParams.prebuildTx?.consolidateId ||
|
|
82
|
+
(txParams.type && ['acceleration', 'fillNonce', 'transferToken', 'tokenApproval'].includes(txParams.type)))) {
|
|
83
|
+
throw new Error(`missing txParams`);
|
|
84
|
+
}
|
|
85
|
+
if (!wallet || !txPrebuild) {
|
|
86
|
+
throw new Error(`missing params`);
|
|
87
|
+
}
|
|
88
|
+
if (txParams.hop && txParams.recipients && txParams.recipients.length > 1) {
|
|
89
|
+
throw new Error(`tx cannot be both a batch and hop transaction`);
|
|
90
|
+
}
|
|
91
|
+
// If validation passes, consider it verified
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
55
94
|
}
|
|
56
95
|
exports.EvmCoin = EvmCoin;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZtQ29pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ldm1Db2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOztHQUVHO0FBQ0gsbURBQThHO0FBQzlHLGlEQUFzRjtBQUN0RiwyREFRa0M7QUFDbEMsK0JBQTJDO0FBQzNDLG9EQUE0QjtBQUU1QixNQUFhLE9BQVEsU0FBUSxzQ0FBdUI7SUFDbEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVTLHFCQUFxQjtRQUM3QixPQUFPLElBQUksd0JBQWtCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyx3QkFBYSxDQUFDLE9BQU8sQ0FBQztJQUMxRyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGVBQWU7UUFDYixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FB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O0NBQ0Y7QUF4R0QsMEJBd0dDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSwgY29tbW9uLCBNUENBbGdvcml0aG0sIE11bHRpc2lnVHlwZSwgbXVsdGlzaWdUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiwgQ29pbkZlYXR1cmUsIGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgT2ZmbGluZVZhdWx0VHhJbmZvLFxuICBSZWNvdmVyT3B0aW9ucyxcbiAgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeSxcbiAgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEV0aExpa2VUcmFuc2FjdGlvbkJ1aWxkZXIsXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxuICBWZXJpZnlFdGhUcmFuc2FjdGlvbk9wdGlvbnMsXG59IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBjbGFzcyBFdm1Db2luIGV4dGVuZHMgQWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBFdm1Db2luKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKCk6IEV0aExpa2VUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCh0aGlzLmdldEJhc2VDaGFpbigpKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlRTUykgPz8gZmFsc2U7XG4gIH1cblxuICAvKiogaW5oZXJpdGVkIGRvYyAqL1xuICBnZXREZWZhdWx0TXVsdGlzaWdUeXBlKCk6IE11bHRpc2lnVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGljc0NvaW4/LmZlYXR1cmVzLmluY2x1ZGVzKENvaW5GZWF0dXJlLlRTUykgPyBtdWx0aXNpZ1R5cGVzLnRzcyA6IG11bHRpc2lnVHlwZXMub25jaGFpbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c01lc3NhZ2VTaWduaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHN1cHBvcnRzU2lnbmluZ1R5cGVkRGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZFVuc2lnbmVkU3dlZXBUeG5UU1MocGFyYW1zOiBSZWNvdmVyT3B0aW9ucyk6IFByb21pc2U8T2ZmbGluZVZhdWx0VHhJbmZvIHwgVW5zaWduZWRTd2VlcFR4TVBDdjI+IHtcbiAgICBpZiAodGhpcy5zdGF0aWNzQ29pbj8uZmVhdHVyZXMuaW5jbHVkZXMoQ29pbkZlYXR1cmUuTVBDVjIpKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZFVuc2lnbmVkU3dlZXBUeG5NUEN2MihwYXJhbXMpO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogTWFrZSBhIHF1ZXJ5IHRvIGNoYWluIGV4cGxvcmVyIGZvciBpbmZvcm1hdGlvbiBzdWNoIGFzIGJhbGFuY2UsIHRva2VuIGJhbGFuY2UsIHNvbGlkaXR5IGNhbGxzXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBxdWVyeSBrZXktdmFsdWUgcGFpcnMgb2YgcGFyYW1ldGVycyB0byBhcHBlbmQgYWZ0ZXIgL2FwaVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpS2V5IG9wdGlvbmFsIEFQSSBrZXkgdG8gdXNlIGZvciB0aGUgcXVlcnkgZmFsbHMgYmFjayB0byBFVk0gY29uZmlnIGlmIG5vdCBwcm92aWRlZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fSByZXNwb25zZSBmcm9tIGNoYWluIGV4cGxvcmVyXG4gICAqL1xuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KFxuICAgIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGFwaUtleT86IHN0cmluZ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgY29uc3QgZXZtQ29uZmlnID0gY29tbW9uLkVudmlyb25tZW50c1t0aGlzLmJpdGdvLmdldEVudigpXS5ldm07XG4gICAgYXNzZXJ0KFxuICAgICAgZXZtQ29uZmlnICYmIHRoaXMuZ2V0RmFtaWx5KCkgaW4gZXZtQ29uZmlnLFxuICAgICAgYGVudiBjb25maWcgaXMgbWlzc2luZyBmb3IgJHt0aGlzLmdldEZhbWlseSgpfSBpbiAke3RoaXMuYml0Z28uZ2V0RW52KCl9YFxuICAgICk7XG5cbiAgICBjb25zdCBhcGlUb2tlbiA9IGFwaUtleSB8fCBldm1Db25maWdbdGhpcy5nZXRGYW1pbHkoKV0uYXBpVG9rZW47XG4gICAgY29uc3QgZXhwbG9yZXJVcmwgPSBldm1Db25maWdbdGhpcy5nZXRGYW1pbHkoKV0uYmFzZVVybDtcbiAgICByZXR1cm4gYXdhaXQgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShxdWVyeSwgZXhwbG9yZXJVcmwgYXMgc3RyaW5nLCBhcGlUb2tlbiBhcyBzdHJpbmcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFzeW5jIHZlcmlmeVRzc1RyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5RXRoVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc3VwcG9ydHNFSVAxNTU5ID0gdGhpcy5zdGF0aWNzQ29pbj8uZmVhdHVyZXM/LmluY2x1ZGVzKENvaW5GZWF0dXJlLkVJUDE1NTkpO1xuICAgIGlmIChzdXBwb3J0c0VJUDE1NTkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBzdXBlci52ZXJpZnlUc3NUcmFuc2FjdGlvbihwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy52ZXJpZnlMZWdhY3lUc3NUcmFuc2FjdGlvbihwYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBsZWdhY3kgKG5vbi1FSVAtMTU1OSkgVFNTIHRyYW5zYWN0aW9ucyB3aXRoIGJhc2ljIHZhbGlkYXRpb24uXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHZlcmlmeUxlZ2FjeVRzc1RyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5RXRoVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0IH0gPSBwYXJhbXM7XG5cbiAgICAvLyBCYXNpYyB2YWxpZGF0aW9uIGZvciBsZWdhY3kgdHJhbnNhY3Rpb25zIG9ubHlcbiAgICBpZiAoXG4gICAgICAhdHhQYXJhbXM/LnJlY2lwaWVudHMgJiZcbiAgICAgICEoXG4gICAgICAgIHR4UGFyYW1zLnByZWJ1aWxkVHg/LmNvbnNvbGlkYXRlSWQgfHxcbiAgICAgICAgKHR4UGFyYW1zLnR5cGUgJiYgWydhY2NlbGVyYXRpb24nLCAnZmlsbE5vbmNlJywgJ3RyYW5zZmVyVG9rZW4nLCAndG9rZW5BcHByb3ZhbCddLmluY2x1ZGVzKHR4UGFyYW1zLnR5cGUpKVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtaXNzaW5nIHR4UGFyYW1zYCk7XG4gICAgfVxuXG4gICAgaWYgKCF3YWxsZXQgfHwgIXR4UHJlYnVpbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgbWlzc2luZyBwYXJhbXNgKTtcbiAgICB9XG5cbiAgICBpZiAodHhQYXJhbXMuaG9wICYmIHR4UGFyYW1zLnJlY2lwaWVudHMgJiYgdHhQYXJhbXMucmVjaXBpZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHR4IGNhbm5vdCBiZSBib3RoIGEgYmF0Y2ggYW5kIGhvcCB0cmFuc2FjdGlvbmApO1xuICAgIH1cblxuICAgIC8vIElmIHZhbGlkYXRpb24gcGFzc2VzLCBjb25zaWRlciBpdCB2ZXJpZmllZFxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/src/index.js
CHANGED
|
@@ -17,4 +17,5 @@ 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
|
-
|
|
20
|
+
__exportStar(require("./ethLikeErc20Token"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQix3Q0FBc0I7QUFDdEIsNkNBQTJCO0FBQzNCLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXZtQ29pbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYic7XG5leHBvcnQgKiBmcm9tICcuL3JlZ2lzdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXRoTGlrZUVyYzIwVG9rZW4nO1xuIl19
|
package/dist/src/register.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { BitGoBase } from '@bitgo-beta/sdk-core';
|
|
2
|
-
export declare const
|
|
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;
|
|
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"}
|
package/dist/src/register.js
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
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
|
|
6
|
+
const ethLikeErc20Token_1 = require("./ethLikeErc20Token");
|
|
7
|
+
const registerAll = (sdk) => {
|
|
7
8
|
statics_1.coins
|
|
8
|
-
.filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK))
|
|
9
|
+
.filter((coin) => coin.features.includes(statics_1.CoinFeature.SHARED_EVM_SDK) && coin.network.type === statics_1.NetworkType.MAINNET && !coin.isToken)
|
|
9
10
|
.forEach((coin) => {
|
|
10
|
-
|
|
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
|
+
}
|
|
11
34
|
});
|
|
12
35
|
};
|
|
13
36
|
exports.register = register;
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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.
|
|
3
|
+
"version": "1.0.1-beta.441",
|
|
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,9 +16,9 @@
|
|
|
16
16
|
"prepare": "npm run build"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@bitgo-beta/abstract-eth": "1.0.2-beta.
|
|
20
|
-
"@bitgo-beta/sdk-core": "8.2.1-beta.
|
|
21
|
-
"@bitgo-beta/statics": "15.1.1-beta.
|
|
19
|
+
"@bitgo-beta/abstract-eth": "1.0.2-beta.1612",
|
|
20
|
+
"@bitgo-beta/sdk-core": "8.2.1-beta.1382",
|
|
21
|
+
"@bitgo-beta/statics": "15.1.1-beta.1385",
|
|
22
22
|
"@ethereumjs/common": "^2.6.5"
|
|
23
23
|
},
|
|
24
24
|
"author": "BitGo SDK Team <sdkteam@bitgo.com>",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
".ts"
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "36e03819c0afbf9a32b1e5b9394c8fd23b7d8427"
|
|
49
49
|
}
|