diff --git a/.nvmrc b/.nvmrc index 5b540673a8..32cfab6364 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.16.0 +v22.18.0 diff --git a/modules/abstract-eth/.mocharc.js b/modules/abstract-eth/.mocharc.js index ae5ec5d5c8..4a91314879 100644 --- a/modules/abstract-eth/.mocharc.js +++ b/modules/abstract-eth/.mocharc.js @@ -1,7 +1,7 @@ 'use strict'; module.exports = { - require: 'ts-node/register', + require: 'tsx', timeout: '20000', reporter: 'min', 'reporter-option': ['cdn=true', 'json=false'], diff --git a/modules/express/encryptedPrivKeys.json b/modules/express/encryptedPrivKeys.json index d5adfe00d3..88a142f372 100644 --- a/modules/express/encryptedPrivKeys.json +++ b/modules/express/encryptedPrivKeys.json @@ -1,3 +1,3 @@ { - "61f039aad587c2000745c687373e0fa9": "{\"iv\":\"O74H8BBv86GBpoTzjVyzWw==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"7n8pAjXCfug=\",\"ct\":\"14MjiKBksaaayrwuc/w8vJ5C3yflQ15//dhLiOgYVqjhJJ7iKrcrjtgfLoI3+MKLaKCycNKi6vTs2xs8xJeSm/XhsOE9EfapkfGHdYuf4C6O1whNOyugZ0ZSOA/buDC3rvBbvCNtLDOxN5XWJN/RADOnZdHuVGk=\"}" + "61f039aad587c2000745c687373e0fa9": "{\"iv\":\"st0zgV8A7HF1cTeCRej3uQ==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"o3khfzQFU6A=\",\"ct\":\"eo+GIv9UcWGY+Bt0uO6sTXl6R0O8nYxh3lZBhEy8WC5exIyDy68yxZlfYCyIjG0t88E+1URAS0edozbCM/WNsgDdVN2vk4SmA60uImLzjLQW/RZF3Q77y/Tuey9yGS5EyiViNzX7MpnpNFURZBl88tZ6vkIryWM=\"}" } \ No newline at end of file diff --git a/modules/sdk-coin-ada/.mocharc.yml b/modules/sdk-coin-ada/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-ada/.mocharc.yml +++ b/modules/sdk-coin-ada/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-ada/test/unit/ada.ts b/modules/sdk-coin-ada/test/unit/ada.ts index 930624467d..e4bd9fd509 100644 --- a/modules/sdk-coin-ada/test/unit/ada.ts +++ b/modules/sdk-coin-ada/test/unit/ada.ts @@ -2,11 +2,14 @@ * @prettier */ -import should = require('should'); +import should from 'should'; import { randomBytes } from 'crypto'; import * as sinon from 'sinon'; +import * as _ from 'lodash'; import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; import { BitGoAPI } from '@bitgo/sdk-api'; +import { TransactionType } from '@bitgo/sdk-core'; + import { rawTx, enterpriseAccounts as accounts, @@ -20,10 +23,7 @@ import { ovcResponse, ovcResponse2, } from '../resources'; -import * as _ from 'lodash'; -import { Ada, KeyPair, Tada } from '../../src'; -import { Transaction } from '../../src/lib'; -import { TransactionType } from '../../../sdk-core/src/account-lib/baseCoin/enum'; +import { Ada, KeyPair, Tada, Transaction } from '../../src'; describe('ADA', function () { const coinName = 'ada'; diff --git a/modules/sdk-coin-asi/.mocharc.yml b/modules/sdk-coin-asi/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-asi/.mocharc.yml +++ b/modules/sdk-coin-asi/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-asi/test/unit/asi.ts b/modules/sdk-coin-asi/test/unit/asi.ts index 955350becb..70e6cbd0d2 100644 --- a/modules/sdk-coin-asi/test/unit/asi.ts +++ b/modules/sdk-coin-asi/test/unit/asi.ts @@ -1,4 +1,4 @@ -import should = require('should'); +import should from 'should'; import BigNumber from 'bignumber.js'; import sinon from 'sinon'; import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; diff --git a/modules/sdk-coin-atom/.mocharc.yml b/modules/sdk-coin-atom/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-atom/.mocharc.yml +++ b/modules/sdk-coin-atom/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-atom/test/unit/atom.ts b/modules/sdk-coin-atom/test/unit/atom.ts index 38886a5b81..57efea9890 100644 --- a/modules/sdk-coin-atom/test/unit/atom.ts +++ b/modules/sdk-coin-atom/test/unit/atom.ts @@ -19,7 +19,7 @@ import { wrwUser, wrwUserDkls, } from '../resources/atom'; -import should = require('should'); +import should from 'should'; describe('ATOM', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-baby/.mocharc.yml b/modules/sdk-coin-baby/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-baby/.mocharc.yml +++ b/modules/sdk-coin-baby/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-baby/test/unit/baby.ts b/modules/sdk-coin-baby/test/unit/baby.ts index 51a45059e7..f849e1e7b1 100644 --- a/modules/sdk-coin-baby/test/unit/baby.ts +++ b/modules/sdk-coin-baby/test/unit/baby.ts @@ -4,7 +4,7 @@ import BigNumber from 'bignumber.js'; import sinon from 'sinon'; import { Baby, Tbaby } from '../../src'; import { TEST_SEND_MANY_TX, TEST_SEND_TX, TEST_TX_WITH_MEMO, address } from '../resources/baby'; -import should = require('should'); +import should from 'should'; import utils from '../../src/lib/utils'; describe('Babylon', function () { diff --git a/modules/sdk-coin-bld/.mocharc.yml b/modules/sdk-coin-bld/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-bld/.mocharc.yml +++ b/modules/sdk-coin-bld/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-bld/test/unit/bld.ts b/modules/sdk-coin-bld/test/unit/bld.ts index 05b67dc01b..f43cd6f667 100644 --- a/modules/sdk-coin-bld/test/unit/bld.ts +++ b/modules/sdk-coin-bld/test/unit/bld.ts @@ -17,7 +17,7 @@ import { TEST_WITHDRAW_REWARDS_TX, wrwUser, } from '../resources/bld'; -import should = require('should'); +import should from 'should'; describe('BLD', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-coreum/.mocharc.yml b/modules/sdk-coin-coreum/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-coreum/.mocharc.yml +++ b/modules/sdk-coin-coreum/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-coreum/test/unit/coreum.ts b/modules/sdk-coin-coreum/test/unit/coreum.ts index d3cd4819e5..1e3bfd7b02 100644 --- a/modules/sdk-coin-coreum/test/unit/coreum.ts +++ b/modules/sdk-coin-coreum/test/unit/coreum.ts @@ -19,7 +19,7 @@ import { testnetAddress, wrwUser, } from '../resources/tcoreum'; -import should = require('should'); +import should from 'should'; describe('Coreum', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-cronos/test/unit/cronos.ts b/modules/sdk-coin-cronos/test/unit/cronos.ts index a711c3ef95..12ddf3234f 100644 --- a/modules/sdk-coin-cronos/test/unit/cronos.ts +++ b/modules/sdk-coin-cronos/test/unit/cronos.ts @@ -1,4 +1,4 @@ -import should = require('should'); +import should from 'should'; import BigNumber from 'bignumber.js'; import sinon from 'sinon'; import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; diff --git a/modules/sdk-coin-dot/.mocharc.yml b/modules/sdk-coin-dot/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-dot/.mocharc.yml +++ b/modules/sdk-coin-dot/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-dot/test/unit/dot.ts b/modules/sdk-coin-dot/test/unit/dot.ts index ebd694dac0..907ae5cc36 100644 --- a/modules/sdk-coin-dot/test/unit/dot.ts +++ b/modules/sdk-coin-dot/test/unit/dot.ts @@ -1,7 +1,7 @@ import { BitGoAPI } from '@bitgo/sdk-api'; import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; import { randomBytes } from 'crypto'; -import should = require('should'); +import should from 'should'; import { Dot, Tdot, KeyPair } from '../../src'; import * as testData from '../fixtures'; import { chainName, txVersion, genesisHash, specVersion } from '../resources'; diff --git a/modules/sdk-coin-hash/test/unit/hash.ts b/modules/sdk-coin-hash/test/unit/hash.ts index ec6d629cfa..6264a74ed2 100644 --- a/modules/sdk-coin-hash/test/unit/hash.ts +++ b/modules/sdk-coin-hash/test/unit/hash.ts @@ -18,7 +18,7 @@ import { testnetAddress, wrwUser, } from '../resources/hash'; -import should = require('should'); +import should from 'should'; describe('HASH', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-initia/test/unit/initia.ts b/modules/sdk-coin-initia/test/unit/initia.ts index f3aad0ced5..d04c7c2c1b 100644 --- a/modules/sdk-coin-initia/test/unit/initia.ts +++ b/modules/sdk-coin-initia/test/unit/initia.ts @@ -1,4 +1,4 @@ -import should = require('should'); +import should from 'should'; import BigNumber from 'bignumber.js'; import sinon from 'sinon'; import { TestBitGo, TestBitGoAPI } from '@bitgo/sdk-test'; diff --git a/modules/sdk-coin-injective/test/unit/injective.ts b/modules/sdk-coin-injective/test/unit/injective.ts index fe1db84dbf..7874c880e0 100644 --- a/modules/sdk-coin-injective/test/unit/injective.ts +++ b/modules/sdk-coin-injective/test/unit/injective.ts @@ -18,8 +18,8 @@ import { TEST_WITHDRAW_REWARDS_TX, wrwUser, } from '../resources/injective'; -import should = require('should'); -import nock = require('nock'); +import should from 'should'; +import nock from 'nock'; describe('INJ', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-islm/test/unit/islm.ts b/modules/sdk-coin-islm/test/unit/islm.ts index 03d34cbe73..7bd3929697 100644 --- a/modules/sdk-coin-islm/test/unit/islm.ts +++ b/modules/sdk-coin-islm/test/unit/islm.ts @@ -12,7 +12,7 @@ import { TEST_WITHDRAW_REWARDS_TX, address, } from '../resources/islm'; -import should = require('should'); +import should from 'should'; describe('Islm', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-mantra/test/unit/mantra.ts b/modules/sdk-coin-mantra/test/unit/mantra.ts index 2110632bf1..90bf2aeb82 100644 --- a/modules/sdk-coin-mantra/test/unit/mantra.ts +++ b/modules/sdk-coin-mantra/test/unit/mantra.ts @@ -5,7 +5,7 @@ import sinon from 'sinon'; import { Mantra, Tmantra } from '../../src'; import utils from '../../src/lib/utils'; import { TEST_SEND_MANY_TX, TEST_SEND_TX, TEST_TX_WITH_MEMO, address } from '../resources/mantra'; -import should = require('should'); +import should from 'should'; describe('Mantra', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-osmo/test/unit/osmo.ts b/modules/sdk-coin-osmo/test/unit/osmo.ts index 0d9d6b2112..446f6b6bed 100644 --- a/modules/sdk-coin-osmo/test/unit/osmo.ts +++ b/modules/sdk-coin-osmo/test/unit/osmo.ts @@ -18,7 +18,7 @@ import { TEST_WITHDRAW_REWARDS_TX, wrwUser, } from '../resources/osmo'; -import should = require('should'); +import should from 'should'; describe('OSMO', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-rune/test/unit/rune.ts b/modules/sdk-coin-rune/test/unit/rune.ts index 0b71ba4d17..6724c0b93e 100644 --- a/modules/sdk-coin-rune/test/unit/rune.ts +++ b/modules/sdk-coin-rune/test/unit/rune.ts @@ -10,7 +10,7 @@ import { RuneUtils } from '../../src/lib/utils'; import { mainnetAddress } from '../resources/rune'; import { TEST_SEND_TX, TEST_TX_WITH_MEMO, testnetAddress, wrwUser } from '../resources/trune'; const bech32 = require('bech32-buffer'); -import should = require('should'); +import should from 'should'; describe('Rune', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-sei/.mocharc.yml b/modules/sdk-coin-sei/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-sei/.mocharc.yml +++ b/modules/sdk-coin-sei/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-sei/test/unit/sei.ts b/modules/sdk-coin-sei/test/unit/sei.ts index e19467f946..e540dfd4b8 100644 --- a/modules/sdk-coin-sei/test/unit/sei.ts +++ b/modules/sdk-coin-sei/test/unit/sei.ts @@ -17,7 +17,7 @@ import { TEST_WITHDRAW_REWARDS_TX, wrwUser, } from '../resources/sei'; -import should = require('should'); +import should from 'should'; describe('SEI', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-tia/test/unit/tia.ts b/modules/sdk-coin-tia/test/unit/tia.ts index 4bf7b3e3d1..69ccf173db 100644 --- a/modules/sdk-coin-tia/test/unit/tia.ts +++ b/modules/sdk-coin-tia/test/unit/tia.ts @@ -21,8 +21,8 @@ import { TEST_WITHDRAW_REWARDS_TX, wrwUser, } from '../resources/tia'; -import should = require('should'); -import nock = require('nock'); +import should from 'should'; +import nock from 'nock'; describe('TIA', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-coin-zeta/.mocharc.yml b/modules/sdk-coin-zeta/.mocharc.yml index 95814796d1..f499ec0a83 100644 --- a/modules/sdk-coin-zeta/.mocharc.yml +++ b/modules/sdk-coin-zeta/.mocharc.yml @@ -1,4 +1,4 @@ -require: 'ts-node/register' +require: 'tsx' timeout: '60000' reporter: 'min' reporter-option: diff --git a/modules/sdk-coin-zeta/test/unit/zeta.ts b/modules/sdk-coin-zeta/test/unit/zeta.ts index a29d2df4ca..39e2623780 100644 --- a/modules/sdk-coin-zeta/test/unit/zeta.ts +++ b/modules/sdk-coin-zeta/test/unit/zeta.ts @@ -20,8 +20,8 @@ import { mockAccountDetailsResponse, wrwUser, } from '../resources/zeta'; -import should = require('should'); -import nock = require('nock'); +import should from 'should'; +import nock from 'nock'; describe('Zeta', function () { let bitgo: TestBitGoAPI; diff --git a/modules/sdk-core/.mocharc.js b/modules/sdk-core/.mocharc.js index 7337e3604b..3ba5fa700c 100644 --- a/modules/sdk-core/.mocharc.js +++ b/modules/sdk-core/.mocharc.js @@ -1,7 +1,7 @@ 'use strict'; module.exports = { - require: 'ts-node/register', + require: 'tsx', timeout: '20000', reporter: 'min', 'reporter-option': ['cdn=true', 'json=false'], diff --git a/modules/statics/.mocharc.js b/modules/statics/.mocharc.js index ae5ec5d5c8..4a91314879 100644 --- a/modules/statics/.mocharc.js +++ b/modules/statics/.mocharc.js @@ -1,7 +1,7 @@ 'use strict'; module.exports = { - require: 'ts-node/register', + require: 'tsx', timeout: '20000', reporter: 'min', 'reporter-option': ['cdn=true', 'json=false'], diff --git a/modules/statics/src/allCoinsAndTokens.ts b/modules/statics/src/allCoinsAndTokens.ts index 71ea8abbda..072bf2c562 100644 --- a/modules/statics/src/allCoinsAndTokens.ts +++ b/modules/statics/src/allCoinsAndTokens.ts @@ -215,12 +215,14 @@ export const allCoinsAndTokens = [ BaseUnit.CSPR, CSPR_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), account( 'bd8f0b27-d13b-41c8-9f60-84fc1f201d89', @@ -917,12 +919,14 @@ export const allCoinsAndTokens = [ BaseUnit.COREUM, COREUM_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), account( 'df2f040b-89f3-4bb3-8da7-2445c7fdefca', @@ -1082,7 +1086,7 @@ export const allCoinsAndTokens = [ 18, UnderlyingAsset.ISLM, BaseUnit.ISLM, - COSMOS_SIDECHAIN_FEATURES.filter((f) => f !== CoinFeature.SHA256_WITH_ECDSA_TSS) + COSMOS_SIDECHAIN_FEATURES.filter((f) => f !== CoinFeature.SHA256_WITH_ECDSA_TSS) as CoinFeature[] ), account( '02eced2c-cf1d-4660-832c-858685ae7107', @@ -1092,7 +1096,7 @@ export const allCoinsAndTokens = [ 18, UnderlyingAsset.ISLM, BaseUnit.ISLM, - COSMOS_SIDECHAIN_FEATURES.filter((f) => f !== CoinFeature.SHA256_WITH_ECDSA_TSS) + COSMOS_SIDECHAIN_FEATURES.filter((f) => f !== CoinFeature.SHA256_WITH_ECDSA_TSS) as CoinFeature[] ), account( 'e48baabf-5cc9-4011-b67e-6f6425753df2', @@ -1338,7 +1342,7 @@ export const allCoinsAndTokens = [ 18, UnderlyingAsset.XDC, BaseUnit.ETH, - EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559) + EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559) as CoinFeature[] ), account( 'e6ecb22e-0ae8-463a-b2fb-61502fd54240', @@ -1348,7 +1352,7 @@ export const allCoinsAndTokens = [ 18, UnderlyingAsset.XDC, BaseUnit.ETH, - EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559) + EVM_FEATURES.filter((feature) => feature !== CoinFeature.EIP1559) as CoinFeature[] ), account( '297edf01-b166-45fb-be6f-da6680635f72', @@ -4014,7 +4018,7 @@ export const allCoinsAndTokens = [ 'AFSUI', '0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc::afsui::AFSUI', UnderlyingAsset['sui:afsui'], - SUI_TOKEN_FEATURES.filter((feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE) + SUI_TOKEN_FEATURES.filter((feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE) as CoinFeature[] ), suiToken( 'af864118-e9ec-47b2-896c-735f0530fb8f', diff --git a/modules/statics/src/base.ts b/modules/statics/src/base.ts index 15e886bd92..8a7e28fc07 100644 --- a/modules/statics/src/base.ts +++ b/modules/statics/src/base.ts @@ -6,10 +6,12 @@ import { } from './errors'; import { BaseNetwork } from './networks'; -export enum CoinKind { - CRYPTO = 'crypto', - FIAT = 'fiat', -} +export const CoinKind = { + CRYPTO: 'crypto', + FIAT: 'fiat', +} as const; + +export type CoinKind = (typeof CoinKind)[keyof typeof CoinKind]; /** * The coin family links related variants of a single coin together. @@ -19,97 +21,99 @@ export enum CoinKind { * * For example, the coins `btc` and `tbtc` both belong to the same family, `btc`. */ -export enum CoinFamily { - ADA = 'ada', - APECHAIN = 'apechain', - ALGO = 'algo', - APT = 'apt', - ARBETH = 'arbeth', - ASI = 'asi', - ATOM = 'atom', - AVAXC = 'avaxc', - AVAXP = 'avaxp', - BASEETH = 'baseeth', // Base Ethereum - BABY = 'baby', - BCH = 'bch', - BCHA = 'bcha', - BERA = 'bera', - BLD = 'bld', // Agoric - BSC = 'bsc', - BSV = 'bsv', - BTC = 'btc', - BTG = 'btg', - CELO = 'celo', - COREDAO = 'coredao', - COREUM = 'coreum', - CRONOS = 'cronos', - CSPR = 'cspr', - DASH = 'dash', - DOGE = 'doge', - DOT = 'dot', - ETH = 'eth', - ETH2 = 'eth2', - ETHW = 'ethw', - ETC = 'etc', - EOS = 'eos', - FETCHAI = 'fetchai', - FIAT = 'fiat', - FLR = 'flr', - HASH = 'hash', // Provenance - HBAR = 'hbar', - ICP = 'icp', - INITIA = 'initia', - INJECTIVE = 'injective', - IRYS = 'irys', - ISLM = 'islm', - KAIA = 'kaia', - KAVA = 'kava', - LNBTC = 'lnbtc', - LTC = 'ltc', - MANTRA = 'mantra', - MON = 'mon', - XPL = 'xpl', // Plasma Network - POLYGON = 'polygon', - POLYX = 'polyx', - PHRS = 'phrs', - CTC = 'ctc', - HYPEEVM = 'hypeevm', - NEAR = 'near', - OAS = 'oas', - OFC = 'ofc', - OG = 'og', - OPETH = 'opeth', - OSMO = 'osmo', - RBTC = 'rbtc', - SGB = 'sgb', - SEI = 'sei', - SEIEVM = 'seievm', - SOL = 'sol', - SONIC = 'sonic', - SONEIUM = 'soneium', - STT = 'stt', - SUI = 'sui', - STX = 'stx', - SUSD = 'susd', - TAO = 'tao', - THOR = 'thor', - TIA = 'tia', // Celestia - TON = 'ton', - TRX = 'trx', - VET = 'vet', - WORLD = 'world', - WEMIX = 'wemix', - XDC = 'xdc', - XLM = 'xlm', - XRP = 'xrp', - XTZ = 'xtz', - ZEC = 'zec', - ZETA = 'zeta', - ZKETH = 'zketh', - LINEAETH = 'lineaeth', - IP = 'ip', // Story Chain - SOMI = 'somi', // Somnia Chain -} +export const CoinFamily = { + ADA: 'ada', + APECHAIN: 'apechain', + ALGO: 'algo', + APT: 'apt', + ARBETH: 'arbeth', + ASI: 'asi', + ATOM: 'atom', + AVAXC: 'avaxc', + AVAXP: 'avaxp', + BASEETH: 'baseeth', // Base Ethereum + BABY: 'baby', + BCH: 'bch', + BCHA: 'bcha', + BERA: 'bera', + BLD: 'bld', // Agoric + BSC: 'bsc', + BSV: 'bsv', + BTC: 'btc', + BTG: 'btg', + CELO: 'celo', + COREDAO: 'coredao', + COREUM: 'coreum', + CRONOS: 'cronos', + CSPR: 'cspr', + DASH: 'dash', + DOGE: 'doge', + DOT: 'dot', + ETH: 'eth', + ETH2: 'eth2', + ETHW: 'ethw', + ETC: 'etc', + EOS: 'eos', + FETCHAI: 'fetchai', + FIAT: 'fiat', + FLR: 'flr', + HASH: 'hash', // Provenance + HBAR: 'hbar', + ICP: 'icp', + INITIA: 'initia', + INJECTIVE: 'injective', + IRYS: 'irys', + ISLM: 'islm', + KAIA: 'kaia', + KAVA: 'kava', + LNBTC: 'lnbtc', + LTC: 'ltc', + MANTRA: 'mantra', + MON: 'mon', + XPL: 'xpl', // Plasma Network + POLYGON: 'polygon', + POLYX: 'polyx', + PHRS: 'phrs', + CTC: 'ctc', + HYPEEVM: 'hypeevm', + NEAR: 'near', + OAS: 'oas', + OFC: 'ofc', + OG: 'og', + OPETH: 'opeth', + OSMO: 'osmo', + RBTC: 'rbtc', + SGB: 'sgb', + SEI: 'sei', + SEIEVM: 'seievm', + SOL: 'sol', + SONIC: 'sonic', + SONEIUM: 'soneium', + STT: 'stt', + SUI: 'sui', + STX: 'stx', + SUSD: 'susd', + TAO: 'tao', + THOR: 'thor', + TIA: 'tia', // Celestia + TON: 'ton', + TRX: 'trx', + VET: 'vet', + WORLD: 'world', + WEMIX: 'wemix', + XDC: 'xdc', + XLM: 'xlm', + XRP: 'xrp', + XTZ: 'xtz', + ZEC: 'zec', + ZETA: 'zeta', + ZKETH: 'zketh', + LINEAETH: 'lineaeth', + IP: 'ip', // Story Chain + SOMI: 'somi', // Somnia Chain +} as const; + +export type CoinFamily = (typeof CoinFamily)[keyof typeof CoinFamily]; /** * Coin features are yes or no questions about what a coin requires or is capable of. @@ -119,37 +123,38 @@ export enum CoinFamily { * before executing some coin-specific logic, and instead allows one to check if a * coin supports the coin-specific feature that the logic implements. */ -export enum CoinFeature { +// Define CoinFeature as const object without 'as const' assertion to allow better type inference +export const CoinFeature = { /* * This coin supports creating wallets on different networks with the same keys. Only works for TSS account-base coins */ - EVM_WALLET = 'evm-wallet', + EVM_WALLET: 'evm-wallet', /* * This coin supports creating an EVM transaction using Metamask Institutional (MMI). */ - METAMASK_INSTITUTIONAL = 'metamask-institutional', + METAMASK_INSTITUTIONAL: 'metamask-institutional', /* * The valueless transfer feature indicates that it is valid to send a transaction which moves zero units of the coin. * * An example is Ethereum, which uses zero value transactions to trigger contract calls. */ - VALUELESS_TRANSFER = 'valueless-transfer', + VALUELESS_TRANSFER: 'valueless-transfer', /* * Transaction data means there can be arbitrary data encoded in a transaction. * * Ethereum contract call data is an example. */ - TRANSACTION_DATA = 'transaction-data', + TRANSACTION_DATA: 'transaction-data', /* * Some coins have a higher precision range than IEEE 754 doubles, which are used to represent numbers in javascript. * * For these coins, we must use an arbitrary precision arithmetic library, and this feature indicates this requirement. */ - REQUIRES_BIG_NUMBER = 'requires-big-number', + REQUIRES_BIG_NUMBER: 'requires-big-number', /* * RMG requires all wallets to have a backup key held by a BitGo approved Key Recovery Service (KRS) */ - REQUIRES_KRS_BACKUP_KEY = 'requires-krs-backup-key', + REQUIRES_KRS_BACKUP_KEY: 'requires-krs-backup-key', /* * For customers which are not on a postpaid contract, we add an extra output to transactions which pays BitGo a fee. * @@ -157,25 +162,25 @@ export enum CoinFeature { * * Some coins are unable to create transactions with more than one output, so paygo outputs are not possible for these coins. */ - PAYGO = 'paygo', + PAYGO: 'paygo', /* * Does this coin align with the unspent model? * * These are typically Bitcoin and forks of it, such as Litecoin and Bitcoin Cash. */ - UNSPENT_MODEL = 'unspent-model', + UNSPENT_MODEL: 'unspent-model', /* * Does this coin align with the Lightning Network model? * * These are typically Lightning Network on unspent model coins, such as BTC and LBTC. */ - LIGHTNING_MODEL = 'lightning-model', + LIGHTNING_MODEL: 'lightning-model', /* * Does this coin align with the account model? * * Examples of this coin type are Ethereum, XRP, and Stellar */ - ACCOUNT_MODEL = 'account-model', + ACCOUNT_MODEL: 'account-model', /* * Does this coin support child-pays-for-parent transactions? * @@ -184,21 +189,21 @@ export enum CoinFeature { * * This is only possible for coins which follow the unspent model (UTXO coins). */ - CHILD_PAYS_FOR_PARENT = 'cpfp', + CHILD_PAYS_FOR_PARENT: 'cpfp', /* * Does this coin support tokens? These are distinct assets from the underlying coin, but run on the same network. * * For example, Ethereum's ERC 20 token standard means that it supports tokens, so it shall have this feature. */ - SUPPORTS_TOKENS = 'supports-tokens', + SUPPORTS_TOKENS: 'supports-tokens', /* * Are fees for transactions of this coin paid for by the Enterprise (eg, Enterprise gas tank)? */ - ENTERPRISE_PAYS_FEES = 'enterprise-pays-fees', + ENTERPRISE_PAYS_FEES: 'enterprise-pays-fees', /* * This coin requires that accounts keep a minimum balance as reserve */ - REQUIRES_RESERVE = 'requires-reserve', + REQUIRES_RESERVE: 'requires-reserve', /** * @deprecated This property is no longer valid. Please select the following custody option based on the BitGo org: * * CUSTODY_BITGO_TRUST @@ -206,267 +211,269 @@ export enum CoinFeature { * * CUSTODY_BITGO_GERMANY * * CUSTODY_BITGO_SWITZERLAND */ - CUSTODY = 'custody', + CUSTODY: 'custody', /* This coin uses TSS for key creation and signing */ - TSS = 'tss', + TSS: 'tss', /* * This coin supports staking */ - STAKING = 'staking', + STAKING: 'staking', /* * This coin supports liquid staking */ - LIQUID_STAKING = 'liquid-staking', + LIQUID_STAKING: 'liquid-staking', /** * This coin is deprecated */ - DEPRECATED = 'deprecated', + DEPRECATED: 'deprecated', /** * This coin is a dummy object meant to be a placeholder for an unsupported token */ - GENERIC_TOKEN = 'genericToken', + GENERIC_TOKEN: 'genericToken', /* * This coin supports custody in BitGo Trust SD entities */ - CUSTODY_BITGO_TRUST = 'custody-bitgo-trust', + CUSTODY_BITGO_TRUST: 'custody-bitgo-trust', /* * This coin supports custody in BitGo New York entities */ - CUSTODY_BITGO_NEW_YORK = 'custody-bitgo-new-york', + CUSTODY_BITGO_NEW_YORK: 'custody-bitgo-new-york', /* * This coin supports custody in BitGo Germany entities */ - CUSTODY_BITGO_GERMANY = 'custody-bitgo-germany', + CUSTODY_BITGO_GERMANY: 'custody-bitgo-germany', /* * This coin supports custody in BitGo Switzerland entities */ - CUSTODY_BITGO_SWITZERLAND = 'custody-bitgo-switzerland', + CUSTODY_BITGO_SWITZERLAND: 'custody-bitgo-switzerland', /* * This coin supports custody in BitGo Switzerland entities */ - CUSTODY_BITGO_FRANKFURT = 'custody-bitgo-frankfurt', + CUSTODY_BITGO_FRANKFURT: 'custody-bitgo-frankfurt', /* * This coin supports custody in BitGo Singapore entities */ - CUSTODY_BITGO_SINGAPORE = 'custody-bitgo-singapore', + CUSTODY_BITGO_SINGAPORE: 'custody-bitgo-singapore', /* * This coin supports custody in BitGo Sister Trust 1 entities */ - CUSTODY_BITGO_SISTER_TRUST_ONE = 'custody-bitgo-sister-trust-one', + CUSTODY_BITGO_SISTER_TRUST_ONE: 'custody-bitgo-sister-trust-one', /** * This coin supports custody in BitGo Korea entities */ - CUSTODY_BITGO_KOREA = 'custody-bitgo-korea', + CUSTODY_BITGO_KOREA: 'custody-bitgo-korea', /** * This coin supports custody in BitGo Europe ApS entities */ - CUSTODY_BITGO_EUROPE_APS = 'custody-bitgo-europe-aps', + CUSTODY_BITGO_EUROPE_APS: 'custody-bitgo-europe-aps', /** * This coin supports custody in BitGo MENA FZE entities */ - CUSTODY_BITGO_MENA_FZE = 'custody-bitgo-mena-fze', + CUSTODY_BITGO_MENA_FZE: 'custody-bitgo-mena-fze', /** * This coin supports custody in BitGo Custody MENA FZE entities */ - CUSTODY_BITGO_CUSTODY_MENA_FZE = 'custody-bitgo-custody-mena-fze', + CUSTODY_BITGO_CUSTODY_MENA_FZE: 'custody-bitgo-custody-mena-fze', /** * This coin supports custody in BitGo India entities */ - CUSTODY_BITGO_INDIA = 'custody-bitgo-india', + CUSTODY_BITGO_INDIA: 'custody-bitgo-india', /* * This coin has transactions that expire after a certain amount of time. */ - EXPIRING_TRANSACTIONS = 'expiring-transactions', + EXPIRING_TRANSACTIONS: 'expiring-transactions', /** * This coin supports cold wallets that use a multisig signing protocol */ - MULTISIG_COLD = 'multisig-cold', + MULTISIG_COLD: 'multisig-cold', /** * This coin supports cold wallets that use a TSS signing protocol */ - TSS_COLD = 'tss-cold', + TSS_COLD: 'tss-cold', /** * This coin uses sha256 hash function for ECDSA TSS signatures */ - SHA256_WITH_ECDSA_TSS = 'sha256-with-ecdsa-tss', + SHA256_WITH_ECDSA_TSS: 'sha256-with-ecdsa-tss', /** * This coin is cosmos like coin */ - COSMOS_LIKE_COINS = 'cosmos_like_coins', + COSMOS_LIKE_COINS: 'cosmos_like_coins', /** * This coin supports the ability to rebuild transactions on custody signing */ - REBUILD_ON_CUSTODY_SIGNING = 'rebuild-on-custody-signing', + REBUILD_ON_CUSTODY_SIGNING: 'rebuild-on-custody-signing', /** * This coin supports higher limit for tx request rebuild, which is 10 by default */ - INCREASED_TX_REQUEST_REBUILD_LIMIT = 'increased-tx-request-rebuild-limit', + INCREASED_TX_REQUEST_REBUILD_LIMIT: 'increased-tx-request-rebuild-limit', /** * This coin supports bulk transaction creation */ - BULK_TRANSACTION = 'bulk-transaction', + BULK_TRANSACTION: 'bulk-transaction', /** * This coin supports bulk ERC20 token transactions (token batching) */ - ERC20_BULK_TRANSACTION = 'erc20-bulk-transaction', + ERC20_BULK_TRANSACTION: 'erc20-bulk-transaction', /** * This coin supports bulk custody transaction creation */ - CUSTODY_BULK_TRANSACTION = 'custody-bulk-transaction', + CUSTODY_BULK_TRANSACTION: 'custody-bulk-transaction', /** * This coin supports distributed custody wallets */ - DISTRIBUTED_CUSTODY = 'distributed-custody', + DISTRIBUTED_CUSTODY: 'distributed-custody', /** * This coin supports bulk staking transaction creation */ - BULK_STAKING_TRANSACTION = 'bulk-staking-transaction', + BULK_STAKING_TRANSACTION: 'bulk-staking-transaction', /** * This coin uses non-packed encoding for transaction data */ - USES_NON_PACKED_ENCODING_FOR_TXDATA = 'uses-non-packed-encoding-for-txdata', + USES_NON_PACKED_ENCODING_FOR_TXDATA: 'uses-non-packed-encoding-for-txdata', /** * This coins supports MPCv2 for key creation and signing */ - MPCV2 = 'mpcv2', + MPCV2: 'mpcv2', /** * This coin supports acceleration or nonce filling txn for stuck transactions for tss wallet */ - STUCK_TRANSACTION_MANAGEMENT_TSS = 'stuck-transaction-management-tss', + STUCK_TRANSACTION_MANAGEMENT_TSS: 'stuck-transaction-management-tss', /** * This coin supports acceleration or nonce filling txn for stuck transactions for onchain wallet */ - STUCK_TRANSACTION_MANAGEMENT_ONCHAIN = 'stuck-transaction-management-onchain', + STUCK_TRANSACTION_MANAGEMENT_ONCHAIN: 'stuck-transaction-management-onchain', /** * This coin is onboarded on etheruem rollup chain */ - ETH_ROLLUP_CHAIN = 'eth-rollup-chain', + ETH_ROLLUP_CHAIN: 'eth-rollup-chain', /** * This coin supports EIP1559 proposal for transaction fee */ - EIP1559 = 'EIP1559', + EIP1559: 'EIP1559', /** * Fees for transactions of TSS wallet of this coin would be paid by the Enterprise i.e. Gas Tank */ - TSS_ENTERPRISE_PAYS_FEES = 'tss-enterprise-pays-fees', + TSS_ENTERPRISE_PAYS_FEES: 'tss-enterprise-pays-fees', /** * Indicates that fees for transactions on a wallet for this coin are paid with a token (not the native coin). */ - FEES_PAID_WITH_TOKEN = 'fees-paid-with-token', + FEES_PAID_WITH_TOKEN: 'fees-paid-with-token', /** * This coin supports alphanumeric memo id */ - ALPHANUMERIC_MEMO_ID = 'alphanumeric-memo-id', + ALPHANUMERIC_MEMO_ID: 'alphanumeric-memo-id', /** * This coin supports WalletConnect */ - WALLET_CONNECT_DEFI = 'wallet-connect-defi', + WALLET_CONNECT_DEFI: 'wallet-connect-defi', /** * This coin is gated for TSS Support */ - TSS_SUPPORT_GATED = 'tss-support-gated', + TSS_SUPPORT_GATED: 'tss-support-gated', /** * This coin is gated for Multisig Support */ - MULTISIG_SUPPORT_GATED = 'multisig-support-gated', + MULTISIG_SUPPORT_GATED: 'multisig-support-gated', /** * This coins is an EVM compatible coin and should use common EVM functionality */ - SHARED_EVM_SIGNING = 'shared-evm-signing', + SHARED_EVM_SIGNING: 'shared-evm-signing', /** * This coin is an EVM compatible coin and should use common EVM SDK module */ - SHARED_EVM_SDK = 'shared-evm-sdk', + SHARED_EVM_SDK: 'shared-evm-sdk', /** * This coin supports erc20 tokens */ - SUPPORTS_ERC20 = 'supports-erc20-token', + SUPPORTS_ERC20: 'supports-erc20-token', /** * This coin is a Cosmos coin and should use shared Cosmos SDK module */ - SHARED_COSMOS_SDK = 'shared-cosmos-sdk', + SHARED_COSMOS_SDK: 'shared-cosmos-sdk', /** * This coin is a Cosmos coin and should use shared Cosmos Functionality in WP */ - SHARED_COSMOS_WP = 'shared-cosmos-wp', + SHARED_COSMOS_WP: 'shared-cosmos-wp', /** * This coin is EVM based coin */ - EVM_COIN = 'evm_coin', + EVM_COIN: 'evm_coin', /** * This coin supports multisig wallets */ - MULTISIG = 'multisig', + MULTISIG: 'multisig', /** * This coin is an EVM compatible coin and should use common EVM model registration in IMS */ - EVM_COMPATIBLE_IMS = 'evm-compatible-ims', + EVM_COMPATIBLE_IMS: 'evm-compatible-ims', /** * This coin is an EVM compatible coin and should use common EVM logic in UI */ - EVM_COMPATIBLE_UI = 'evm-compatible-ui', + EVM_COMPATIBLE_UI: 'evm-compatible-ui', /** * This coin is an EVM compatible coin which supports unsigned sweep recovery */ - EVM_UNSIGNED_SWEEP_RECOVERY = 'evm-unsigned-sweep-recovery', + EVM_UNSIGNED_SWEEP_RECOVERY: 'evm-unsigned-sweep-recovery', /** * This coin is an EVM compatible coin which supports non-bitgo recovery */ - EVM_NON_BITGO_RECOVERY = 'evm-non-bitgo-recovery', + EVM_NON_BITGO_RECOVERY: 'evm-non-bitgo-recovery', /** * This coin is a rebase token and should use the rebase token functionality */ - REBASE_TOKEN = 'rebase-token', + REBASE_TOKEN: 'rebase-token', /** * This coin is an EVM compatible coin and should use common EVM logic in WP */ - EVM_COMPATIBLE_WP = 'evm-compatible-wp', + EVM_COMPATIBLE_WP: 'evm-compatible-wp', /** * This token is internal and shouldn't be exposed to users */ - RESTRICTED = 'restricted', + RESTRICTED: 'restricted', /** * This coin is an EVM compatible coin and should use common EVM message signing functionality */ - SHARED_EVM_MESSAGE_SIGNING = 'shared-evm-message-signing', -} + SHARED_EVM_MESSAGE_SIGNING: 'shared-evm-message-signing', +} as const; + +export type CoinFeature = (typeof CoinFeature)[keyof typeof CoinFeature]; /** * Some coins are representations of another underlying asset class. An example @@ -475,2615 +482,2643 @@ export enum CoinFeature { * For these coins, the `UnderlyingAsset` provides a link to the actual * asset for which the coin is a unit of account. */ -export enum UnderlyingAsset { - INVALID_UNKNOWN = 'invalid_asset_type', - ADA = 'ada', - ALGO = 'algo', - APE = 'ape', - APECHAIN = 'apechain', - API3 = 'api3', - ARBETH = 'arbeth', - BASEETH = 'baseeth', // Base Ethereum - ASI = 'asi', - ATOM = 'atom', - AVAXC = 'avaxc', - AVAXP = 'avaxp', - AXL = 'AXL', - AXLV2 = 'axlv2', - BABY = 'baby', - BCH = 'bch', - BCHA = 'bcha', - BERA = 'bera', - BLD = 'bld', // Agoric - BSC = 'bsc', - BSV = 'bsv', - BTC = 'btc', - BTG = 'btg', - DASH = 'dash', - DOT = 'dot', - CELO = 'celo', // Celo main coin - COREDAO = 'coredao', - COREUM = 'coreum', - CRONOS = 'cronos', - CSPR = 'cspr', - ETH = 'eth', - ETH2 = 'eth2', - ETHW = 'ethw', - ETC = 'etc', - EOS = 'eos', - ERD = 'erd', - EURCVV0 = 'eurcvv0', - EURCV = 'eurcv', - EUROC = 'euroc', - EURR = 'eurr', - FETCHAI = 'fetchai', - FLR = 'flr', - GTC = 'gtc', - HASH = 'hash', // Provenance - HBAR = 'hbar', // Hedera main coin - ICP = 'icp', - IP = 'ip', // Story Chain - INITIA = 'initia', - INJECTIVE = 'injective', - IRYS = 'irys', - ISLM = 'islm', - KAIA = 'kaia', - KAVA = 'kava', - LNBTC = 'lnbtc', - LTC = 'ltc', - LINEAETH = 'lineaeth', - MANTRA = 'mantra', - MON = 'mon', - NEAR = 'near', - OAS = 'oas', - OG = 'og', - OPETH = 'opeth', - OSMO = 'osmo', - XPL = 'xpl', // Plasma Network - POLYGON = 'polygon', - PHRS = 'phrs', - CTC = 'ctc', - HYPEEVM = 'hypeevm', - RBTC = 'rbtc', // RSK main coin - SEI = 'sei', - SEIEVM = 'seievm', - SGB = 'sgb', - SOL = 'sol', - SONIC = 'sonic', - SUI = 'sui', - STX = 'stx', - TIA = 'tia', // Celestia - TON = 'ton', - TRX = 'trx', - SONEIUM = 'soneium', - STT = 'stt', - SOMI = 'somi', // Somnia Chain - VET = 'vet', - WEMIX = 'wemix', - WORLD = 'world', - XLM = 'xlm', - XDC = 'xdc', - XRP = 'xrp', - XTZ = 'xtz', - ZEC = 'zec', - ZETA = 'zeta', - ZKETH = 'zketh', +export const UnderlyingAsset = { + INVALID_UNKNOWN: 'invalid_asset_type', + ADA: 'ada', + ALGO: 'algo', + APE: 'ape', + APECHAIN: 'apechain', + API3: 'api3', + ARBETH: 'arbeth', + BASEETH: 'baseeth', // Base Ethereum + ASI: 'asi', + ATOM: 'atom', + AVAXC: 'avaxc', + AVAXP: 'avaxp', + AXL: 'AXL', + AXLV2: 'axlv2', + BABY: 'baby', + BCH: 'bch', + BCHA: 'bcha', + BERA: 'bera', + BLD: 'bld', // Agoric + BSC: 'bsc', + BSV: 'bsv', + BTC: 'btc', + BTG: 'btg', + DASH: 'dash', + DOT: 'dot', + CELO: 'celo', // Celo main coin + COREDAO: 'coredao', + COREUM: 'coreum', + CRONOS: 'cronos', + CSPR: 'cspr', + ETH: 'eth', + ETH2: 'eth2', + ETHW: 'ethw', + ETC: 'etc', + EOS: 'eos', + ERD: 'erd', + EURCVV0: 'eurcvv0', + EURCV: 'eurcv', + EUROC: 'euroc', + EURR: 'eurr', + FETCHAI: 'fetchai', + FLR: 'flr', + GTC: 'gtc', + HASH: 'hash', // Provenance + HBAR: 'hbar', // Hedera main coin + ICP: 'icp', + IP: 'ip', // Story Chain + INITIA: 'initia', + INJECTIVE: 'injective', + IRYS: 'irys', + ISLM: 'islm', + KAIA: 'kaia', + KAVA: 'kava', + LNBTC: 'lnbtc', + LTC: 'ltc', + LINEAETH: 'lineaeth', + MANTRA: 'mantra', + MON: 'mon', + NEAR: 'near', + OAS: 'oas', + OG: 'og', + OPETH: 'opeth', + OSMO: 'osmo', + XPL: 'xpl', // Plasma Network + POLYGON: 'polygon', + PHRS: 'phrs', + CTC: 'ctc', + HYPEEVM: 'hypeevm', + RBTC: 'rbtc', // RSK main coin + SEI: 'sei', + SEIEVM: 'seievm', + SGB: 'sgb', + SOL: 'sol', + SONIC: 'sonic', + SUI: 'sui', + STX: 'stx', + TIA: 'tia', // Celestia + TON: 'ton', + TRX: 'trx', + SONEIUM: 'soneium', + STT: 'stt', + SOMI: 'somi', // Somnia Chain + VET: 'vet', + WEMIX: 'wemix', + WORLD: 'world', + XLM: 'xlm', + XDC: 'xdc', + XRP: 'xrp', + XTZ: 'xtz', + ZEC: 'zec', + ZETA: 'zeta', + ZKETH: 'zketh', // ERC 20 tokens - '$Evmosia.com' = '$evmosia.com', - '0xREVIEW' = '0xreview', - '1INCH' = '1inch', - '1UP' = '1up', - '3CRV' = '3crv', - AAVE = 'aave', - ABT = 'abt', - ACE = 'ace', - ACEV2 = 'acev2', - ACX = 'acx', - ACXT = 'acxt', - ACH = 'ach', - ADABEAR = 'adabear', - ADABULL = 'adabull', - ADX = 'adx', - AE = 'ae', - AERGO = 'aergo', - AERGO1 = 'aergo1', - AGEUR = 'ageur', - AGI = 'agi', - AGIX = 'agix', - AGLD = 'agld', - AGWD = 'agwd', - AION = 'aion', - AJNA = 'ajna', - AKRO = 'akro', - ALCX = 'alcx', - ALD = 'ald', - ALDRIN = 'aldrin', - ALEPH = 'aleph', - ALGOBEAR = 'algobear', - ALGOBULL = 'algobull', - ALGODOOM = 'algodoom', - ALGOHEDGE = 'algohedge', - ALGOMOON = 'algomoon', - ALTDOOM = 'altdoom', - ALTMOON = 'altmoon', - ALI = 'ali', - ALICE = 'alice', - ALK = 'alk', - ALM = 'alm', - ALPHA = 'alpha', - ALTBEAR = 'altbear', - ALTBULL = 'altbull', - ALTHEDGE = 'althedge', - AMKT = 'amkt', - AMN = 'amn', - AMO = 'amo', - AMP = 'amp', - AMPL = 'ampl', - AMON = 'amon', - AMPX = 'ampx', - ANA = 'ana', - ANC = 'anc', - ANGLE = 'angle', - ANKR = 'ankr', - ANKRETH = 'ankreth', - ANML = 'anml', - ANT = 'ant', - ANTV2 = 'antv2', - AOA = 'aoa', - APPC = 'appc', - APT = 'apt', - AQT = 'aqt', - ARCT = 'arct', - ARCX = 'arcx', - ARKM = 'arkm', - ARMOR = 'armor', - ARPA = 'arpa', - ARTEQ = 'arteq', - ASD = 'asd', - AST = 'ast', - ASTO = 'asto', - ATA = 'ata', - ATF = 'atf', - ATH = 'ath', - ATL = 'atl', - ATLAS = 'atlas', - ATOMBEAR = 'atombear', - ATOMBULL = 'atombull', - ATRI = 'atri', - AUCTION = 'auction', - AUDD = 'audd', - AUDF = 'audf', - AUDIO = 'audio', - AUDX = 'audx', - AUSD = 'ausd', - AUSDT = 'ausdt', - AUST = 'aust', - AVA = 'ava', - AVT = 'avt', - AWBTC = 'awbtc', - AXPR = 'axpr', - AXS = 'axs', - AXSV2 = 'axsv2', - AYFI = 'ayfi', - AZUKI = 'azuki', - AZUKI2 = 'azuki2', - AZUKIPEPE = 'azukipepe', - BADGER = 'badger', - BAI = 'bai', - BAL = 'bal', - BAND = 'band', - BANK = 'bank', - BAO = 'bao', - BASIC = 'basic', - BAT = 'bat', - BAX = 'bax', - BBANK = 'bbank', - BBSAMO = 'bbsamo', - BBTC = 'BBTC', - BBX = 'bbx', - BCAP = 'bcap', - BCC = 'bcc', - BCHBEAR = 'bchbear', - BCHBULL = 'bchbull', - BCHDOOM = 'bchdoom', - BCHHEDGE = 'bchhedge', - BCHMOON = 'bchmoon', - BCIO = 'bcio', - BCUT = 'bcut', - BCT = 'bct', - BDXN = 'bdxn', - BEAM = 'beam', - BEAR = 'bear', - BEARSHIT = 'bearshit', - BED = 'bed', - BEND = 'bend', - BEPRO = 'bepro', - BETA = 'beta', - BGB = 'bgb', - BGBG = 'bgbg', - BICO = 'bico', - BID = 'bid', - BIDL = 'bidl', - BIGTIME = 'bigtime', - BIRD = 'bird', - BIT = 'bit', - BKT = 'bkt', - BKX = 'bkx', - BLCT = 'blct', - BLT = 'blt', - BLUR = 'blur', - BLUR0x083 = 'blur0x083', - BLUR0xb93 = 'blur0xb93', - BLZ = 'blz', - BNB = 'bnb', - BNBBEAR = 'bnbbear', - BNBBULL = 'bnbbull', - BNBDOOM = 'bnbdoom', - BNBHEDGE = 'bnbhedge', - BNBMOON = 'bnbmoon', - BNK = 'bnk', - BNL = 'bnl', - BNT = 'bnt', - BNTY = 'bnty', - BNVDA = 'bnvda', - BOB = 'bob', - BOND = 'bond', - BONK = 'bonk', - BONE = 'bone', - BORG = 'borg', - BOTTO = 'botto', - BLOCKS = 'blocks', - BOX = 'box', - BOBA = 'boba', - BRD = 'brd', - BRIBE = 'bribe', - BRZ = 'brz', - BSGG = 'bsgg', - BST = 'bst', - BSVBEAR = 'bsvbear', - BSVBULL = 'bsvbull', - BSVDOOM = 'bsvdoom', - BSVHEDGE = 'bsvhedge', - BSVMOON = 'bsvmoon', - BSX = 'bsx', - BTC2XFLI = 'btc2xfli', - BTMXBEAR = 'btmxbear', - BTMXBULL = 'btmxbull', - BTRST = 'btrst', - BTSG = 'btsg', - BTT = 'btt', - BTU = 'btu', - BUIDL = 'buidl', - BULL = 'bull', - BULLSHIT = 'bullshit', - BURP = 'burp', - BUSD = 'busd', - BUY = 'buy', - BPT = 'bpt', - BVOL = 'bvol', - BXX = 'bxx', - BXXV1 = 'bxxv1', - BZZ = 'bzz', - C3 = 'c3', - C6P = 'c6p', - C8P = 'c8p', - C98 = 'c98', - CACXT = 'cacxt', - CADX = 'cadx', - CAG = 'cag', - CANTO = 'canto', - CAPS = 'caps', - CARV = 'carv', - CASH = 'cash', - CBAT = 'cbat', - CBC = 'cbc', - CBETH = 'cbeth', - CBRL = 'cbrl', - CCAI = 'ccai', - CCT = 'cct', - CDAG = 'cdag', - CDAI = 'cdai', - CDAIV2 = 'cdaiV2', - CDT = 'cdt', - CEL = 'cel', - CELLS = 'cells', - CELR = 'celr', - CERE = 'cere', - CETH = 'ceth', - CFX = 'cfx', - CHAINLINK = 'chainlink', - CHART = 'chart', - CHO = 'cho', - CHFX = 'chfx', - CHR = 'chr', - CHSB = 'chsb', - CHZ = 'chz', - CIBO = 'cibo', - CIX100 = 'cix100', - CLIQ = 'cliq', - CLN = 'cln', - CLT = 'clt', - CLXY = 'clxy', - CLV = 'clv', - CMFI = 'cmfi', - CNFI = 'cnfi', - CNG = 'cng', - CNYX = 'cnyx', - COLLAR = 'collar', - COMBO = 'combo', - COMP = 'comp', - CONV = 'conv', - COPE = 'cope', - CORE = 'core', - COS = 'cos', - COTI = 'coti', - COVAL = 'coval', - COVER = 'cover', - COVERPROTOCOL = 'coverprotocol', - COW = 'cow', - CPAY = 'cpay', - CPLT = 'cplt', - CPOOL = 'cpool', - CQT = 'cqt', - CQX = 'cqx', - CRA = 'cra', - CRDT = 'crdt', - CRE = 'cre', - CREAM = 'cream', - CREP = 'crep', - CRI = 'cri', - CRO = 'cro', - CRV = 'crv', - CRPT = 'crpt', - CRPT1 = 'crpt1', - CSLV = 'cslv', - CSOL = 'csol', - CSP = 'csp', - CTSI = 'ctsi', - CTX = 'ctx', - CUBE = 'cube', - CUSD = 'cusd', - CUSDC = 'cusdc', - CVXFXS = 'cvxfxs', - CWAR = 'cwar', - CWBTC = 'cwbtc', - CVC = 'cvc', - CVX = 'cvx', - CXT = 'cxt', - CYBER = 'cyber', - CZRX = 'czrx', - DACXI = 'dacxi', - DADI = 'dadi', - DAMM = 'damm', - DAI = 'dai', - DAO = 'dao', - DAOLANG = 'daolang', - DAR = 'dar', - DATA = 'data', - DATAV2 = 'datav2', - DATAECON = 'dataecon', - DAWN = 'dawn', - DEC = 'dec', - DEGO = 'dego', - DENT = 'dent', - DEP = 'dep', - DEPAY = 'depay', - DEXA = 'dexa', - DEXE = 'dexe', - DFD = 'dfd', - DFI = 'dfi', - DFL = 'dfl', - DFX = 'dfx', - DGCL = 'dgcl', - DGD = 'dgd', - DGLD = 'dgld', - DGX = 'dgx', - DHT = 'dht', - DIGG = 'digg', - DIA = 'dia', - DING = 'ding', - DIPE = 'dipe', - DMG = 'dmg', - DMT = 'dmt', - DNA = 'dna', - DNT = 'dnt', - DODO = 'dodo', - DOG = 'dog', - DOGE = 'doge', - DOGEBEAR = 'dogebear', - DOGEBEAR2021 = 'dogebear2021', - DOGEBULL = 'dogebull', - DOMI = 'domi', - DOOM = 'doom', - DOOMSHIT = 'doomshit', - DOSE = 'dose', - DOTK = 'dotk', - DPAY = 'dpay', - DPI = 'dpi', - DPX = 'dpx', - DPY = 'dpy', - DRAM = 'dram', - DRGNBEAR = 'drgnbear', - DRGNBULL = 'drgnbull', - DRPU = 'drpu', - DRV = 'drv', - DUC = 'duc', - DUCK = 'duck', - DUSD = 'dusd', - DUSK = 'dusk', - DUST = 'dust', - DX1U = 'dx1u', - DXGT = 'dxgt', - DXO = 'dxo', - DXPT = 'dxpt', - DXST = 'dxst', - DYDX = 'dydx', - DYN = 'dyn', - EASY = 'easy', - EBTCQ = 'ebtcq', - ECHT = 'echt', - 'eth:eco' = 'eth:eco', - ECOX = 'ecox', - EDEN = 'eden', - EDISON = 'edison', - EDLC = 'edlc', - EDO = 'edo', - ELON = 'elon', - EMB = 'emb', - EDN = 'edn', - EDR = 'edr', - EFI = 'efi', - EGL = 'egl', - EGLD = 'egld', - EGOLD = 'egold', - EIGEN = 'eigen', - ELF = 'elf', - ELU = 'elu', - EMAID = 'emaid', - EMX = 'emx', - ENA = 'ena', - ENG = 'eng', - ENJ = 'enj', - ENS = 'ens', - EON = 'eon', - EOP = 'eop', - EOSBEAR = 'eosbear', - EOSBULL = 'eosbull', - EOSDOOM = 'eosdoom', - EOSHEDGE = 'eoshedge', - EOSMOON = 'eosmoon', - EQO = 'eqo', - ESE = 'ese', - ETA = 'eta', - ETHBULL = 'ethbull', - ETCBEAR = 'etcbear', - ETCBULL = 'etcbull', - ETCDOOM = 'etcdoom', - ETCHEDOOM = 'etchedoom', - ETCMOON = 'etcmoon', - ETHBEAR = 'ethbear', - ETHDOOM = 'ethdoom', - ETHFI = 'ethfi', - 'eth:block' = 'eth:block', - 'eth:bito' = 'eth:bito', - 'ETH:ECASH' = 'eth:ecash', - 'ETH:OORT' = 'eth:oort', - 'eth:ultra' = 'eth:ultra', - 'eth:dragonx' = 'eth:dragonx', - ETHHEDGE = 'ethhedge', - ETHMOON = 'ethmoon', - ETHOPT = 'ethopt', - ETHOS = 'ethos', - ETHTON = 'ethton', - ETHX = 'ethx', - ETV = 'etv', - ETX = 'etx', - EUL = 'eul', - EURE = 'eure', - EURL = 'eurl', - EUROE = 'euroe', - EUROP = 'europ', - EURS = 'eurs', - EURST = 'eurst', - EURT = 'eurt', - EURX = 'eurx', - EUX = 'eux', - EVER = 'ever', - EVERY = 'every', - EVRY = 'evry', - EVX = 'evx', - EXCHBEAR = 'exchbear', - EXCHBULL = 'exchbull', - EXCHDOOM = 'exchdoom', - EXCHHEDGE = 'exchhedge', - EXCHMOON = 'exchmoon', - EXE = 'exe', - FANT = 'fant', - FARM = 'farm', - FEI = 'fei', - FET = 'fet', - FET1 = 'fet1', - FDT = 'fdt', - FDUSD = 'fdusd', - FF1 = 'ff1', - FF6000 = 'ff6000', - FFT = 'fft', - FIDA = 'fida', - FIDU = 'fidu', - FIN = 'fin', - FIRE = 'fire', - FIRSTBLOOD = 'firstblood', - FIS = 'fis', - FIXED = 'fixed', - FLIP = 'flip', - FLOKI = 'floki', - FLUX = 'flux', - FLY = 'fly', - FMF = 'fmf', - FOLD = 'fold', - FOR = 'for', - FOREX = 'forex', - FORT = 'fort', - FORTH = 'forth', - FOX = 'fox', - FPIS = 'fpis', - FRAX = 'frax', - FRONT = 'front', - FT = 'ft', - FTM = 'ftm', - FTT = 'ftt', - FTT20 = 'ftt20', - FTX2 = 'ftx2', - FUCKFTX = 'fuckftx', - FUN = 'fun', - FWB = 'fwb', - FX = 'fx', - FXRT = 'fxrt', - FXS = 'fxs', - G = 'g', - GAL = 'gal', - GALA = 'gala', - GALAV2 = 'galav2', - 'GAME.COM' = 'game.com', - GAMMA = 'gamma', - 'sol:gari' = 'sol:gari', - 'sol:usd1' = 'sol:usd1', - 'tsol:slnd' = 'tsol:slnd', - 'tsol:orca' = 'tsol:orca', - 'tsol:usdc' = 'tsol:usdc', - 'tsol:ray' = 'tsol:ray', - 'tsol:gmt' = 'tsol:gmt', - 'tsol:usdt' = 'tsol:usdt', - 'tsol:srm' = 'tsol:srm', - 'tsol:gari' = 'tsol:gari', - GAS = 'gas', - GATE = 'gate', - GBPT = 'gbpt', - GBPX = 'gbpx', - GDT = 'gdt', - GEAR = 'gear', - GEC = 'gec', - GEL = 'gel', - GEN = 'gen', - GENE = 'gene', - GENIE = 'genie', - GF = 'gf', - GFI = 'gfi', - GHST = 'ghst', - GHUB = 'ghub', - GIGDROP = 'gigdrop', - GIV = 'giv', - GLDX = 'gldx', - GLM = 'glm', - GMT = 'gmt', - 'sol:gmt' = 'sol:gmt', - GNO = 'gno', - GNT = 'gnt', - 'sol:goat' = 'sol:goat', - GODS = 'gods', - GOHM = 'gohm', - GOG = 'gog', - GOLD = 'gold', - GOM = 'gom', - GOMINING = 'gomining', - GOT = 'got', - GRID = 'grid', - GRT = 'grt', - GST = 'gst', - GT = 'gt', - GTAAVE18DP = 'gtaave18dp', - GTBAT18DP = 'gtbat18dp', - GTCOMP18DP = 'gtcomp18dp', - GTGRT18DP = 'gtgrt18dp', - GTLINK18DP = 'gtlink18dp', - GTMKR18DP = 'gtmkr18dp', - GTSNX18DP = 'gtsnx18dp', - GTUNI18DP = 'gtuni18dp', - GTUSDT6DP = 'gtusdt6dp', - GTYFI18DP = 'gtyfi18dp', - GTWBTC8DP = 'gtwbtc8dp', - GTO = 'gto', - GTERC2DP = 'gterc2dp', - GTERC6DP = 'gterc6dp', - GTERC18DP = 'gterc18dp', - GUSD = 'gusd', - GUSDT = 'gusdt', - GXC = 'gxc', - GXT = 'gxt', - GYEN = 'gyen', - HBB = 'hbb', - HBTC = 'hbtc', - HCN = 'hcn', - HDO = 'hdo', - HEDG = 'hedg', - HEDGE = 'hedge', - HEDGESHIT = 'hedgeshit', - HEX = 'hex', - HFT = 'hft', - HGET = 'hget', - HIGH = 'high', - HIFI = 'hifi', - HIT = 'hit', - HKDX = 'hkdx', - HLC = 'hlc', - HMT = 'hmt', - 'sol:hnt' = 'sol:hnt', - HOLD = 'hold', - HOLY = 'holy', - HOP = 'hop', - HOT = 'hot', - HPO = 'hpo', - HQG = 'hqg', - HQT = 'hqt', - HST = 'hst', - HT = 'ht', - HTBEAR = 'htbear', - HTBULL = 'htbull', - HTDOOM = 'htdoom', - 'hteth:bgerchv2' = 'hteth:bgerchv2', - 'hteth:aut' = 'hteth:aut', - HTHEDGE = 'hthedge', - HTMOON = 'htmoon', - HUM = 'hum', - HUMV2 = 'humv2', - HUSD = 'husd', - HXRO = 'hxro', - HYB = 'hyb', - HYDRO = 'hydro', - HYDROPROTOCOL = 'hydroprotocol', - I8 = 'i8', - IBEUR = 'ibeur', - IBOX = 'ibox', - IBVOL = 'ibvol', - ICETH = 'iceth', - ID = 'id', - IDEX = 'idex', - IDRC = 'idrc', - IDRT = 'idrt', - ILV = 'ilv', - IMX = 'imx', - IMXV2 = 'imxv2', - INCX = 'incx', - IND = 'ind', - INDEX = 'index', - INDI = 'indi', - INF = 'inf', - INJ = 'inj', - INJV2 = 'injv2', - INST = 'inst', - INSUR = 'insur', - INV = 'inv', - INX = 'inx', - IOST = 'iost', - IOTX = 'iotx', - IP3 = 'ip3', - ISF = 'isf', - ISR = 'isr', - IVO = 'ivo', - IVY = 'ivy', - JASMY = 'jasmy', - JBC = 'jbc', - JCR = 'jcr', - JCG = 'jcg', - 'sol:jet' = 'sol:jet', - JFIN = 'jfin', - JPYX = 'jpyx', - JSOL = 'jsol', - KARATE = 'karate', - KARMA = 'karma', - KAS = 'kas', - KCASH = 'kcash', - KCS = 'kcs', - KEEP = 'keep', - KEY = 'key', - KILL0 = 'kill0', - KIN = 'kin', - 'sol:kin' = 'sol:kin', - KINE = 'kine', - KING = 'king', - KINTO = 'kinto', - KIRO = 'kiro', - KISHUI = 'kishui', - KITTY = 'kitty', - KNC = 'knc', - KNC2 = 'knc2', - KOIN = 'koin', - KOL = 'kol', - KOZ = 'koz', - KP3R = 'kp3r', - KRO = 'kro', - KROM = 'krom', - KTRC = 'ktrc', - KZE = 'kze', - L3 = 'l3', - L3USD = 'l3usd', - LA = 'la', - LADYS = 'ladys', - LAYER = 'layer', - LAYERZERO = 'layerzero', - LBA = 'lba', - LCX = 'lcx', - LDO = 'ldo', - LEND = 'lend', - LEO = 'leo', - LEOBEAR = 'leobear', - LEOBULL = 'leobull', - LEODOOM = 'leodoom', - LEOHEDGE = 'leohedge', - LEOMOON = 'leomoon', - LEV = 'lev', - LEVER = 'lever', - LGO = 'lgo', - LIEN = 'lien', - LIF3 = 'lif3', - LIKE = 'like', - LINA = 'lina', - LINK = 'link', - LINKBEAR = 'linkbear', - LINKBULL = 'linkbull', - LION = 'lion', - LIT = 'lit', - LITH = 'lith', - LITv2 = 'litv2', - LKR = 'lkr', - LMWR = 'lmwr', - LNC = 'lnc', - LOKA = 'loka', - LOOKS = 'looks', - LOOM = 'loom', - LOOM1 = 'loom1', - LOVE = 'love', - LOVELY = 'lovely', - LOWB = 'lowb', - LPT = 'lpt', - LQID = 'lqid', - LQTY = 'lqty', - LRC = 'lrc', - LRCV2 = 'lrcv2', - LSETH = 'lseth', - LSK = 'lsk', - LTCBEAR = 'ltcbear', - LTCBULL = 'ltcbull', - LTCDOOM = 'ltcdoom', - LTCHEDGE = 'ltchedge', - LTCMOON = 'ltcmoon', - LTO = 'lto', - LUA = 'lua', - LUNA = 'luna', - LUNAWORMHOLE = 'lunawormhole', - LYN = 'lyn', - LYXE = 'lyxe', - MAGIC = 'magic', - MANA = 'mana', - MAPS = 'maps', - MASA = 'masa', - MASK = 'mask', - MATH = 'math', - MATIC = 'matic', - MATICBEAR = 'maticbear', - MATICBEAR2021 = 'maticbear2021', - MATICBULL = 'maticbull', - MATTER = 'matter', - MAV = 'mav', - MBS = 'mbs', - MCAU = 'mcau', - MCB = 'mcb', - MCDAI = 'mcdai', - MCO = 'mco', - MCO2 = 'mco2', - MCS = 'mcs', - MCX = 'mcx', - MDFC = 'mdfc', - MDT = 'mdt', - MDX = 'mdx', - MEAN = 'mean', - MEDIA = 'media', - MEDIAv2 = 'mediav2', - MEDX = 'medx', - MEME = 'meme', - MEOW = 'meow', - MER = 'mer', - MET = 'met', - META = 'meta', - METIS = 'metis', - MEW = 'mew', - MFG = 'mfg', - MFPH = 'mfph', - MFT = 'mft', - MIDBEAR = 'midbear', - MIDBULL = 'midbull', - MIDDOOM = 'middoom', - MIDHEDGE = 'midhedge', - MIDMOON = 'midmoon', - MILKV2 = 'milkv2', - MIM = 'mim', - MIR = 'mir', - MITH = 'mith', - MIX = 'mix', - MIZN = 'mizn', - MKR = 'mkr', - MLN = 'mln', - MNS = 'mns', - MNT = 'mnt', - MNDE = 'mnde', - 'sol:mnde' = 'sol:mnde', - MOC = 'moc', - MOCA = 'moca', - MOCHI = 'mochi', - MOF = 'mof', - MOG = 'mog', - MOH = 'moh', - MOON = 'moon', - MOONSHIT = 'moonshit', - MOTHER = 'mother', - MNGO = 'mngo', - MPAY = 'mpay', - MPL = 'mpl', - 'sol:mplx' = 'sol:mplx', - MRTWEET = 'mrtweet', - MSN = 'msn', - MSOL = 'msol', - MTA = 'mta', - MTCN = 'mtcn', - MTH = 'mth', - MTL = 'mtl', - MTV = 'mtv', - MUSD = 'musd', - MVL = 'mvl', - MVI = 'mvi', - MWT = 'mwt', - MYRC = 'myrc', - MYTH = 'myth', - NAAI = 'naai', - NAS = 'nas', - NCT = 'nct', - NDX = 'ndx', - 'NEAR-ERC20' = 'near-erc20', - NEU = 'neu', - NEWO = 'newo', - NEXO = 'nexo', - 'NFCWIN-SB-2021' = 'nfcwin-sb-2021', - NFTFI = 'nftfi', - NFTX = 'nftx', - NGNT = 'ngnt', - NIAX = 'niax', - NKN = 'nkn', - NMR = 'nmr', - NOSANA = 'nosana', - NOTE = 'note', - NOVA = 'nova', - NPT = 'npt', - NPXS = 'npxs', - NS2DRP = 'ns2drp', - NU = 'nu', - NULS = 'nuls', - NUTS = 'nuts', - NXM = 'nxm', - NYM = 'nym', - NZDX = 'nzdx', - OAX = 'oax', - OCEAN = 'ocean', - OCEANV2 = 'oceanv2', - OCTAV = 'octav', - OGN = 'ogn', - OGV = 'ogv', - OKB = 'okb', - OKBBEAR = 'okbbear', - OKBBULL = 'okbbull', - OKBDOOM = 'okbdoom', - OKBHEDGE = 'okbhedge', - OKBMOON = 'okbmoon', - OM = 'om', - OMOLD = 'omold', - OMG = 'omg', - OMNI = 'omni', - OMNIA = 'omnia', - ONDO = 'ondo', - ONL = 'onl', - ONT = 'ont', - OOKI = 'ooki', - OP = 'op', - OPIUM = 'opium', - OPT = 'opt', - ORAI = 'orai', - ORBS = 'orbs', - ORC = 'orc', - ORN = 'orn', - 'sol:orca' = 'sol:orca', - OS = 'os', - OSETH = 'oseth', - OUSD = 'ousd', - OUSG = 'ousg', - OWN = 'own', - OXT = 'oxt', - OXY = 'oxy', - OHM = 'ohm', - PACT = 'pact', - PAI = 'pai', - PAR = 'par', - PASS = 'pass', - PAU = 'pau', - PAX = 'pax', - PAXG = 'paxg', - PAXGBEAR = 'paxgbear', - PAXGBULL = 'paxgbull', - PAY = 'pay', - PBCH = 'pbch', - PBTC = 'pbtc', - PDA = 'PDA', - PDATA = 'pdata', - PDI = 'pdi', - PEAQ = 'peaq', - PEBBLE = 'pebble', - PEG = 'peg', - PENDLE = 'pendle', - PEOPLE = 'people', - PEPE = 'pepe', - PERL = 'perl', - PERP = 'perp', - PETH = 'peth', - PHA = 'pha', - PHNX = 'phnx', - PICK = 'pick', - PICKLE = 'pickle', - PIE = 'pie', - PINE = 'pine', - PIRATE = 'pirate', - PLAY = 'play', - PIXEL = 'pixel', - PLC = 'plc', - PFCT = 'pfct', - PLANET = 'planet', - PLNX = 'plnx', - PLX = 'plx', - PMA = 'pma', - PNT = 'pnt', - POL = 'pol', - POLIS = 'polis', - POLY = 'poly', - POLYX = 'polyx', - POLS = 'pols', - POND = 'pond', - PONYS = 'ponys', - PORT = 'port', - POWR = 'powr', - PPT = 'ppt', - PRDX = 'prdx', - PRINTS = 'prints', - PRISM = 'prism', - PRO = 'pro', - PROM = 'prom', - PROS = 'pros', - PRT = 'prt', - PRTS = 'prts', - PSOL = 'psol', - PSP = 'psp', - PSTAKE = 'pstake', - PSY = 'psy', - PTU = 'ptu', - PUNDIX = 'pundix', - 'sol:pump' = 'sol:pump', - PUSD = 'pusd', - PUSH = 'push', - PV01 = 'pv01', - PXP = 'pxp', - PYR = 'pyr', - PYUSD = 'pyusd', - QASH = 'qash', - QCAD = 'qcad', - 'sol:qcad' = 'sol:qcad', - QOM = 'qom', - QUICK = 'quick', - QDT = 'qdt', - QKC = 'qkc', - QLINDO = 'qlindo', - QNT = 'qnt', - QRDO = 'qrdo', - QRL = 'qrl', - QSP = 'qsp', - QVT = 'qvt', - RAD = 'rad', - RADAR = 'radar', - RAIN = 'rain', - RALPH = 'ralph', - RAMP = 'ramp', - RARE = 'rare', - RARI = 'rari', - RAY = 'ray', - 'sol:ray' = 'sol:ray', - RAZOR = 'razor', - RBANK = 'rbank', - RBN = 'rbn', - RBX = 'rbx', - RBY = 'rby', - RCOIN = 'rcoin', - RCT = 'rct', - RDN = 'rdn', - RDNT = 'rdnt', - REAL = 'real', - REB = 'reb', - REBL = 'rebl', - REEF = 'reef', - REF = 'ref', - REKT = 'rekt', - REKTGAME = 'rektgame', - REN = 'ren', - RENBTC = 'renbtc', - RENDOGE = 'rendoge', - REP = 'rep', - REPV2 = 'repv2', - REQ = 'REQ', - 'RETH-ROCKET' = 'reth-rocket', - 'RETH-STAFI' = 'reth-stafi', - 'RETH-H' = 'reth-h', - RETH2 = 'reth2', - REVV = 'revv', - REZ = 'rez', - RFOX = 'rfox', - RFR = 'rfr', - RFUEL = 'rfuel', - RGT = 'rgt', - RIF = 'rif', - RINGX = 'ringx', - RIO = 'rio', - RLC = 'rlc', - RLUSD = 'rlusd', - RLY = 'rly', - RN = 'rn', - RND = 'rnd', - RNDR = 'rndr', - RNDT = 'rndt', - ROOK = 'rook', - RON = 'ron', - RONC = 'ronc', - ROOBEE = 'roobee', - RPK = 'rpk', - RPL = 'rpl', - RSR = 'rsr', - RSWETH = 'rsweth', - RUBX = 'rubx', - RUEDATK = 'ruedatk', - RUN = 'run', - RUNE = 'rune', - RVR = 'rvr', - RYOSHI = 'ryoshi', - SAFE = 'safe', - SAIL = 'sail', - SAITABIT = 'saitabit', - SALT = 'salt', - SAND = 'sand', - SASHIMI = 'sashimi', - SAMO = 'samo', - SBC = 'sbc', - 'sol:sbc' = 'sol:sbc', - 'sol:veur' = 'sol:veur', - 'sol:vchf' = 'sol:vchf', - 'sol:tbill' = 'sol:tbill', - 'sol:usdg' = 'sol:usdg', - 'sol:ausd' = 'sol:ausd', - SBF = 'sbf', - SBR = 'sbr', + '$Evmosia.com': '$evmosia.com', + '0xREVIEW': '0xreview', + '1INCH': '1inch', + '1UP': '1up', + '3CRV': '3crv', + AAVE: 'aave', + ABT: 'abt', + ACE: 'ace', + ACEV2: 'acev2', + ACX: 'acx', + ACXT: 'acxt', + ACH: 'ach', + ADABEAR: 'adabear', + ADABULL: 'adabull', + ADX: 'adx', + AE: 'ae', + AERGO: 'aergo', + AERGO1: 'aergo1', + AGEUR: 'ageur', + AGI: 'agi', + AGIX: 'agix', + AGLD: 'agld', + AGWD: 'agwd', + AION: 'aion', + AJNA: 'ajna', + AKRO: 'akro', + ALCX: 'alcx', + ALD: 'ald', + ALDRIN: 'aldrin', + ALEPH: 'aleph', + ALGOBEAR: 'algobear', + ALGOBULL: 'algobull', + ALGODOOM: 'algodoom', + ALGOHEDGE: 'algohedge', + ALGOMOON: 'algomoon', + ALTDOOM: 'altdoom', + ALTMOON: 'altmoon', + ALI: 'ali', + ALICE: 'alice', + ALK: 'alk', + ALM: 'alm', + ALPHA: 'alpha', + ALTBEAR: 'altbear', + ALTBULL: 'altbull', + ALTHEDGE: 'althedge', + AMKT: 'amkt', + AMN: 'amn', + AMO: 'amo', + AMP: 'amp', + AMPL: 'ampl', + AMON: 'amon', + AMPX: 'ampx', + ANA: 'ana', + ANC: 'anc', + ANGLE: 'angle', + ANKR: 'ankr', + ANKRETH: 'ankreth', + ANML: 'anml', + ANT: 'ant', + ANTV2: 'antv2', + AOA: 'aoa', + APPC: 'appc', + APT: 'apt', + AQT: 'aqt', + ARCT: 'arct', + ARCX: 'arcx', + ARKM: 'arkm', + ARMOR: 'armor', + ARPA: 'arpa', + ARTEQ: 'arteq', + ASD: 'asd', + AST: 'ast', + ASTO: 'asto', + ATA: 'ata', + ATF: 'atf', + ATH: 'ath', + ATL: 'atl', + ATLAS: 'atlas', + ATOMBEAR: 'atombear', + ATOMBULL: 'atombull', + ATRI: 'atri', + AUCTION: 'auction', + AUDD: 'audd', + AUDF: 'audf', + AUDIO: 'audio', + AUDX: 'audx', + AUSD: 'ausd', + AUSDT: 'ausdt', + AUST: 'aust', + AVA: 'ava', + AVT: 'avt', + AWBTC: 'awbtc', + AXPR: 'axpr', + AXS: 'axs', + AXSV2: 'axsv2', + AYFI: 'ayfi', + AZUKI: 'azuki', + AZUKI2: 'azuki2', + AZUKIPEPE: 'azukipepe', + BADGER: 'badger', + BAI: 'bai', + BAL: 'bal', + BAND: 'band', + BANK: 'bank', + BAO: 'bao', + BASIC: 'basic', + BAT: 'bat', + BAX: 'bax', + BBANK: 'bbank', + BBSAMO: 'bbsamo', + BBTC: 'BBTC', + BBX: 'bbx', + BCAP: 'bcap', + BCC: 'bcc', + BCHBEAR: 'bchbear', + BCHBULL: 'bchbull', + BCHDOOM: 'bchdoom', + BCHHEDGE: 'bchhedge', + BCHMOON: 'bchmoon', + BCIO: 'bcio', + BCUT: 'bcut', + BCT: 'bct', + BDXN: 'bdxn', + BEAM: 'beam', + BEAR: 'bear', + BEARSHIT: 'bearshit', + BED: 'bed', + BEND: 'bend', + BEPRO: 'bepro', + BETA: 'beta', + BGB: 'bgb', + BGBG: 'bgbg', + BICO: 'bico', + BID: 'bid', + BIDL: 'bidl', + BIGTIME: 'bigtime', + BIRD: 'bird', + BIT: 'bit', + BKT: 'bkt', + BKX: 'bkx', + BLCT: 'blct', + BLT: 'blt', + BLUR: 'blur', + BLUR0x083: 'blur0x083', + BLUR0xb93: 'blur0xb93', + BLZ: 'blz', + BNB: 'bnb', + BNBBEAR: 'bnbbear', + BNBBULL: 'bnbbull', + BNBDOOM: 'bnbdoom', + BNBHEDGE: 'bnbhedge', + BNBMOON: 'bnbmoon', + BNK: 'bnk', + BNL: 'bnl', + BNT: 'bnt', + BNTY: 'bnty', + BNVDA: 'bnvda', + BOB: 'bob', + BOND: 'bond', + BONK: 'bonk', + BONE: 'bone', + BORG: 'borg', + BOTTO: 'botto', + BLOCKS: 'blocks', + BOX: 'box', + BOBA: 'boba', + BRD: 'brd', + BRIBE: 'bribe', + BRZ: 'brz', + BSGG: 'bsgg', + BST: 'bst', + BSVBEAR: 'bsvbear', + BSVBULL: 'bsvbull', + BSVDOOM: 'bsvdoom', + BSVHEDGE: 'bsvhedge', + BSVMOON: 'bsvmoon', + BSX: 'bsx', + BTC2XFLI: 'btc2xfli', + BTMXBEAR: 'btmxbear', + BTMXBULL: 'btmxbull', + BTRST: 'btrst', + BTSG: 'btsg', + BTT: 'btt', + BTU: 'btu', + BUIDL: 'buidl', + BULL: 'bull', + BULLSHIT: 'bullshit', + BURP: 'burp', + BUSD: 'busd', + BUY: 'buy', + BPT: 'bpt', + BVOL: 'bvol', + BXX: 'bxx', + BXXV1: 'bxxv1', + BZZ: 'bzz', + C3: 'c3', + C6P: 'c6p', + C8P: 'c8p', + C98: 'c98', + CACXT: 'cacxt', + CADX: 'cadx', + CAG: 'cag', + CANTO: 'canto', + CAPS: 'caps', + CARV: 'carv', + CASH: 'cash', + CBAT: 'cbat', + CBC: 'cbc', + CBETH: 'cbeth', + CBRL: 'cbrl', + CCAI: 'ccai', + CCT: 'cct', + CDAG: 'cdag', + CDAI: 'cdai', + CDAIV2: 'cdaiV2', + CDT: 'cdt', + CEL: 'cel', + CELLS: 'cells', + CELR: 'celr', + CERE: 'cere', + CETH: 'ceth', + CFX: 'cfx', + CHAINLINK: 'chainlink', + CHART: 'chart', + CHO: 'cho', + CHFX: 'chfx', + CHR: 'chr', + CHSB: 'chsb', + CHZ: 'chz', + CIBO: 'cibo', + CIX100: 'cix100', + CLIQ: 'cliq', + CLN: 'cln', + CLT: 'clt', + CLXY: 'clxy', + CLV: 'clv', + CMFI: 'cmfi', + CNFI: 'cnfi', + CNG: 'cng', + CNYX: 'cnyx', + COLLAR: 'collar', + COMBO: 'combo', + COMP: 'comp', + CONV: 'conv', + COPE: 'cope', + CORE: 'core', + COS: 'cos', + COTI: 'coti', + COVAL: 'coval', + COVER: 'cover', + COVERPROTOCOL: 'coverprotocol', + COW: 'cow', + CPAY: 'cpay', + CPLT: 'cplt', + CPOOL: 'cpool', + CQT: 'cqt', + CQX: 'cqx', + CRA: 'cra', + CRDT: 'crdt', + CRE: 'cre', + CREAM: 'cream', + CREP: 'crep', + CRI: 'cri', + CRO: 'cro', + CRV: 'crv', + CRPT: 'crpt', + CRPT1: 'crpt1', + CSLV: 'cslv', + CSOL: 'csol', + CSP: 'csp', + CTSI: 'ctsi', + CTX: 'ctx', + CUBE: 'cube', + CUSD: 'cusd', + CUSDC: 'cusdc', + CVXFXS: 'cvxfxs', + CWAR: 'cwar', + CWBTC: 'cwbtc', + CVC: 'cvc', + CVX: 'cvx', + CXT: 'cxt', + CYBER: 'cyber', + CZRX: 'czrx', + DACXI: 'dacxi', + DADI: 'dadi', + DAMM: 'damm', + DAI: 'dai', + DAO: 'dao', + DAOLANG: 'daolang', + DAR: 'dar', + DATA: 'data', + DATAV2: 'datav2', + DATAECON: 'dataecon', + DAWN: 'dawn', + DEC: 'dec', + DEGO: 'dego', + DENT: 'dent', + DEP: 'dep', + DEPAY: 'depay', + DEXA: 'dexa', + DEXE: 'dexe', + DFD: 'dfd', + DFI: 'dfi', + DFL: 'dfl', + DFX: 'dfx', + DGCL: 'dgcl', + DGD: 'dgd', + DGLD: 'dgld', + DGX: 'dgx', + DHT: 'dht', + DIGG: 'digg', + DIA: 'dia', + DING: 'ding', + DIPE: 'dipe', + DMG: 'dmg', + DMT: 'dmt', + DNA: 'dna', + DNT: 'dnt', + DODO: 'dodo', + DOG: 'dog', + DOGE: 'doge', + DOGEBEAR: 'dogebear', + DOGEBEAR2021: 'dogebear2021', + DOGEBULL: 'dogebull', + DOMI: 'domi', + DOOM: 'doom', + DOOMSHIT: 'doomshit', + DOSE: 'dose', + DOTK: 'dotk', + DPAY: 'dpay', + DPI: 'dpi', + DPX: 'dpx', + DPY: 'dpy', + DRAM: 'dram', + DRGNBEAR: 'drgnbear', + DRGNBULL: 'drgnbull', + DRPU: 'drpu', + DRV: 'drv', + DUC: 'duc', + DUCK: 'duck', + DUSD: 'dusd', + DUSK: 'dusk', + DUST: 'dust', + DX1U: 'dx1u', + DXGT: 'dxgt', + DXO: 'dxo', + DXPT: 'dxpt', + DXST: 'dxst', + DYDX: 'dydx', + DYN: 'dyn', + EASY: 'easy', + EBTCQ: 'ebtcq', + ECHT: 'echt', + 'eth:eco': 'eth:eco', + ECOX: 'ecox', + EDEN: 'eden', + EDISON: 'edison', + EDLC: 'edlc', + EDO: 'edo', + ELON: 'elon', + EMB: 'emb', + EDN: 'edn', + EDR: 'edr', + EFI: 'efi', + EGL: 'egl', + EGLD: 'egld', + EGOLD: 'egold', + EIGEN: 'eigen', + ELF: 'elf', + ELU: 'elu', + EMAID: 'emaid', + EMX: 'emx', + ENA: 'ena', + ENG: 'eng', + ENJ: 'enj', + ENS: 'ens', + EON: 'eon', + EOP: 'eop', + EOSBEAR: 'eosbear', + EOSBULL: 'eosbull', + EOSDOOM: 'eosdoom', + EOSHEDGE: 'eoshedge', + EOSMOON: 'eosmoon', + EQO: 'eqo', + ESE: 'ese', + ETA: 'eta', + ETHBULL: 'ethbull', + ETCBEAR: 'etcbear', + ETCBULL: 'etcbull', + ETCDOOM: 'etcdoom', + ETCHEDOOM: 'etchedoom', + ETCMOON: 'etcmoon', + ETHBEAR: 'ethbear', + ETHDOOM: 'ethdoom', + ETHFI: 'ethfi', + 'eth:block': 'eth:block', + 'eth:bito': 'eth:bito', + 'ETH:ECASH': 'eth:ecash', + 'ETH:OORT': 'eth:oort', + 'eth:ultra': 'eth:ultra', + 'eth:dragonx': 'eth:dragonx', + ETHHEDGE: 'ethhedge', + ETHMOON: 'ethmoon', + ETHOPT: 'ethopt', + ETHOS: 'ethos', + ETHTON: 'ethton', + ETHX: 'ethx', + ETV: 'etv', + ETX: 'etx', + EUL: 'eul', + EURE: 'eure', + EURL: 'eurl', + EUROE: 'euroe', + EUROP: 'europ', + EURS: 'eurs', + EURST: 'eurst', + EURT: 'eurt', + EURX: 'eurx', + EUX: 'eux', + EVER: 'ever', + EVERY: 'every', + EVRY: 'evry', + EVX: 'evx', + EXCHBEAR: 'exchbear', + EXCHBULL: 'exchbull', + EXCHDOOM: 'exchdoom', + EXCHHEDGE: 'exchhedge', + EXCHMOON: 'exchmoon', + EXE: 'exe', + FANT: 'fant', + FARM: 'farm', + FEI: 'fei', + FET: 'fet', + FET1: 'fet1', + FDT: 'fdt', + FDUSD: 'fdusd', + FF1: 'ff1', + FF6000: 'ff6000', + FFT: 'fft', + FIDA: 'fida', + FIDU: 'fidu', + FIN: 'fin', + FIRE: 'fire', + FIRSTBLOOD: 'firstblood', + FIS: 'fis', + FIXED: 'fixed', + FLIP: 'flip', + FLOKI: 'floki', + FLUX: 'flux', + FLY: 'fly', + FMF: 'fmf', + FOLD: 'fold', + FOR: 'for', + FOREX: 'forex', + FORT: 'fort', + FORTH: 'forth', + FOX: 'fox', + FPIS: 'fpis', + FRAX: 'frax', + FRONT: 'front', + FT: 'ft', + FTM: 'ftm', + FTT: 'ftt', + FTT20: 'ftt20', + FTX2: 'ftx2', + FUCKFTX: 'fuckftx', + FUN: 'fun', + FWB: 'fwb', + FX: 'fx', + FXRT: 'fxrt', + FXS: 'fxs', + G: 'g', + GAL: 'gal', + GALA: 'gala', + GALAV2: 'galav2', + 'GAME.COM': 'game.com', + GAMMA: 'gamma', + 'sol:gari': 'sol:gari', + 'sol:usd1': 'sol:usd1', + 'tsol:slnd': 'tsol:slnd', + 'tsol:orca': 'tsol:orca', + 'tsol:usdc': 'tsol:usdc', + 'tsol:ray': 'tsol:ray', + 'tsol:gmt': 'tsol:gmt', + 'tsol:usdt': 'tsol:usdt', + 'tsol:srm': 'tsol:srm', + 'tsol:gari': 'tsol:gari', + GAS: 'gas', + GATE: 'gate', + GBPT: 'gbpt', + GBPX: 'gbpx', + GDT: 'gdt', + GEAR: 'gear', + GEC: 'gec', + GEL: 'gel', + GEN: 'gen', + GENE: 'gene', + GENIE: 'genie', + GF: 'gf', + GFI: 'gfi', + GHST: 'ghst', + GHUB: 'ghub', + GIGDROP: 'gigdrop', + GIV: 'giv', + GLDX: 'gldx', + GLM: 'glm', + GMT: 'gmt', + 'sol:gmt': 'sol:gmt', + GNO: 'gno', + GNT: 'gnt', + 'sol:goat': 'sol:goat', + GODS: 'gods', + GOHM: 'gohm', + GOG: 'gog', + GOLD: 'gold', + GOM: 'gom', + GOMINING: 'gomining', + GOT: 'got', + GRID: 'grid', + GRT: 'grt', + GST: 'gst', + GT: 'gt', + GTAAVE18DP: 'gtaave18dp', + GTBAT18DP: 'gtbat18dp', + GTCOMP18DP: 'gtcomp18dp', + GTGRT18DP: 'gtgrt18dp', + GTLINK18DP: 'gtlink18dp', + GTMKR18DP: 'gtmkr18dp', + GTSNX18DP: 'gtsnx18dp', + GTUNI18DP: 'gtuni18dp', + GTUSDT6DP: 'gtusdt6dp', + GTYFI18DP: 'gtyfi18dp', + GTWBTC8DP: 'gtwbtc8dp', + GTO: 'gto', + GTERC2DP: 'gterc2dp', + GTERC6DP: 'gterc6dp', + GTERC18DP: 'gterc18dp', + GUSD: 'gusd', + GUSDT: 'gusdt', + GXC: 'gxc', + GXT: 'gxt', + GYEN: 'gyen', + HBB: 'hbb', + HBTC: 'hbtc', + HCN: 'hcn', + HDO: 'hdo', + HEDG: 'hedg', + HEDGE: 'hedge', + HEDGESHIT: 'hedgeshit', + HEX: 'hex', + HFT: 'hft', + HGET: 'hget', + HIGH: 'high', + HIFI: 'hifi', + HIT: 'hit', + HKDX: 'hkdx', + HLC: 'hlc', + HMT: 'hmt', + 'sol:hnt': 'sol:hnt', + HOLD: 'hold', + HOLY: 'holy', + HOP: 'hop', + HOT: 'hot', + HPO: 'hpo', + HQG: 'hqg', + HQT: 'hqt', + HST: 'hst', + HT: 'ht', + HTBEAR: 'htbear', + HTBULL: 'htbull', + HTDOOM: 'htdoom', + 'hteth:bgerchv2': 'hteth:bgerchv2', + 'hteth:aut': 'hteth:aut', + HTHEDGE: 'hthedge', + HTMOON: 'htmoon', + HUM: 'hum', + HUMV2: 'humv2', + HUSD: 'husd', + HXRO: 'hxro', + HYB: 'hyb', + HYDRO: 'hydro', + HYDROPROTOCOL: 'hydroprotocol', + I8: 'i8', + IBEUR: 'ibeur', + IBOX: 'ibox', + IBVOL: 'ibvol', + ICETH: 'iceth', + ID: 'id', + IDEX: 'idex', + IDRC: 'idrc', + IDRT: 'idrt', + ILV: 'ilv', + IMX: 'imx', + IMXV2: 'imxv2', + INCX: 'incx', + IND: 'ind', + INDEX: 'index', + INDI: 'indi', + INF: 'inf', + INJ: 'inj', + INJV2: 'injv2', + INST: 'inst', + INSUR: 'insur', + INV: 'inv', + INX: 'inx', + IOST: 'iost', + IOTX: 'iotx', + IP3: 'ip3', + ISF: 'isf', + ISR: 'isr', + IVO: 'ivo', + IVY: 'ivy', + JASMY: 'jasmy', + JBC: 'jbc', + JCR: 'jcr', + JCG: 'jcg', + 'sol:jet': 'sol:jet', + JFIN: 'jfin', + JPYX: 'jpyx', + JSOL: 'jsol', + KARATE: 'karate', + KARMA: 'karma', + KAS: 'kas', + KCASH: 'kcash', + KCS: 'kcs', + KEEP: 'keep', + KEY: 'key', + KILL0: 'kill0', + KIN: 'kin', + 'sol:kin': 'sol:kin', + KINE: 'kine', + KING: 'king', + KINTO: 'kinto', + KIRO: 'kiro', + KISHUI: 'kishui', + KITTY: 'kitty', + KNC: 'knc', + KNC2: 'knc2', + KOIN: 'koin', + KOL: 'kol', + KOZ: 'koz', + KP3R: 'kp3r', + KRO: 'kro', + KROM: 'krom', + KTRC: 'ktrc', + KZE: 'kze', + L3: 'l3', + L3USD: 'l3usd', + LA: 'la', + LADYS: 'ladys', + LAYER: 'layer', + LAYERZERO: 'layerzero', + LBA: 'lba', + LCX: 'lcx', + LDO: 'ldo', + LEND: 'lend', + LEO: 'leo', + LEOBEAR: 'leobear', + LEOBULL: 'leobull', + LEODOOM: 'leodoom', + LEOHEDGE: 'leohedge', + LEOMOON: 'leomoon', + LEV: 'lev', + LEVER: 'lever', + LGO: 'lgo', + LIEN: 'lien', + LIF3: 'lif3', + LIKE: 'like', + LINA: 'lina', + LINK: 'link', + LINKBEAR: 'linkbear', + LINKBULL: 'linkbull', + LION: 'lion', + LIT: 'lit', + LITH: 'lith', + LITv2: 'litv2', + LKR: 'lkr', + LMWR: 'lmwr', + LNC: 'lnc', + LOKA: 'loka', + LOOKS: 'looks', + LOOM: 'loom', + LOOM1: 'loom1', + LOVE: 'love', + LOVELY: 'lovely', + LOWB: 'lowb', + LPT: 'lpt', + LQID: 'lqid', + LQTY: 'lqty', + LRC: 'lrc', + LRCV2: 'lrcv2', + LSETH: 'lseth', + LSK: 'lsk', + LTCBEAR: 'ltcbear', + LTCBULL: 'ltcbull', + LTCDOOM: 'ltcdoom', + LTCHEDGE: 'ltchedge', + LTCMOON: 'ltcmoon', + LTO: 'lto', + LUA: 'lua', + LUNA: 'luna', + LUNAWORMHOLE: 'lunawormhole', + LYN: 'lyn', + LYXE: 'lyxe', + MAGIC: 'magic', + MANA: 'mana', + MAPS: 'maps', + MASA: 'masa', + MASK: 'mask', + MATH: 'math', + MATIC: 'matic', + MATICBEAR: 'maticbear', + MATICBEAR2021: 'maticbear2021', + MATICBULL: 'maticbull', + MATTER: 'matter', + MAV: 'mav', + MBS: 'mbs', + MCAU: 'mcau', + MCB: 'mcb', + MCDAI: 'mcdai', + MCO: 'mco', + MCO2: 'mco2', + MCS: 'mcs', + MCX: 'mcx', + MDFC: 'mdfc', + MDT: 'mdt', + MDX: 'mdx', + MEAN: 'mean', + MEDIA: 'media', + MEDIAv2: 'mediav2', + MEDX: 'medx', + MEME: 'meme', + MEOW: 'meow', + MER: 'mer', + MET: 'met', + META: 'meta', + METIS: 'metis', + MEW: 'mew', + MFG: 'mfg', + MFPH: 'mfph', + MFT: 'mft', + MIDBEAR: 'midbear', + MIDBULL: 'midbull', + MIDDOOM: 'middoom', + MIDHEDGE: 'midhedge', + MIDMOON: 'midmoon', + MILKV2: 'milkv2', + MIM: 'mim', + MIR: 'mir', + MITH: 'mith', + MIX: 'mix', + MIZN: 'mizn', + MKR: 'mkr', + MLN: 'mln', + MNS: 'mns', + MNT: 'mnt', + MNDE: 'mnde', + 'sol:mnde': 'sol:mnde', + MOC: 'moc', + MOCA: 'moca', + MOCHI: 'mochi', + MOF: 'mof', + MOG: 'mog', + MOH: 'moh', + MOON: 'moon', + MOONSHIT: 'moonshit', + MOTHER: 'mother', + MNGO: 'mngo', + MPAY: 'mpay', + MPL: 'mpl', + 'sol:mplx': 'sol:mplx', + MRTWEET: 'mrtweet', + MSN: 'msn', + MSOL: 'msol', + MTA: 'mta', + MTCN: 'mtcn', + MTH: 'mth', + MTL: 'mtl', + MTV: 'mtv', + MUSD: 'musd', + MVL: 'mvl', + MVI: 'mvi', + MWT: 'mwt', + MYRC: 'myrc', + MYTH: 'myth', + NAAI: 'naai', + NAS: 'nas', + NCT: 'nct', + NDX: 'ndx', + 'NEAR-ERC20': 'near-erc20', + NEU: 'neu', + NEWO: 'newo', + NEXO: 'nexo', + 'NFCWIN-SB-2021': 'nfcwin-sb-2021', + NFTFI: 'nftfi', + NFTX: 'nftx', + NGNT: 'ngnt', + NIAX: 'niax', + NKN: 'nkn', + NMR: 'nmr', + NOSANA: 'nosana', + NOTE: 'note', + NOVA: 'nova', + NPT: 'npt', + NPXS: 'npxs', + NS2DRP: 'ns2drp', + NU: 'nu', + NULS: 'nuls', + NUTS: 'nuts', + NXM: 'nxm', + NYM: 'nym', + NZDX: 'nzdx', + OAX: 'oax', + OCEAN: 'ocean', + OCEANV2: 'oceanv2', + OCTAV: 'octav', + OGN: 'ogn', + OGV: 'ogv', + OKB: 'okb', + OKBBEAR: 'okbbear', + OKBBULL: 'okbbull', + OKBDOOM: 'okbdoom', + OKBHEDGE: 'okbhedge', + OKBMOON: 'okbmoon', + OM: 'om', + OMOLD: 'omold', + OMG: 'omg', + OMNI: 'omni', + OMNIA: 'omnia', + ONDO: 'ondo', + ONL: 'onl', + ONT: 'ont', + OOKI: 'ooki', + OP: 'op', + OPIUM: 'opium', + OPT: 'opt', + ORAI: 'orai', + ORBS: 'orbs', + ORC: 'orc', + ORN: 'orn', + 'sol:orca': 'sol:orca', + OS: 'os', + OSETH: 'oseth', + OUSD: 'ousd', + OUSG: 'ousg', + OWN: 'own', + OXT: 'oxt', + OXY: 'oxy', + OHM: 'ohm', + PACT: 'pact', + PAI: 'pai', + PAR: 'par', + PASS: 'pass', + PAU: 'pau', + PAX: 'pax', + PAXG: 'paxg', + PAXGBEAR: 'paxgbear', + PAXGBULL: 'paxgbull', + PAY: 'pay', + PBCH: 'pbch', + PBTC: 'pbtc', + PDA: 'PDA', + PDATA: 'pdata', + PDI: 'pdi', + PEAQ: 'peaq', + PEBBLE: 'pebble', + PEG: 'peg', + PENDLE: 'pendle', + PEOPLE: 'people', + PEPE: 'pepe', + PERL: 'perl', + PERP: 'perp', + PETH: 'peth', + PHA: 'pha', + PHNX: 'phnx', + PICK: 'pick', + PICKLE: 'pickle', + PIE: 'pie', + PINE: 'pine', + PIRATE: 'pirate', + PLAY: 'play', + PIXEL: 'pixel', + PLC: 'plc', + PFCT: 'pfct', + PLANET: 'planet', + PLNX: 'plnx', + PLX: 'plx', + PMA: 'pma', + PNT: 'pnt', + POL: 'pol', + POLIS: 'polis', + POLY: 'poly', + POLYX: 'polyx', + POLS: 'pols', + POND: 'pond', + PONYS: 'ponys', + PORT: 'port', + POWR: 'powr', + PPT: 'ppt', + PRDX: 'prdx', + PRINTS: 'prints', + PRISM: 'prism', + PRO: 'pro', + PROM: 'prom', + PROS: 'pros', + PRT: 'prt', + PRTS: 'prts', + PSOL: 'psol', + PSP: 'psp', + PSTAKE: 'pstake', + PSY: 'psy', + PTU: 'ptu', + PUNDIX: 'pundix', + 'sol:pump': 'sol:pump', + PUSD: 'pusd', + PUSH: 'push', + PV01: 'pv01', + PXP: 'pxp', + PYR: 'pyr', + PYUSD: 'pyusd', + QASH: 'qash', + QCAD: 'qcad', + 'sol:qcad': 'sol:qcad', + QOM: 'qom', + QUICK: 'quick', + QDT: 'qdt', + QKC: 'qkc', + QLINDO: 'qlindo', + QNT: 'qnt', + QRDO: 'qrdo', + QRL: 'qrl', + QSP: 'qsp', + QVT: 'qvt', + RAD: 'rad', + RADAR: 'radar', + RAIN: 'rain', + RALPH: 'ralph', + RAMP: 'ramp', + RARE: 'rare', + RARI: 'rari', + RAY: 'ray', + 'sol:ray': 'sol:ray', + RAZOR: 'razor', + RBANK: 'rbank', + RBN: 'rbn', + RBX: 'rbx', + RBY: 'rby', + RCOIN: 'rcoin', + RCT: 'rct', + RDN: 'rdn', + RDNT: 'rdnt', + REAL: 'real', + REB: 'reb', + REBL: 'rebl', + REEF: 'reef', + REF: 'ref', + REKT: 'rekt', + REKTGAME: 'rektgame', + REN: 'ren', + RENBTC: 'renbtc', + RENDOGE: 'rendoge', + REP: 'rep', + REPV2: 'repv2', + REQ: 'REQ', + 'RETH-ROCKET': 'reth-rocket', + 'RETH-STAFI': 'reth-stafi', + 'RETH-H': 'reth-h', + RETH2: 'reth2', + REVV: 'revv', + REZ: 'rez', + RFOX: 'rfox', + RFR: 'rfr', + RFUEL: 'rfuel', + RGT: 'rgt', + RIF: 'rif', + RINGX: 'ringx', + RIO: 'rio', + RLC: 'rlc', + RLUSD: 'rlusd', + RLY: 'rly', + RN: 'rn', + RND: 'rnd', + RNDR: 'rndr', + RNDT: 'rndt', + ROOK: 'rook', + RON: 'ron', + RONC: 'ronc', + ROOBEE: 'roobee', + RPK: 'rpk', + RPL: 'rpl', + RSR: 'rsr', + RSWETH: 'rsweth', + RUBX: 'rubx', + RUEDATK: 'ruedatk', + RUN: 'run', + RUNE: 'rune', + RVR: 'rvr', + RYOSHI: 'ryoshi', + SAFE: 'safe', + SAIL: 'sail', + SAITABIT: 'saitabit', + SALT: 'salt', + SAND: 'sand', + SASHIMI: 'sashimi', + SAMO: 'samo', + SBC: 'sbc', + 'sol:sbc': 'sol:sbc', + 'sol:veur': 'sol:veur', + 'sol:vchf': 'sol:vchf', + 'sol:tbill': 'sol:tbill', + 'sol:usdg': 'sol:usdg', + 'sol:ausd': 'sol:ausd', + SBF: 'sbf', + SBR: 'sbr', // Saber IOU Token (Liquidity Mining Rewards) - SBRIOU = 'sbriou', - SCNSOL = 'scnsol', - SCOPE = 'scope', - SD = 'sd', - SDL = 'sdl', - SECO = 'seco', - SETH = 'seth', - 'SETH-H' = 'seth-h', - SETH2 = 'seth2', - SEWERCOIN = 'sewercoin', - SFI = 'sfi', - SGA = 'sga', - SGDX = 'sgdx', - SGR = 'sgr', - SGT = 'sgt', - SHDW = 'shdw', - SHEESH = 'sheesh', - SHIDO = 'shido', - SHK = 'shk', - SHOPX = 'shopx', - SHOW = 'show', - SHIB = 'shib', - SHR = 'shr', - SIH = 'sih', - SILV = 'silv', - SIPHER = 'sipher', - SIS = 'sis', - SKALE = 'skale', - SLAB = 'slab', - SLC = 'slc', - SLCL = 'slcl', - 'sol:slnd' = 'sol:slnd', - SLOT = 'slot', - SLP = 'slp', - SLRS = 'slrs', - SLVX = 'slvx', - SMT = 'smt', - SNC = 'snc', - SNM = 'snm', - SNOV = 'snov', - SNT = 'snt', - SNX = 'snx', - SNY = 'sny', - SOC = 'soc', - SOHM = 'sohm', - SOMM = 'somm', - SOS = 'sos', - SPA = 'spa', - SPELL = 'spell', - SPF = 'spf', - SPO = 'spo', - SOLVE = 'solve', - 'SQUID2.0' = 'squid2.0', - SRNT = 'srnt', - SRM = 'srm', - 'sol:srm' = 'sol:srm', - SSV = 'ssv', - STARS = 'stars', - STATE = 'state', - STBU = 'stbu', - STC = 'stc', - STCV2 = 'stcv2', - STEP = 'step', - STETH = 'steth', - STG = 'stg', - STKAAVE = 'stkaave', - STMX = 'stmx', - STORE = 'store', - STORJ = 'storj', - STORM = 'storm', - STPT = 'stpt', - STRIKE = 'strike', - STRK = 'strk', - STRONG = 'strong', - STSOL = 'stsol', - STZEN = 'stzen', - 'SUI-ERC20' = 'sui-erc20', - SUN = 'sun', - SUNNY = 'sunny', - SUPER = 'super', - SUPERPERIO = 'superperio', - SUSD = 'susd', - SUSDE = 'susde', - SUSHI = 'sushi', - SQUIG = 'squig', - SVT = 'svt', - SWAG = 'swag', - SWAP = 'SWAP', - SWEAT = 'sweat', - SWETH = 'sweth', - SWISE = 'swice', - SWITCH = 'switch', - SWRV = 'swrv', - SXP = 'sxp', - SYN = 'syn', - SYNCH = 'synch', - SYRUP = 'syrup', - 'SYNTH-SUSD' = 'synth-susd', - TAO = 'tao', - THRESHOLD = 'threshold', - THEU = 'theu', - TAUD = 'taud', - TBILL = 'tbill', - TBTC1 = 'tbtc1', - TBTC2 = 'tbtc2', - TCAD = 'tcad', - TCO = 'tco', - TEIGEN = 'teigen', - TEINU = 'teinu', - TEL = 'tel', - TELEGRAMDAO = 'telegramdao', - TEN = 'ten', - TENX = 'tenx', - TERC = 'terc', - TEUROC = 'teuroc', - TERC2DP = 'terc2dp', - TERC6DP = 'terc6dp', - TERC18DP = 'terc18DP', - TERC20 = 'terc20', - TERC2DP1 = 'terc2dp1', - TERC2DP2 = 'terc2dp2', - TERC2DP3 = 'terc2dp3', - TERC2DP4 = 'terc2dp4', - TERC2DP5 = 'terc2dp5', - TERC6DP1 = 'terc6dp1', - TERC6DP2 = 'terc6dp2', - TERC6DP3 = 'terc6dp3', - TERC6DP4 = 'terc6dp4', - TERC6DP5 = 'terc6dp5', - TERC18DP1 = 'terc18dp1', - TERC18DP2 = 'terc18dp2', - TERC18DP3 = 'terc18dp3', - TERC18DP4 = 'terc18dp4', - TERC18DP5 = 'terc18dp5', - TERC18DP6 = 'terc18dp6', - TERC18DP7 = 'terc18dp7', - TERC18DP8 = 'terc18dp8', - TERC18DP9 = 'terc18dp9', - TERC18DP10 = 'terc18dp10', - TERC18DP11 = 'terc18dp11', - TERC18DP12 = 'terc18dp12', - TERC18DP13 = 'terc18dp13', - TERC18DP14 = 'terc18dp14', - TERC18DP15 = 'terc18dp15', - BGERCH = 'bgerch', - AMSTEST = 'amstest', - TERM = 'term', - TGBP = 'tgbp', - TUSDS = 'tusds', - TGOUSD = 'tgousd', - 'hteth:gousd' = 'hteth:gousd', - 'hteth:usd1' = 'hteth:usd1', - 'hteth:stgusd1' = 'hteth:stgusd1', - 'hteth:tsteth' = 'hteth:tsteth', - THKD = 'thkd', - THUNDER = 'thunder', - TIO = 'tio', - TIOX = 'tiox', - TKMK = 'tkmk', - TKNT = 'tknt', - TKO = 'tko', - TKX = 'tkx', - TLAB = 'tlab', - TLM = 'tlm', - TLOS = 'tlos', - TMATIC = 'tmatic', - TMSN = 'tmsn', - TNT = 'tnt', - TOKAMAK = 'tokamak', - TOKE = 'toke', - TOKEN = 'token', - TOMI = 'tomi', - TOMOBEAR = 'tomobear', - TOMOBEAR2 = 'tomobear2', - TOMOBULL = 'tomobull', - TOK = 'tok', - TONCOIN = 'toncoin', - TOPM = 'topm', - TRAC = 'trac', - TRAXX = 'traxx', - TRB = 'trb', - TRIBE = 'tribe', - TRIBL = 'tribl', - TRL = 'trl', - TROY = 'troy', - TRST = 'trst', - TRU = 'tru', - TRUF = 'truf', - TRUFV2 = 'trufv2', - TRUMPLOSE = 'trumplose', - TRUMPWIN = 'trumpwin', - TRXBEAR = 'trxbear', - TRXBULL = 'trxbull', - TRXDOOM = 'trxdoom', - 'TRX-ERC20' = 'TRX-ERC20', - TRXHEDGE = 'trxhedge', - TRXMOON = 'trxmoon', + SBRIOU: 'sbriou', + SCNSOL: 'scnsol', + SCOPE: 'scope', + SD: 'sd', + SDL: 'sdl', + SECO: 'seco', + SETH: 'seth', + 'SETH-H': 'seth-h', + SETH2: 'seth2', + SEWERCOIN: 'sewercoin', + SFI: 'sfi', + SGA: 'sga', + SGDX: 'sgdx', + SGR: 'sgr', + SGT: 'sgt', + SHDW: 'shdw', + SHEESH: 'sheesh', + SHIDO: 'shido', + SHK: 'shk', + SHOPX: 'shopx', + SHOW: 'show', + SHIB: 'shib', + SHR: 'shr', + SIH: 'sih', + SILV: 'silv', + SIPHER: 'sipher', + SIS: 'sis', + SKALE: 'skale', + SLAB: 'slab', + SLC: 'slc', + SLCL: 'slcl', + 'sol:slnd': 'sol:slnd', + SLOT: 'slot', + SLP: 'slp', + SLRS: 'slrs', + SLVX: 'slvx', + SMT: 'smt', + SNC: 'snc', + SNM: 'snm', + SNOV: 'snov', + SNT: 'snt', + SNX: 'snx', + SNY: 'sny', + SOC: 'soc', + SOHM: 'sohm', + SOMM: 'somm', + SOS: 'sos', + SPA: 'spa', + SPELL: 'spell', + SPF: 'spf', + SPO: 'spo', + SOLVE: 'solve', + 'SQUID2.0': 'squid2.0', + SRNT: 'srnt', + SRM: 'srm', + 'sol:srm': 'sol:srm', + SSV: 'ssv', + STARS: 'stars', + STATE: 'state', + STBU: 'stbu', + STC: 'stc', + STCV2: 'stcv2', + STEP: 'step', + STETH: 'steth', + STG: 'stg', + STKAAVE: 'stkaave', + STMX: 'stmx', + STORE: 'store', + STORJ: 'storj', + STORM: 'storm', + STPT: 'stpt', + STRIKE: 'strike', + STRK: 'strk', + STRONG: 'strong', + STSOL: 'stsol', + STZEN: 'stzen', + 'SUI-ERC20': 'sui-erc20', + SUN: 'sun', + SUNNY: 'sunny', + SUPER: 'super', + SUPERPERIO: 'superperio', + SUSD: 'susd', + SUSDE: 'susde', + SUSHI: 'sushi', + SQUIG: 'squig', + SVT: 'svt', + SWAG: 'swag', + SWAP: 'SWAP', + SWEAT: 'sweat', + SWETH: 'sweth', + SWISE: 'swice', + SWITCH: 'switch', + SWRV: 'swrv', + SXP: 'sxp', + SYN: 'syn', + SYNCH: 'synch', + SYRUP: 'syrup', + 'SYNTH-SUSD': 'synth-susd', + TAO: 'tao', + THRESHOLD: 'threshold', + THEU: 'theu', + TAUD: 'taud', + TBILL: 'tbill', + TBTC1: 'tbtc1', + TBTC2: 'tbtc2', + TCAD: 'tcad', + TCO: 'tco', + TEIGEN: 'teigen', + TEINU: 'teinu', + TEL: 'tel', + TELEGRAMDAO: 'telegramdao', + TEN: 'ten', + TENX: 'tenx', + TERC: 'terc', + TEUROC: 'teuroc', + TERC2DP: 'terc2dp', + TERC6DP: 'terc6dp', + TERC18DP: 'terc18DP', + TERC20: 'terc20', + TERC2DP1: 'terc2dp1', + TERC2DP2: 'terc2dp2', + TERC2DP3: 'terc2dp3', + TERC2DP4: 'terc2dp4', + TERC2DP5: 'terc2dp5', + TERC6DP1: 'terc6dp1', + TERC6DP2: 'terc6dp2', + TERC6DP3: 'terc6dp3', + TERC6DP4: 'terc6dp4', + TERC6DP5: 'terc6dp5', + TERC18DP1: 'terc18dp1', + TERC18DP2: 'terc18dp2', + TERC18DP3: 'terc18dp3', + TERC18DP4: 'terc18dp4', + TERC18DP5: 'terc18dp5', + TERC18DP6: 'terc18dp6', + TERC18DP7: 'terc18dp7', + TERC18DP8: 'terc18dp8', + TERC18DP9: 'terc18dp9', + TERC18DP10: 'terc18dp10', + TERC18DP11: 'terc18dp11', + TERC18DP12: 'terc18dp12', + TERC18DP13: 'terc18dp13', + TERC18DP14: 'terc18dp14', + TERC18DP15: 'terc18dp15', + BGERCH: 'bgerch', + AMSTEST: 'amstest', + TERM: 'term', + TGBP: 'tgbp', + TUSDS: 'tusds', + TGOUSD: 'tgousd', + 'hteth:gousd': 'hteth:gousd', + 'hteth:usd1': 'hteth:usd1', + 'hteth:stgusd1': 'hteth:stgusd1', + 'hteth:tsteth': 'hteth:tsteth', + THKD: 'thkd', + THUNDER: 'thunder', + TIO: 'tio', + TIOX: 'tiox', + TKMK: 'tkmk', + TKNT: 'tknt', + TKO: 'tko', + TKX: 'tkx', + TLAB: 'tlab', + TLM: 'tlm', + TLOS: 'tlos', + TMATIC: 'tmatic', + TMSN: 'tmsn', + TNT: 'tnt', + TOKAMAK: 'tokamak', + TOKE: 'toke', + TOKEN: 'token', + TOMI: 'tomi', + TOMOBEAR: 'tomobear', + TOMOBEAR2: 'tomobear2', + TOMOBULL: 'tomobull', + TOK: 'tok', + TONCOIN: 'toncoin', + TOPM: 'topm', + TRAC: 'trac', + TRAXX: 'traxx', + TRB: 'trb', + TRIBE: 'tribe', + TRIBL: 'tribl', + TRL: 'trl', + TROY: 'troy', + TRST: 'trst', + TRU: 'tru', + TRUF: 'truf', + TRUFV2: 'trufv2', + TRUMPLOSE: 'trumplose', + TRUMPWIN: 'trumpwin', + TRXBEAR: 'trxbear', + TRXBULL: 'trxbull', + TRXDOOM: 'trxdoom', + 'TRX-ERC20': 'TRX-ERC20', + TRXHEDGE: 'trxhedge', + TRXMOON: 'trxmoon', // Bilira - TRYB = 'tryb', + TRYB: 'tryb', // TRYB on Solana - https://solscan.io/token/6ry4WBDvAwAnrYJVv6MCog4J8zx6S3cPgSqnTsDZ73AR - TRYB2 = 'tryb2', - TRYBBEAR = 'trybbear', - TRYBBULL = 'trybbull', - TRYX = 'tryx', - TST = 'tst', - TSUKA = 'tsuka', - TULIP = 'tulip', - TUPOLIS = 'tupolis', - TUSD = 'tusd', - TUSDC = 'tusdc', - TUSDT = 'tusdt', - TUSRM = 'tusrm', - TWDOGE = 'twdoge', - TWETH = 'tweth', - TXL = 'txl', - TXSGD = 'txsgd', - TXUSD = 'txusd', - UAIR = 'uair', - UBXT = 'ubxt', - UCO = 'uco', - UFT = 'uft', - UKG = 'ukg', - UMA = 'uma', - UMEE = 'umee', - UNB = 'unb', - UNI = 'uni', - UOS = 'uos', - UP = 'up', - UPBTC = 'upbtc', - UPP = 'upp', - UPT = 'upt', - UPUSD = 'upusd', - UQC = 'uqc', - URHD = 'urhd', - 'sol:usdt' = 'sol:usdt', - 'sol:usdc' = 'sol:usdc', - USCC = 'uscc', - USDC = 'usdc', - 'USDC-POS-WORMHOLE' = 'usdc-pos-wormhole', - USDD = 'usdd', - USDE = 'usde', - USDGLO = 'usdglo', - USDH = 'usdh', - USDK = 'usdk', + TRYB2: 'tryb2', + TRYBBEAR: 'trybbear', + TRYBBULL: 'trybbull', + TRYX: 'tryx', + TST: 'tst', + TSUKA: 'tsuka', + TULIP: 'tulip', + TUPOLIS: 'tupolis', + TUSD: 'tusd', + TUSDC: 'tusdc', + TUSDT: 'tusdt', + TUSRM: 'tusrm', + TWDOGE: 'twdoge', + TWETH: 'tweth', + TXL: 'txl', + TXSGD: 'txsgd', + TXUSD: 'txusd', + UAIR: 'uair', + UBXT: 'ubxt', + UCO: 'uco', + UFT: 'uft', + UKG: 'ukg', + UMA: 'uma', + UMEE: 'umee', + UNB: 'unb', + UNI: 'uni', + UOS: 'uos', + UP: 'up', + UPBTC: 'upbtc', + UPP: 'upp', + UPT: 'upt', + UPUSD: 'upusd', + UQC: 'uqc', + URHD: 'urhd', + 'sol:usdt': 'sol:usdt', + 'sol:usdc': 'sol:usdc', + USCC: 'uscc', + USDC: 'usdc', + 'USDC-POS-WORMHOLE': 'usdc-pos-wormhole', + USDD: 'usdd', + USDE: 'usde', + USDGLO: 'usdglo', + USDH: 'usdh', + USDK: 'usdk', // Also available on EOS - USDT = 'usdt', - USDTBEAR = 'usdtbear', - USDTBULL = 'usdtbull', - USDTDOOM = 'usdtdoom', - USDTHEDGE = 'usdthedge', - USDTMOON = 'usdtmoon', - USDX = 'usdx', - USDY = 'usdy', - USG = 'usg', - USPX = 'uspx', - UST = 'ust', - USTB = 'ustb', - 'UST-WORMHOLE' = 'ust-wormhole', - USX = 'usx', - USYC = 'usyc', - UTK = 'utk', - UTK1 = 'utk1', - UXB = 'uxb', - UXP = 'uxp', - VALOR = 'valor', - VANRY = 'vanry', - VBNT = 'vbnt', - VCORE = 'vcore', - VDX = 'vdx', - VEC = 'vec', - VEE = 'vee', - VEGA = 'vega', - VEXT = 'vext', - VGX = 'vgx', - VI = 'vi', - VIB = 'vib', - VIC = 'vic', - VIDT = 'vidt', - VISR = 'visr', - VIU = 'viu', - VOLT = 'volt', - VRA = 'vra', - VRGX = 'vrgx', - VRTX = 'vrtx', - VSP = 'vsp', - VXC = 'vxc', - VXV = 'vxv', - W = 'w', + USDT: 'usdt', + USDTBEAR: 'usdtbear', + USDTBULL: 'usdtbull', + USDTDOOM: 'usdtdoom', + USDTHEDGE: 'usdthedge', + USDTMOON: 'usdtmoon', + USDX: 'usdx', + USDY: 'usdy', + USG: 'usg', + USPX: 'uspx', + UST: 'ust', + USTB: 'ustb', + 'UST-WORMHOLE': 'ust-wormhole', + USX: 'usx', + USYC: 'usyc', + UTK: 'utk', + UTK1: 'utk1', + UXB: 'uxb', + UXP: 'uxp', + VALOR: 'valor', + VANRY: 'vanry', + VBNT: 'vbnt', + VCORE: 'vcore', + VDX: 'vdx', + VEC: 'vec', + VEE: 'vee', + VEGA: 'vega', + VEXT: 'vext', + VGX: 'vgx', + VI: 'vi', + VIB: 'vib', + VIC: 'vic', + VIDT: 'vidt', + VISR: 'visr', + VIU: 'viu', + VOLT: 'volt', + VRA: 'vra', + VRGX: 'vrgx', + VRTX: 'vrtx', + VSP: 'vsp', + VXC: 'vxc', + VXV: 'vxv', + W: 'w', // Wrapped AAVE - WAAVE = 'waave', - WABI = 'wabi', - WAFL = 'wafl', - WAGMI = 'wagmi', + WAAVE: 'waave', + WABI: 'wabi', + WAFL: 'wafl', + WAGMI: 'wagmi', // Wrapped AAVAX - WAVAX = 'wavax', - WAVES = 'waves', - WAX = 'wax', - WAXP = 'waxp', + WAVAX: 'wavax', + WAVES: 'waves', + WAX: 'wax', + WAXP: 'waxp', // Wrapped BNB - WBNB = 'wbnb', - WECAN = 'wecan', - WFEE = 'wfee', - WHAT = 'what', - WOO = 'woo', - WTK = 'wtk', - WBTC = 'wbtc', - WDAIV2 = 'wdaiv2', - WDOGE = 'wdoge', - WCFG = 'wcfg', - WEC = 'wec', - 'sol:wec' = 'sol:wec', - WET = 'wet', - WETH = 'weth', - WEETH = 'weeth', - WFLOW = 'wflow', - WFFT = 'wfft', - WHALE = 'whale', - WHT = 'wht', - WILD = 'wild', - WING = 'wing', - WNXM = 'wnxm', - WLD = 'wld', - WLUNA = 'wluna', - WLXT = 'wlxt', + WBNB: 'wbnb', + WECAN: 'wecan', + WFEE: 'wfee', + WHAT: 'what', + WOO: 'woo', + WTK: 'wtk', + WBTC: 'wbtc', + WDAIV2: 'wdaiv2', + WDOGE: 'wdoge', + WCFG: 'wcfg', + WEC: 'wec', + 'sol:wec': 'sol:wec', + WET: 'wet', + WETH: 'weth', + WEETH: 'weeth', + WFLOW: 'wflow', + WFFT: 'wfft', + WHALE: 'whale', + WHT: 'wht', + WILD: 'wild', + WING: 'wing', + WNXM: 'wnxm', + WLD: 'wld', + WLUNA: 'wluna', + WLXT: 'wlxt', // Wrapped SOL - 'sol:wsol' = 'sol:wsol', + 'sol:wsol': 'sol:wsol', // Wrapped Rose - WROSE = 'wrose', - WSTETH = 'wsteth', - WPX = 'wpx', - WTAO = 'wtao', - WTC = 'wtc', - WTGXX = 'wtgxx', + WROSE: 'wrose', + WSTETH: 'wsteth', + WPX: 'wpx', + WTAO: 'wtao', + WTC: 'wtc', + WTGXX: 'wtgxx', // USD Coin (Wormhole) - WUSDC = 'wusdc', - WUSDCV2 = 'wusdvcv2', - WUSDM = 'wusdm', + WUSDC: 'wusdc', + WUSDCV2: 'wusdvcv2', + WUSDM: 'wusdm', // Tether USD (Wormhole) - WUSDTV2 = 'wusdtv2', - WXRP = 'wxrp', - WXRPV0 = 'wxrpv0', - WXT = 'wxt', - XAUD = 'xaud', - XAURY = 'xaury', - XAUT = 'xaut', - XAUTBEAR = 'xautbear', - XAUTBULL = 'xautbull', - XBGOLD = 'xbgold', - XCD = 'xcd', - XCHNG = 'xchng', - XCN = 'xcn', - XDEFI = 'xdefi', - XDOGE = 'xdoge', - XEX = 'xex', - XLMBEAR = 'xlmbear', - XLMBULL = 'xlmbull', - XRL = 'xrl', - XRPBEAR = 'xrpbear', - XRPBULL = 'xrpbull', - XRPDOOM = 'xrpdoom', - XRPHEDGE = 'xrphedge', - XRPMOON = 'xrpmoon', - XSGD = 'xsgd', - XSUSHI = 'xsushi', - XTP = 'xtp', - XTZBEAR = 'xtzbear', - XTZBULL = 'xtzbull', - XUSD = 'xusd', - XVS = 'xvs', - XX = 'xx', - XZK = 'xzk', - YAMV2 = 'yamv2', - YFDAI = 'yfdai', - YFI = 'yfi', - YFII = 'yfii', - YFL = 'yfl', - YGG = 'ygg', - YLD = 'yld', - YNG = 'yng', - YSEY = 'ysey', - ZARX = 'zarx', - ZBC = 'zbc', - ZBU = 'zbu', - ZBUV2 = 'zbuv2', - ZCO = 'zco', - ZECBEAR = 'zecbear', - ZECBULL = 'zecbull', - ZETAEVM = 'zetaevm', - ZIL = 'zil', - ZIP = 'zip', - ZIX = 'zix', - ZKL = 'zkl', - ZKS = 'zks', - ZLW = 'zlw', - ZMT = 'zmt', - ZOOM = 'zoom', - ZRO = 'zro', - 'ZRO-0x320' = 'zro-0x320', - 'ZRO-0xFCF' = 'zro-0xfcf', - 'ZRO-0xE5C' = 'zro-0xe5c', - ZRX = 'zrx', - ZUSD = 'zusd', - 'eth:usdg' = 'eth:usdg', - 'eth:spxux' = 'eth:spxux', - 'eth:aleo' = 'eth:aleo', - 'eth:dbusd' = 'eth:dbusd', - 'eth:edu' = 'eth:edu', - 'eth:telos' = 'eth:telos', - 'eth:cusdo' = 'eth:cusdo', - 'eth:aevo' = 'eth:aevo', - 'eth:alt' = 'eth:alt', - 'eth:rtbl' = 'eth:rtbl', - 'eth:virtual' = 'eth:virtual', - 'eth:vice' = 'eth:vice', - 'eth:audu' = 'eth:audu', - 'eth:wlfi' = 'eth:wlfi', - 'eth:kava' = 'eth:kava', - 'eth:gousd' = 'eth:gousd', - 'eth:iq' = 'eth:iq', - 'eth:iris' = 'eth:iris', - 'eth:hard' = 'eth:hard', - 'eth:hegic' = 'eth:hegic', - 'eth:spx' = 'eth:spx', - 'eth:exrd' = 'eth:exrd', - 'eth:turbo' = 'eth:turbo', - 'eth:icnt' = 'eth:icnt', - 'eth:god' = 'eth:god', - 'eth:sky' = 'eth:sky', - 'eth:uco' = 'eth:uco', - 'eth:fuel' = 'eth:fuel', - 'eth:xreth' = 'eth:xreth', - 'eth:xy' = 'eth:xy', - 'eth:move' = 'eth:move', - 'eth:mon' = 'eth:mon', - 'eth:usual' = 'eth:usual', - 'eth:usd1' = 'eth:usd1', - 'eth:ibtc' = 'eth:ibtc', - 'eth:pyr' = 'eth:pyr', - 'eth:una' = 'eth:una', - 'eth:ads' = 'eth:ads', - 'eth:fuelv1' = 'eth:fuelv1', - 'eth:cet' = 'eth:cet', - 'eth:unio' = 'eth:unio', - 'eth:flttx' = 'eth:flttx', - 'eth:wtsix' = 'eth:wtsix', - 'eth:modrx' = 'eth:modrx', - 'eth:techx' = 'eth:techx', - 'eth:wtsyx' = 'eth:wtsyx', - 'eth:wtlgx' = 'eth:wtlgx', - 'eth:wttsx' = 'eth:wttsx', - 'eth:tipsx' = 'eth:tipsx', - 'eth:wtstx' = 'eth:wtstx', - 'eth:lngvx' = 'eth:lngvx', - 'eth:eqtyx' = 'eth:eqtyx', - 'eth:deuro' = 'eth:deuro', - 'eth:usdf' = 'eth:usdf', - 'eth:ausd' = 'eth:ausd', - 'eth:gaia' = 'eth:gaia', - 'eth:usds' = 'eth:usds', - 'eth:perc' = 'eth:perc', - 'eth:cfg' = 'eth:cfg', - 'eth:plume' = 'eth:plume', - 'eth:vbill' = 'eth:vbill', - 'eth:la' = 'eth:la', - 'eth:es' = 'eth:es', - 'eth:ctrl' = 'eth:ctrl', - 'eth:benji' = 'eth:benji', - 'eth:ibenji' = 'eth:ibenji', - 'eth:chex' = 'eth:chex', - 'eth:gho' = 'eth:gho', - 'eth:npc' = 'eth:npc', - 'eth:towns' = 'eth:towns', - 'eth:umint' = 'eth:umint', - 'eth:arb' = 'eth:arb', - 'eth:ez' = 'eth:ez', - 'eth:ncash' = 'eth:ncash', - 'eth:sub' = 'eth:sub', - 'eth:poe' = 'eth:poe', - 'eth:ocn' = 'eth:ocn', - 'eth:banca' = 'eth:banca', - 'eth:stq' = 'eth:stq', - 'eth:route' = 'eth:route', - 'eth:ryt' = 'eth:ryt', - 'eth:guild' = 'eth:guild', - 'eth:rdo' = 'eth:rdo', - 'eth:h' = 'eth:h', - 'eth:wbt' = 'eth:wbt', - 'eth:ftn' = 'eth:ftn', - 'eth:sc' = 'eth:sc', - 'eth:lf' = 'eth:lf', - 'eth:usdcv' = 'eth:usdcv', - 'eth:cake' = 'eth:cake', - 'eth:nft' = 'eth:nft', - 'eth:morpho' = 'eth:morpho', - 'eth:usdd' = 'eth:usdd', - 'eth:mx' = 'eth:mx', - 'eth:flz' = 'eth:flz', - 'eth:usd0' = 'eth:usd0', - 'eth:white' = 'eth:white', - 'eth:upc' = 'eth:upc', - 'eth:lgct' = 'eth:lgct', - 'eth:usdtb' = 'eth:usdtb', - 'eth:deusd' = 'eth:deusd', - 'eth:neiro' = 'eth:neiro', - 'eth:vana' = 'eth:vana', - 'eth:eurau' = 'eth:eurau', - 'eth:insur' = 'eth:insur', - 'eth:xyo' = 'eth:xyo', - 'eth:zig' = 'eth:zig', - 'eth:swftc' = 'eth:swftc', - 'eth:dsync' = 'eth:dsync', - 'eth:orbr' = 'eth:orbr', - 'eth:sxt' = 'eth:sxt', - 'eth:paal' = 'eth:paal', - 'eth:wmtx' = 'eth:wmtx', - 'eth:anime' = 'eth:anime', - 'eth:newt' = 'eth:newt', - 'eth:hsk' = 'eth:hsk', - 'eth:rog' = 'eth:rog', - 'eth:xaum' = 'eth:xaum', - 'eth:avail' = 'eth:avail', - 'eth:dolo' = 'eth:dolo', - 'eth:era' = 'eth:era', - 'eth:ugold' = 'eth:ugold', - 'eth:seda' = 'eth:seda', - 'eth:enso' = 'eth:enso', - 'eth:hpp' = 'eth:hpp', + WUSDTV2: 'wusdtv2', + WXRP: 'wxrp', + WXRPV0: 'wxrpv0', + WXT: 'wxt', + XAUD: 'xaud', + XAURY: 'xaury', + XAUT: 'xaut', + XAUTBEAR: 'xautbear', + XAUTBULL: 'xautbull', + XBGOLD: 'xbgold', + XCD: 'xcd', + XCHNG: 'xchng', + XCN: 'xcn', + XDEFI: 'xdefi', + XDOGE: 'xdoge', + XEX: 'xex', + XLMBEAR: 'xlmbear', + XLMBULL: 'xlmbull', + XRL: 'xrl', + XRPBEAR: 'xrpbear', + XRPBULL: 'xrpbull', + XRPDOOM: 'xrpdoom', + XRPHEDGE: 'xrphedge', + XRPMOON: 'xrpmoon', + XSGD: 'xsgd', + XSUSHI: 'xsushi', + XTP: 'xtp', + XTZBEAR: 'xtzbear', + XTZBULL: 'xtzbull', + XUSD: 'xusd', + XVS: 'xvs', + XX: 'xx', + XZK: 'xzk', + YAMV2: 'yamv2', + YFDAI: 'yfdai', + YFI: 'yfi', + YFII: 'yfii', + YFL: 'yfl', + YGG: 'ygg', + YLD: 'yld', + YNG: 'yng', + YSEY: 'ysey', + ZARX: 'zarx', + ZBC: 'zbc', + ZBU: 'zbu', + ZBUV2: 'zbuv2', + ZCO: 'zco', + ZECBEAR: 'zecbear', + ZECBULL: 'zecbull', + ZETAEVM: 'zetaevm', + ZIL: 'zil', + ZIP: 'zip', + ZIX: 'zix', + ZKL: 'zkl', + ZKS: 'zks', + ZLW: 'zlw', + ZMT: 'zmt', + ZOOM: 'zoom', + ZRO: 'zro', + 'ZRO-0x320': 'zro-0x320', + 'ZRO-0xFCF': 'zro-0xfcf', + 'ZRO-0xE5C': 'zro-0xe5c', + ZRX: 'zrx', + ZUSD: 'zusd', + 'eth:usdg': 'eth:usdg', + 'eth:spxux': 'eth:spxux', + 'eth:aleo': 'eth:aleo', + 'eth:dbusd': 'eth:dbusd', + 'eth:edu': 'eth:edu', + 'eth:telos': 'eth:telos', + 'eth:cusdo': 'eth:cusdo', + 'eth:aevo': 'eth:aevo', + 'eth:alt': 'eth:alt', + 'eth:rtbl': 'eth:rtbl', + 'eth:virtual': 'eth:virtual', + 'eth:vice': 'eth:vice', + 'eth:audu': 'eth:audu', + 'eth:wlfi': 'eth:wlfi', + 'eth:kava': 'eth:kava', + 'eth:gousd': 'eth:gousd', + 'eth:iq': 'eth:iq', + 'eth:iris': 'eth:iris', + 'eth:hard': 'eth:hard', + 'eth:hegic': 'eth:hegic', + 'eth:spx': 'eth:spx', + 'eth:exrd': 'eth:exrd', + 'eth:turbo': 'eth:turbo', + 'eth:icnt': 'eth:icnt', + 'eth:god': 'eth:god', + 'eth:sky': 'eth:sky', + 'eth:uco': 'eth:uco', + 'eth:fuel': 'eth:fuel', + 'eth:xreth': 'eth:xreth', + 'eth:xy': 'eth:xy', + 'eth:move': 'eth:move', + 'eth:mon': 'eth:mon', + 'eth:usual': 'eth:usual', + 'eth:usd1': 'eth:usd1', + 'eth:ibtc': 'eth:ibtc', + 'eth:pyr': 'eth:pyr', + 'eth:una': 'eth:una', + 'eth:ads': 'eth:ads', + 'eth:fuelv1': 'eth:fuelv1', + 'eth:cet': 'eth:cet', + 'eth:unio': 'eth:unio', + 'eth:flttx': 'eth:flttx', + 'eth:wtsix': 'eth:wtsix', + 'eth:modrx': 'eth:modrx', + 'eth:techx': 'eth:techx', + 'eth:wtsyx': 'eth:wtsyx', + 'eth:wtlgx': 'eth:wtlgx', + 'eth:wttsx': 'eth:wttsx', + 'eth:tipsx': 'eth:tipsx', + 'eth:wtstx': 'eth:wtstx', + 'eth:lngvx': 'eth:lngvx', + 'eth:eqtyx': 'eth:eqtyx', + 'eth:deuro': 'eth:deuro', + 'eth:usdf': 'eth:usdf', + 'eth:ausd': 'eth:ausd', + 'eth:gaia': 'eth:gaia', + 'eth:usds': 'eth:usds', + 'eth:perc': 'eth:perc', + 'eth:cfg': 'eth:cfg', + 'eth:plume': 'eth:plume', + 'eth:vbill': 'eth:vbill', + 'eth:la': 'eth:la', + 'eth:es': 'eth:es', + 'eth:ctrl': 'eth:ctrl', + 'eth:benji': 'eth:benji', + 'eth:ibenji': 'eth:ibenji', + 'eth:chex': 'eth:chex', + 'eth:gho': 'eth:gho', + 'eth:npc': 'eth:npc', + 'eth:towns': 'eth:towns', + 'eth:umint': 'eth:umint', + 'eth:arb': 'eth:arb', + 'eth:ez': 'eth:ez', + 'eth:ncash': 'eth:ncash', + 'eth:sub': 'eth:sub', + 'eth:poe': 'eth:poe', + 'eth:ocn': 'eth:ocn', + 'eth:banca': 'eth:banca', + 'eth:stq': 'eth:stq', + 'eth:route': 'eth:route', + 'eth:ryt': 'eth:ryt', + 'eth:guild': 'eth:guild', + 'eth:rdo': 'eth:rdo', + 'eth:h': 'eth:h', + 'eth:wbt': 'eth:wbt', + 'eth:ftn': 'eth:ftn', + 'eth:sc': 'eth:sc', + 'eth:lf': 'eth:lf', + 'eth:usdcv': 'eth:usdcv', + 'eth:cake': 'eth:cake', + 'eth:nft': 'eth:nft', + 'eth:morpho': 'eth:morpho', + 'eth:usdd': 'eth:usdd', + 'eth:mx': 'eth:mx', + 'eth:flz': 'eth:flz', + 'eth:usd0': 'eth:usd0', + 'eth:white': 'eth:white', + 'eth:upc': 'eth:upc', + 'eth:lgct': 'eth:lgct', + 'eth:usdtb': 'eth:usdtb', + 'eth:deusd': 'eth:deusd', + 'eth:neiro': 'eth:neiro', + 'eth:vana': 'eth:vana', + 'eth:eurau': 'eth:eurau', + 'eth:insur': 'eth:insur', + 'eth:xyo': 'eth:xyo', + 'eth:zig': 'eth:zig', + 'eth:swftc': 'eth:swftc', + 'eth:dsync': 'eth:dsync', + 'eth:orbr': 'eth:orbr', + 'eth:sxt': 'eth:sxt', + 'eth:paal': 'eth:paal', + 'eth:wmtx': 'eth:wmtx', + 'eth:anime': 'eth:anime', + 'eth:newt': 'eth:newt', + 'eth:hsk': 'eth:hsk', + 'eth:rog': 'eth:rog', + 'eth:xaum': 'eth:xaum', + 'eth:avail': 'eth:avail', + 'eth:dolo': 'eth:dolo', + 'eth:era': 'eth:era', + 'eth:ugold': 'eth:ugold', + 'eth:seda': 'eth:seda', + 'eth:enso': 'eth:enso', + 'eth:hpp': 'eth:hpp', // Ondo Tokenized Assets - 'eth:qqqon' = 'qqqon', - 'eth:spyon' = 'spyon', - 'eth:nvdaon' = 'nvdaon', - 'eth:tslaon' = 'tslaon', - 'eth:aaplon' = 'aaplon', - 'eth:mstron' = 'mstron', - 'eth:pltron' = 'pltron', - 'eth:hoodon' = 'hoodon', - 'eth:crclon' = 'crclon', - 'eth:coinon' = 'coinon', - 'eth:amznon' = 'amznon', - 'eth:googlon' = 'googlon', - 'eth:metaon' = 'metaon', - 'eth:babaon' = 'babaon', - 'eth:msfton' = 'msfton', - 'eth:spgion' = 'spgion', - 'eth:tsmon' = 'tsmon', - 'eth:amdon' = 'amdon', - 'eth:unhon' = 'unhon', - 'eth:jpmon' = 'jpmon', - 'eth:orclon' = 'orclon', - 'eth:von' = 'von', - 'eth:maon' = 'maon', - 'eth:llyon' = 'llyon', - 'eth:nflxon' = 'nflxon', - 'eth:coston' = 'coston', - 'eth:iauon' = 'iauon', - 'eth:ivvon' = 'ivvon', - 'eth:slvon' = 'slvon', - - 'eth:usdo' = 'eth:usdo', - 'xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ' = 'xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ', - 'xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M' = 'xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M', - 'xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP' = 'xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP', - 'xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX' = 'xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX', - 'xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5' = 'xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5', - 'xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT' = 'xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT', - 'xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN' = 'xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN', - 'xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z' = 'xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z', - 'xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO' = 'xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO', - 'xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG' = 'xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG', - 'xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA' = 'xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA', - 'xlm:EURC-GDHU6WRG4IEQXM5NZ4BMPKOXHW76MZM4Y2IEMFDVXBSDP6SJY4ITNPP2' = 'xlm:EURC-GDHU6WRG4IEQXM5NZ4BMPKOXHW76MZM4Y2IEMFDVXBSDP6SJY4ITNPP2', - 'xlm:GYEN-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB' = 'xlm:GYEN-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB', - 'xlm:ZUSD-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB' = 'xlm:ZUSD-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB', - 'xlm:EURS-GC5FGCDEOGOGSNWCCNKS3OMEVDHTE3Q5A5FEQWQKV3AXA7N6KDQ2CUZJ' = 'xlm:EURS-GC5FGCDEOGOGSNWCCNKS3OMEVDHTE3Q5A5FEQWQKV3AXA7N6KDQ2CUZJ', - 'xlm:VEUR-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN' = 'xlm:VEUR-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN', - 'xlm:VCHF-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN' = 'xlm:VCHF-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN', - 'xlm:AUDD-GDC7X2MXTYSAKUUGAIQ7J7RPEIM7GXSAIWFYWWH4GLNFECQVJJLB2EEU' = 'xlm:AUDD-GDC7X2MXTYSAKUUGAIQ7J7RPEIM7GXSAIWFYWWH4GLNFECQVJJLB2EEU', - 'xlm:BENJI-GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5' = 'xlm:BENJI-GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5', - 'xlm:gBENJI-GD5J73EKK5IYL5XS3FBTHHX7CZIYRP7QXDL57XFWGC2WVYWT326OBXRP' = 'xlm:gBENJI-GD5J73EKK5IYL5XS3FBTHHX7CZIYRP7QXDL57XFWGC2WVYWT326OBXRP', + 'eth:qqqon': 'qqqon', + 'eth:spyon': 'spyon', + 'eth:nvdaon': 'nvdaon', + 'eth:tslaon': 'tslaon', + 'eth:aaplon': 'aaplon', + 'eth:mstron': 'mstron', + 'eth:pltron': 'pltron', + 'eth:hoodon': 'hoodon', + 'eth:crclon': 'crclon', + 'eth:coinon': 'coinon', + 'eth:amznon': 'amznon', + 'eth:googlon': 'googlon', + 'eth:metaon': 'metaon', + 'eth:babaon': 'babaon', + 'eth:msfton': 'msfton', + 'eth:spgion': 'spgion', + 'eth:tsmon': 'tsmon', + 'eth:amdon': 'amdon', + 'eth:unhon': 'unhon', + 'eth:jpmon': 'jpmon', + 'eth:orclon': 'orclon', + 'eth:von': 'von', + 'eth:maon': 'maon', + 'eth:llyon': 'llyon', + 'eth:nflxon': 'nflxon', + 'eth:coston': 'coston', + 'eth:iauon': 'iauon', + 'eth:ivvon': 'ivvon', + 'eth:slvon': 'slvon', + + 'eth:usdo': 'eth:usdo', + 'xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ': + 'xlm:BST-GADDFE4R72YUP2AOEL67OHZN3GJQYPC3VE734N2XFMEGRR2L32CZ3XYZ', + 'xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M': + 'xlm:VELO-GDM4RQUQQUVSKQA7S6EM7XBZP3FCGH4Q7CL6TABQ7B2BEJ5ERARM2M5M', + 'xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP': + 'xlm:SLT-GCKA6K5PCQ6PNF5RQBF7PQDJWRHO6UOGFMRLK3DYHDOI244V47XKQ4GP', + 'xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX': + 'xlm:USD-GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX', + 'xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5': + 'xlm:ETH-GBVOL67TMUQBGL4TZYNMY3ZQ5WGQYFPFD5VJRWXR72VA33VFNL225PL5', + 'xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT': + 'xlm:WXT-GASBLVHS5FOABSDNW5SPPH3QRJYXY5JHA2AOA2QHH2FJLZBRXSG4SWXT', + 'xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN': + 'xlm:USDC-GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN', + 'xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z': + 'xlm:SIX-GDMS6EECOH6MBMCP3FYRYEVRBIV3TQGLOFQIPVAITBRJUMTI6V7A2X6Z', + 'xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO': + 'xlm:BRLT-GCHQ3F2BF5P74DMDNOOGHT5DUCKC773AW5DTOFINC26W4KGYFPYDPRSO', + 'xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG': + 'xlm:ARST-GCSAZVWXZKWS4XS223M5F54H2B6XPIIXZZGP7KEAIU6YSL5HDRGCI3DG', + 'xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA': + 'xlm:AQUA-GBNZILSTVQZ4R7IKQDGHYGY2QXL5QOFJYQMXPKWRRM5PAV7Y4M67AQUA', + 'xlm:EURC-GDHU6WRG4IEQXM5NZ4BMPKOXHW76MZM4Y2IEMFDVXBSDP6SJY4ITNPP2': + 'xlm:EURC-GDHU6WRG4IEQXM5NZ4BMPKOXHW76MZM4Y2IEMFDVXBSDP6SJY4ITNPP2', + 'xlm:GYEN-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB': + 'xlm:GYEN-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB', + 'xlm:ZUSD-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB': + 'xlm:ZUSD-GDF6VOEGRWLOZ64PQQGKD2IYWA22RLT37GJKS2EJXZHT2VLAGWLC5TOB', + 'xlm:EURS-GC5FGCDEOGOGSNWCCNKS3OMEVDHTE3Q5A5FEQWQKV3AXA7N6KDQ2CUZJ': + 'xlm:EURS-GC5FGCDEOGOGSNWCCNKS3OMEVDHTE3Q5A5FEQWQKV3AXA7N6KDQ2CUZJ', + 'xlm:VEUR-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN': + 'xlm:VEUR-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN', + 'xlm:VCHF-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN': + 'xlm:VCHF-GDXLSLCOPPHTWOQXLLKSVN4VN3G67WD2ENU7UMVAROEYVJLSPSEWXIZN', + 'xlm:AUDD-GDC7X2MXTYSAKUUGAIQ7J7RPEIM7GXSAIWFYWWH4GLNFECQVJJLB2EEU': + 'xlm:AUDD-GDC7X2MXTYSAKUUGAIQ7J7RPEIM7GXSAIWFYWWH4GLNFECQVJJLB2EEU', + 'xlm:BENJI-GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5': + 'xlm:BENJI-GBHNGLLIE3KWGKCHIKMHJ5HVZHYIK7WTBE4QF5PLAKL4CJGSEU7HZIW5', + 'xlm:gBENJI-GD5J73EKK5IYL5XS3FBTHHX7CZIYRP7QXDL57XFWGC2WVYWT326OBXRP': + 'xlm:gBENJI-GD5J73EKK5IYL5XS3FBTHHX7CZIYRP7QXDL57XFWGC2WVYWT326OBXRP', // Eth NFTs // generic NFTs - 'erc721:token' = 'erc721:token', - 'erc1155:token' = 'erc1155:token', - 'nonstandard:token' = 'nonstandard:token', + 'erc721:token': 'erc721:token', + 'erc1155:token': 'erc1155:token', + 'nonstandard:token': 'nonstandard:token', // Test Eth NFTs - 'terc721:token' = 'terc721:token', - 'terc1155:token' = 'terc1155:token', - 'tnonstandard:token' = 'tnonstandard:token', + 'terc721:token': 'terc721:token', + 'terc1155:token': 'terc1155:token', + 'tnonstandard:token': 'tnonstandard:token', // Algorand mainnet tokens - 'algo:USDC-31566704' = 'algo:USDC-31566704', - 'algo:USDt-312769' = 'algo:USDt-312769', - 'algo:MCAU-6547014' = 'algo:MCAU-6547014', - 'algo:QCAD-84507107' = 'algo:QCAD-84507107', - 'algo:VCAD-438505559' = 'algo:VCAD-438505559', + 'algo:USDC-31566704': 'algo:USDC-31566704', + 'algo:USDt-312769': 'algo:USDt-312769', + 'algo:MCAU-6547014': 'algo:MCAU-6547014', + 'algo:QCAD-84507107': 'algo:QCAD-84507107', + 'algo:VCAD-438505559': 'algo:VCAD-438505559', // Kovan-only ERC20 tokens - TEST = 'test', - SCHZ = 'schz', - CAT = 'cat', + TEST: 'test', + SCHZ: 'schz', + CAT: 'cat', // Stellar testnet tokens - 'txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L' = 'txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L', - 'txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L' = 'txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L', + 'txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L': + 'txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L', + 'txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L': + 'txlm:TST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L', // Algorand testnet tokens - 'talgo:USON-16026728' = 'talgo:USON-16026728', - 'talgo:SPRW-16026732' = 'talgo:SPRW-16026732', - 'talgo:KAL-16026733' = 'talgo:KAL-16026733', - 'talgo:USDC-10458941' = 'talgo:USDC-10458941', - 'talgo:USDt-180447' = 'talgo:USDt-180447', - 'talgo:JPT-162085446' = 'talgo:JPT-162085446', + 'talgo:USON-16026728': 'talgo:USON-16026728', + 'talgo:SPRW-16026732': 'talgo:SPRW-16026732', + 'talgo:KAL-16026733': 'talgo:KAL-16026733', + 'talgo:USDC-10458941': 'talgo:USDC-10458941', + 'talgo:USDt-180447': 'talgo:USDt-180447', + 'talgo:JPT-162085446': 'talgo:JPT-162085446', // EOS tokens - CHEX = 'chex', - IQ = 'iq', - EOS_BOX = 'eos:box', - VAULTA = 'vaulta', + CHEX: 'chex', + IQ: 'iq', + EOS_BOX: 'eos:box', + VAULTA: 'vaulta', // Avax Token ERC-20 - 'avaxc:qi' = 'avaxc:qi', - 'avaxc:xava' = 'avaxc:xava', - 'avaxc:klo' = 'avaxc:klo', - 'avaxc:joe' = 'avaxc:joe', - 'avaxc:png' = 'avaxc:png', - 'avaxc:usdt' = 'avaxc:usdt', - 'avaxc:usdc' = 'avaxc:usdc', - 'avaxc:link' = 'avaxc:link', - 'avaxc:cai' = 'avaxc:cai', - 'avaxc:aave' = 'avaxc:aave', - 'avaxc:btc' = 'avaxc:btc', - 'avaxc:dai' = 'avaxc:dai', - 'avaxc:tryb' = 'avaxc:tryb', - 'avaxc:wbtc' = 'avaxc:wbtc', - 'avaxc:weth' = 'avaxc:weth', - 'avaxc:sbc' = 'avaxc:sbc', - 'avaxc:xsgd' = 'avaxc:xsgd', - 'avaxc:ticov2' = 'avaxc:ticov2', - 'avaxc:nxpc' = 'avaxc:nxpc', - 'avaxc:spxux' = 'avaxc:spxux', - 'tavaxc:opm' = 'tavaxc:opm', - 'tavaxc:cop2peq' = 'tavaxc:cop2peq', - 'tavaxc:xsgd' = 'tavaxc:xsgd', - 'tavaxc:bitgo' = 'tavaxc:bitgo', - 'tavaxc:stavax' = 'tavaxc:stavax', + 'avaxc:qi': 'avaxc:qi', + 'avaxc:xava': 'avaxc:xava', + 'avaxc:klo': 'avaxc:klo', + 'avaxc:joe': 'avaxc:joe', + 'avaxc:png': 'avaxc:png', + 'avaxc:usdt': 'avaxc:usdt', + 'avaxc:usdc': 'avaxc:usdc', + 'avaxc:link': 'avaxc:link', + 'avaxc:cai': 'avaxc:cai', + 'avaxc:aave': 'avaxc:aave', + 'avaxc:btc': 'avaxc:btc', + 'avaxc:dai': 'avaxc:dai', + 'avaxc:tryb': 'avaxc:tryb', + 'avaxc:wbtc': 'avaxc:wbtc', + 'avaxc:weth': 'avaxc:weth', + 'avaxc:sbc': 'avaxc:sbc', + 'avaxc:xsgd': 'avaxc:xsgd', + 'avaxc:ticov2': 'avaxc:ticov2', + 'avaxc:nxpc': 'avaxc:nxpc', + 'avaxc:spxux': 'avaxc:spxux', + 'tavaxc:opm': 'tavaxc:opm', + 'tavaxc:cop2peq': 'tavaxc:cop2peq', + 'tavaxc:xsgd': 'tavaxc:xsgd', + 'tavaxc:bitgo': 'tavaxc:bitgo', + 'tavaxc:stavax': 'tavaxc:stavax', // Begin FTX missing AVAXC tokens - 'avaxc:yeti' = 'avaxc:yeti', - 'avaxc:spell' = 'avaxc:spell', - 'avaxc:yusd' = 'avaxc:yusd', - 'avaxc:yusdcrv-f' = 'avaxc:yusdcrv-f', - 'avaxc:ecd' = 'avaxc:ecd', - 'avaxc:blzz' = 'avaxc:blzz', - 'avaxc:ptp' = 'avaxc:ptp', - 'avaxc:stg' = 'avaxc:stg', - 'avaxc:syn' = 'avaxc:syn', - 'avaxc:aavausdc' = 'avaxc:aavausdc', - 'avaxc:tusd' = 'avaxc:tusd', - 'avaxc:crv' = 'avaxc:crv', - 'avaxc:savax' = 'avaxc:savax', - 'avaxc:ampl' = 'avaxc:ampl', - 'avaxc:cnr' = 'avaxc:cnr', - 'avaxc:roco' = 'avaxc:roco', - 'avaxc:aavadai' = 'avaxc:aavadai', - 'avaxc:vtx' = 'avaxc:vtx', - 'avaxc:wavax' = 'avaxc:wavax', - 'avaxc:bnb' = 'avaxc:bnb', - 'avaxc:aavausdt' = 'avaxc:aavausdt', - 'avaxc:acre' = 'avaxc:acre', - 'avaxc:gmx' = 'avaxc:gmx', - 'avaxc:gunz' = 'avaxc:gunz', - 'avaxc:mim' = 'avaxc:mim', - 'avaxc:axlusdc' = 'avaxc:axlusdc', - 'avaxc:lot' = 'avaxc:lot', - 'avaxc:av3crv' = 'avaxc:av3crv', - 'avaxc:time' = 'avaxc:time', - 'avaxc:uni.e' = 'avaxc:uni.e', - 'avaxc:sb' = 'avaxc:sb', - 'avaxc:dyp' = 'avaxc:dyp', - 'avaxc:sing' = 'avaxc:sing', - 'avaxc:gohm' = 'avaxc:gohm', - 'avaxc:boofi' = 'avaxc:boofi', - 'avaxc:eth' = 'avaxc:eth', - 'avaxc:wmemo' = 'avaxc:wmemo', - 'avaxc:fxs' = 'avaxc:fxs', - 'avaxc:sifu' = 'avaxc:sifu', - 'avaxc:sushi.e' = 'avaxc:sushi.e', - 'avaxc:sushi' = 'avaxc:sushi', - 'avaxc:mimatic' = 'avaxc:mimatic', - 'avaxc:sspell' = 'avaxc:sspell', - 'avaxc:grape' = 'avaxc:grape', - 'avaxc:xjoe' = 'avaxc:xjoe', - 'avaxc:bsgg' = 'avaxc:bsgg', - 'avaxc:roy' = 'avaxc:roy', - 'avaxc:wow' = 'avaxc:wow', - 'avaxc:wine' = 'avaxc:wine', - 'avaxc:mu' = 'avaxc:mu', - 'avaxc:frax' = 'avaxc:frax', - 'avaxc:movr' = 'avaxc:movr', - 'avaxc:ice' = 'avaxc:ice', - 'avaxc:note' = 'avaxc:note', - 'avaxc:wrose' = 'avaxc:wrose', - 'avaxc:swap' = 'avaxc:swap', - 'avaxc:tico' = 'avaxc:tico', - 'avaxc:shrap' = 'avaxc:shrap', - 'avaxc:benji' = 'avaxc:benji', - 'avaxc:emdx' = 'avaxc:emdx', - 'avaxc:eurc' = 'avaxc:eurc', + 'avaxc:yeti': 'avaxc:yeti', + 'avaxc:spell': 'avaxc:spell', + 'avaxc:yusd': 'avaxc:yusd', + 'avaxc:yusdcrv-f': 'avaxc:yusdcrv-f', + 'avaxc:ecd': 'avaxc:ecd', + 'avaxc:blzz': 'avaxc:blzz', + 'avaxc:ptp': 'avaxc:ptp', + 'avaxc:stg': 'avaxc:stg', + 'avaxc:syn': 'avaxc:syn', + 'avaxc:aavausdc': 'avaxc:aavausdc', + 'avaxc:tusd': 'avaxc:tusd', + 'avaxc:crv': 'avaxc:crv', + 'avaxc:savax': 'avaxc:savax', + 'avaxc:ampl': 'avaxc:ampl', + 'avaxc:cnr': 'avaxc:cnr', + 'avaxc:roco': 'avaxc:roco', + 'avaxc:aavadai': 'avaxc:aavadai', + 'avaxc:vtx': 'avaxc:vtx', + 'avaxc:wavax': 'avaxc:wavax', + 'avaxc:bnb': 'avaxc:bnb', + 'avaxc:aavausdt': 'avaxc:aavausdt', + 'avaxc:acre': 'avaxc:acre', + 'avaxc:gmx': 'avaxc:gmx', + 'avaxc:gunz': 'avaxc:gunz', + 'avaxc:mim': 'avaxc:mim', + 'avaxc:axlusdc': 'avaxc:axlusdc', + 'avaxc:lot': 'avaxc:lot', + 'avaxc:av3crv': 'avaxc:av3crv', + 'avaxc:time': 'avaxc:time', + 'avaxc:uni.e': 'avaxc:uni.e', + 'avaxc:sb': 'avaxc:sb', + 'avaxc:dyp': 'avaxc:dyp', + 'avaxc:sing': 'avaxc:sing', + 'avaxc:gohm': 'avaxc:gohm', + 'avaxc:boofi': 'avaxc:boofi', + 'avaxc:eth': 'avaxc:eth', + 'avaxc:wmemo': 'avaxc:wmemo', + 'avaxc:fxs': 'avaxc:fxs', + 'avaxc:sifu': 'avaxc:sifu', + 'avaxc:sushi.e': 'avaxc:sushi.e', + 'avaxc:sushi': 'avaxc:sushi', + 'avaxc:mimatic': 'avaxc:mimatic', + 'avaxc:sspell': 'avaxc:sspell', + 'avaxc:grape': 'avaxc:grape', + 'avaxc:xjoe': 'avaxc:xjoe', + 'avaxc:bsgg': 'avaxc:bsgg', + 'avaxc:roy': 'avaxc:roy', + 'avaxc:wow': 'avaxc:wow', + 'avaxc:wine': 'avaxc:wine', + 'avaxc:mu': 'avaxc:mu', + 'avaxc:frax': 'avaxc:frax', + 'avaxc:movr': 'avaxc:movr', + 'avaxc:ice': 'avaxc:ice', + 'avaxc:note': 'avaxc:note', + 'avaxc:wrose': 'avaxc:wrose', + 'avaxc:swap': 'avaxc:swap', + 'avaxc:tico': 'avaxc:tico', + 'avaxc:shrap': 'avaxc:shrap', + 'avaxc:benji': 'avaxc:benji', + 'avaxc:emdx': 'avaxc:emdx', + 'avaxc:eurc': 'avaxc:eurc', // End FTX missing AVAXC tokens // polygon Token ERC-20 - 'polygon:usdc' = 'polygon:usdc', - 'polygon:usdcv2' = 'polygon:usdcv2', - 'polygon:usdt' = 'polygon:usdt', - 'polygon:weth' = 'polygon:weth', - 'polygon:cnkt' = 'polygon:cnkt', - 'polygon:wbtc' = 'polygon:wbtc', - 'polygon:sand' = 'polygon:sand', - 'polygon:dai' = 'polygon:dai', - 'polygon:woo' = 'polygon:woo', - 'polygon:aave' = 'polygon:aave', - 'polygon:link' = 'polygon:link', - 'polygon:tusd' = 'polygon:tusd', - 'polygon:cel' = 'polygon:cel', - 'polygon:busd' = 'polygon:busd', - 'polygon:frax' = 'polygon:frax', - 'polygon:crv' = 'polygon:crv', - 'polygon:uni' = 'polygon:uni', - 'polygon:fcd' = 'polygon:fcd', - 'polygon:ape' = 'polygon:ape', - 'polygon:srm' = 'polygon:srm', - 'polygon:fly' = 'polygon:fly', - 'polygon:gfc' = 'polygon:gfc', - 'polygon:rbw' = 'polygon:rbw', - 'polygon:zed' = 'polygon:zed', - 'polygon:vext' = 'polygon:vext', - 'polygon:vcnt' = 'polygon:vcnt', - 'polygon:sushi' = 'polygon:sushi', - 'polygon:wmatic' = 'polygon:wmatic', - 'polygon:1inch' = 'polygon:1inch', - 'polygon:comp' = 'polygon:comp', - 'polygon:sol' = 'polygon:sol', - 'polygon:wavax' = 'polygon:wavax', - 'polygon:wbnb' = 'polygon:wbnb', - 'polygon:wftm' = 'polygon:wftm', - 'polygon:yfi' = 'polygon:yfi', - 'polygon:treta' = 'polygon:treta', - 'polygon:orb' = 'polygon:orb', - 'polygon:route' = 'polygon:route', - 'polygon:sbc' = 'polygon:sbc', - 'polygon:xsgd' = 'polygon:xsgd', - 'polygon:dimo' = 'polygon:dimo', - 'polygon:bcut' = 'polygon:bcut', - 'polygon:pme' = 'polygon:pme', - 'polygon:dipe' = 'polygon:dipe', - 'polygon:lif3' = 'polygon:lif3', - 'polygon:l3usd' = 'polygon:l3usd', - 'polygon:moca' = 'polygon:moca', - 'polygon:mask' = 'polygon:mask', - 'polygon:nexo' = 'polygon:nexo', - 'polygon:om' = 'polygon:om', - 'polygon:pyr' = 'polygon:pyr', - 'polygon:renbtc' = 'polygon:renbtc', - 'polygon:req' = 'polygon:req', - 'polygon:rndr' = 'polygon:rndr', - 'polygon:snx' = 'polygon:snx', - 'polygon:trb' = 'polygon:trb', - 'polygon:ali' = 'polygon:ali', - 'polygon:bal' = 'polygon:bal', - 'polygon:elon' = 'polygon:elon', - 'polygon:hex' = 'polygon:hex', - 'polygon:iotx' = 'polygon:iotx', - 'polygon:agix' = 'polygon:agix', - 'polygon:avax' = 'polygon:avax', - 'polygon:band' = 'polygon:band', - 'polygon:blz' = 'polygon:blz', - 'polygon:bnb' = 'polygon:bnb', - 'polygon:bnt' = 'polygon:bnt', - 'polygon:chz' = 'polygon:chz', - 'polygon:enj' = 'polygon:enj', - 'polygon:fet' = 'polygon:fet', - 'polygon:forth' = 'polygon:forth', - 'polygon:glm' = 'polygon:glm', - 'polygon:gno' = 'polygon:gno', - 'polygon:gohm' = 'polygon:gohm', - 'polygon:gtc' = 'polygon:gtc', - 'polygon:gusd' = 'polygon:gusd', - 'polygon:hot' = 'polygon:hot', - 'polygon:inj' = 'polygon:inj', - 'polygon:lit' = 'polygon:lit', - 'polygon:lrc' = 'polygon:lrc', - 'polygon:mana' = 'polygon:mana', - 'polygon:shib' = 'polygon:shib', - 'polygon:sxp' = 'polygon:sxp', - 'polygon:grt' = 'polygon:grt', - 'polygon:mkr' = 'polygon:mkr', - 'polygon:oxt' = 'polygon:oxt', - 'polygon:pax' = 'polygon:pax', - 'polygon:paxg' = 'polygon:paxg', - 'polygon:powr' = 'polygon:powr', - 'polygon:super' = 'polygon:super', - 'polygon:uma' = 'polygon:uma', - 'polygon:zrx' = 'polygon:zrx', - 'polygon:ont' = 'polygon:ont', - 'polygon:wrx' = 'polygon:wrx', - 'polygon:voxel' = 'polygon:voxel', - 'polygon:uft' = 'polygon:uft', - 'polygon:ooki' = 'polygon:ooki', - 'polygon:swap' = 'polygon:swap', - 'polygon:vanry' = 'polygon:vanry', - 'polygon:npt' = 'polygon:npt', - 'polygon:volt' = 'polygon:volt', - 'polygon:euroe' = 'polygon:euroe', - 'polygon:geod' = 'polygon:geod', - 'polygon:heth' = 'polygon:heth', - 'polygon:copm' = 'polygon:copm', - 'polygon:gmt' = 'polygon:gmt', - 'polygon:uhu' = 'polygon:uhu', - 'polygon:mv' = 'polygon:mv', - 'polygon:bid' = 'polygon:bid', - 'polygon:tcs' = 'polygon:tcs', - 'polygon:buidl' = 'polygon:buidl', - 'polygon:benji' = 'polygon:benji', - 'polygon:naka' = 'polygon:naka', - 'polygon:xusd' = 'polygon:xusd', + 'polygon:usdc': 'polygon:usdc', + 'polygon:usdcv2': 'polygon:usdcv2', + 'polygon:usdt': 'polygon:usdt', + 'polygon:weth': 'polygon:weth', + 'polygon:cnkt': 'polygon:cnkt', + 'polygon:wbtc': 'polygon:wbtc', + 'polygon:sand': 'polygon:sand', + 'polygon:dai': 'polygon:dai', + 'polygon:woo': 'polygon:woo', + 'polygon:aave': 'polygon:aave', + 'polygon:link': 'polygon:link', + 'polygon:tusd': 'polygon:tusd', + 'polygon:cel': 'polygon:cel', + 'polygon:busd': 'polygon:busd', + 'polygon:frax': 'polygon:frax', + 'polygon:crv': 'polygon:crv', + 'polygon:uni': 'polygon:uni', + 'polygon:fcd': 'polygon:fcd', + 'polygon:ape': 'polygon:ape', + 'polygon:srm': 'polygon:srm', + 'polygon:fly': 'polygon:fly', + 'polygon:gfc': 'polygon:gfc', + 'polygon:rbw': 'polygon:rbw', + 'polygon:zed': 'polygon:zed', + 'polygon:vext': 'polygon:vext', + 'polygon:vcnt': 'polygon:vcnt', + 'polygon:sushi': 'polygon:sushi', + 'polygon:wmatic': 'polygon:wmatic', + 'polygon:1inch': 'polygon:1inch', + 'polygon:comp': 'polygon:comp', + 'polygon:sol': 'polygon:sol', + 'polygon:wavax': 'polygon:wavax', + 'polygon:wbnb': 'polygon:wbnb', + 'polygon:wftm': 'polygon:wftm', + 'polygon:yfi': 'polygon:yfi', + 'polygon:treta': 'polygon:treta', + 'polygon:orb': 'polygon:orb', + 'polygon:route': 'polygon:route', + 'polygon:sbc': 'polygon:sbc', + 'polygon:xsgd': 'polygon:xsgd', + 'polygon:dimo': 'polygon:dimo', + 'polygon:bcut': 'polygon:bcut', + 'polygon:pme': 'polygon:pme', + 'polygon:dipe': 'polygon:dipe', + 'polygon:lif3': 'polygon:lif3', + 'polygon:l3usd': 'polygon:l3usd', + 'polygon:moca': 'polygon:moca', + 'polygon:mask': 'polygon:mask', + 'polygon:nexo': 'polygon:nexo', + 'polygon:om': 'polygon:om', + 'polygon:pyr': 'polygon:pyr', + 'polygon:renbtc': 'polygon:renbtc', + 'polygon:req': 'polygon:req', + 'polygon:rndr': 'polygon:rndr', + 'polygon:snx': 'polygon:snx', + 'polygon:trb': 'polygon:trb', + 'polygon:ali': 'polygon:ali', + 'polygon:bal': 'polygon:bal', + 'polygon:elon': 'polygon:elon', + 'polygon:hex': 'polygon:hex', + 'polygon:iotx': 'polygon:iotx', + 'polygon:agix': 'polygon:agix', + 'polygon:avax': 'polygon:avax', + 'polygon:band': 'polygon:band', + 'polygon:blz': 'polygon:blz', + 'polygon:bnb': 'polygon:bnb', + 'polygon:bnt': 'polygon:bnt', + 'polygon:chz': 'polygon:chz', + 'polygon:enj': 'polygon:enj', + 'polygon:fet': 'polygon:fet', + 'polygon:forth': 'polygon:forth', + 'polygon:glm': 'polygon:glm', + 'polygon:gno': 'polygon:gno', + 'polygon:gohm': 'polygon:gohm', + 'polygon:gtc': 'polygon:gtc', + 'polygon:gusd': 'polygon:gusd', + 'polygon:hot': 'polygon:hot', + 'polygon:inj': 'polygon:inj', + 'polygon:lit': 'polygon:lit', + 'polygon:lrc': 'polygon:lrc', + 'polygon:mana': 'polygon:mana', + 'polygon:shib': 'polygon:shib', + 'polygon:sxp': 'polygon:sxp', + 'polygon:grt': 'polygon:grt', + 'polygon:mkr': 'polygon:mkr', + 'polygon:oxt': 'polygon:oxt', + 'polygon:pax': 'polygon:pax', + 'polygon:paxg': 'polygon:paxg', + 'polygon:powr': 'polygon:powr', + 'polygon:super': 'polygon:super', + 'polygon:uma': 'polygon:uma', + 'polygon:zrx': 'polygon:zrx', + 'polygon:ont': 'polygon:ont', + 'polygon:wrx': 'polygon:wrx', + 'polygon:voxel': 'polygon:voxel', + 'polygon:uft': 'polygon:uft', + 'polygon:ooki': 'polygon:ooki', + 'polygon:swap': 'polygon:swap', + 'polygon:vanry': 'polygon:vanry', + 'polygon:npt': 'polygon:npt', + 'polygon:volt': 'polygon:volt', + 'polygon:euroe': 'polygon:euroe', + 'polygon:geod': 'polygon:geod', + 'polygon:heth': 'polygon:heth', + 'polygon:copm': 'polygon:copm', + 'polygon:gmt': 'polygon:gmt', + 'polygon:uhu': 'polygon:uhu', + 'polygon:mv': 'polygon:mv', + 'polygon:bid': 'polygon:bid', + 'polygon:tcs': 'polygon:tcs', + 'polygon:buidl': 'polygon:buidl', + 'polygon:benji': 'polygon:benji', + 'polygon:naka': 'polygon:naka', + 'polygon:xusd': 'polygon:xusd', // Polygon NFTs // generic NFTs - 'erc721:polygontoken' = 'erc721:polygontoken', - 'erc1155:polygontoken' = 'erc1155:polygontoken', + 'erc721:polygontoken': 'erc721:polygontoken', + 'erc1155:polygontoken': 'erc1155:polygontoken', // BSC Token BEP-20 - 'bsc:sol' = 'bsc:sol', - 'bsc:solv' = 'bsc:solv', - 'bsc:brise' = 'bsc:brise', - 'bsc:bsw' = 'bsc:bsw', - 'bsc:burger' = 'bsc:burger', - 'bsc:cfx' = 'bsc:cfx', - 'bsc:bake' = 'bsc:bake', - 'bsc:bnx' = 'bsc:bnx', - 'bsc:busd' = 'bsc:busd', - 'bsc:hook' = 'bsc:hook', - 'bsc:ksm' = 'bsc:ksm', - 'bsc:usdt' = 'bsc:usdt', - 'bsc:vet' = 'bsc:vet', - 'bsc:cake' = 'bsc:cake', - 'bsc:litt' = 'bsc:litt', - 'bsc:xvs' = 'bsc:xvs', - 'bsc:epx' = 'bsc:epx', - 'bsc:usdc' = 'bsc:usdc', - 'bsc:eth' = 'bsc:eth', - 'bsc:dd' = 'bsc:dd', - 'bsc:parti' = 'bsc:parti', - 'bsc:form' = 'bsc:form', - 'bsc:ltc' = 'bsc:ltc', - 'bsc:mask' = 'bsc:mask', - 'bsc:matic' = 'bsc:matic', - 'bsc:mbox' = 'bsc:mbox', - 'bsc:mdt' = 'bsc:mdt', - 'bsc:nuls' = 'bsc:nuls', - 'bsc:ont' = 'bsc:ont', - 'bsc:orn' = 'bsc:orn', - 'bsc:porto' = 'bsc:porto', - 'bsc:reef' = 'bsc:reef', - 'bsc:renbtc' = 'bsc:renbtc', - 'bsc:snx' = 'bsc:snx', - 'bsc:tking' = 'bsc:tking', - 'bsc:tlm' = 'bsc:tlm', - 'bsc:ton' = 'bsc:ton', - 'bsc:trx' = 'bsc:trx', - 'bsc:wbnb' = 'bsc:wbnb', - 'bsc:win' = 'bsc:win', - 'bsc:wrx' = 'bsc:wrx', - 'bsc:yfii' = 'bsc:yfii', - 'bsc:zil' = 'bsc:zil', - 'bsc:1inch' = 'bsc:1inch', - 'bsc:ada' = 'bsc:ada', - 'bsc:alice' = 'bsc:alice', - 'bsc:alpaca' = 'bsc:alpaca', - 'bsc:alpine' = 'bsc:alpine', - 'bsc:ankr' = 'bsc:ankr', - 'bsc:avax' = 'bsc:avax', - 'bsc:beta' = 'bsc:beta', - 'bsc:btt' = 'bsc:btt', - 'bsc:celr' = 'bsc:celr', - 'bsc:chr' = 'bsc:chr', - 'bsc:coti' = 'bsc:coti', - 'bsc:cream' = 'bsc:cream', - 'bsc:dar' = 'bsc:dar', - 'bsc:degov2' = 'bsc:degov2', - 'bsc:dodo' = 'bsc:dodo', - 'bsc:elon' = 'bsc:elon', - 'bsc:etc' = 'bsc:etc', - 'bsc:firo' = 'bsc:firo', - 'bsc:front' = 'bsc:front', - 'bsc:hft' = 'bsc:hft', - 'bsc:high' = 'bsc:high', - 'bsc:inj' = 'bsc:inj', - 'bsc:iotx' = 'bsc:iotx', - 'bsc:auto' = 'bsc:auto', - 'bsc:fet' = 'bsc:fet', - 'bsc:kas' = 'bsc:kas', - 'bsc:lit' = 'bsc:lit', - 'bsc:mana' = 'bsc:mana', - 'bsc:shib' = 'bsc:shib', - 'bsc:sxp' = 'bsc:sxp', - 'bsc:nnn' = 'bsc:nnn', - 'bsc:nvm' = 'bsc:nvm', - 'bsc:jasmy' = 'bsc:jasmy', - 'bsc:near' = 'bsc:near', - 'bsc:ocean' = 'bsc:ocean', - 'bsc:sand' = 'bsc:sand', - 'bsc:tusd' = 'bsc:tusd', - 'bsc:wrose' = 'bsc:wrose', - 'bsc:twt' = 'bsc:twt', - 'bsc:sfp' = 'bsc:sfp', - 'bsc:edu' = 'bsc:edu', - 'bsc:mrs' = 'bsc:mrs', - 'bsc:ong' = 'bsc:ong', - 'bsc:ctk' = 'bsc:ctk', - 'bsc:rndt' = 'bsc:rndt', - 'bsc:mbx' = 'bsc:mbx', - 'bsc:mav' = 'bsc:mav', - 'bsc:mct' = 'bsc:mct', - 'bsc:thunder' = 'bsc:thunder', - 'bsc:atlas' = 'bsc:atlas', - 'bsc:vidt' = 'bsc:vidt', - 'bsc:unfi' = 'bsc:unfi', - 'bsc:chess' = 'bsc:chess', - 'bsc:pols' = 'bsc:pols', - 'bsc:uft' = 'bsc:uft', - 'bsc:wing' = 'bsc:wing', - 'bsc:santos' = 'bsc:santos', - 'bsc:lazio' = 'bsc:lazio', - 'bsc:swap' = 'bsc:swap', - 'bsc:troy' = 'bsc:troy', - 'bsc:rdnt' = 'bsc:rdnt', - 'bsc:pax' = 'bsc:pax', - 'bsc:volt' = 'bsc:volt', - 'tbsc:busd' = 'tbsc:busd', - 'tbsc:usd1' = 'tbsc:usd1', - 'tbsc:stgusd1' = 'tbsc:stgusd1', - 'bsc:city' = 'bsc:city', - 'bsc:fdusd' = 'bsc:fdusd', - 'bsc:floki' = 'bsc:floki', - 'bsc:ldo' = 'bsc:ldo', - 'bsc:om' = 'bsc:om', - 'bsc:eos' = 'bsc:eos', - 'bsc:usdd' = 'bsc:usdd', - 'bsc:gft' = 'bsc:gft', - 'bsc:glmr' = 'bsc:glmr', - 'bsc:gmt' = 'bsc:gmt', - 'bsc:tko' = 'bsc:tko', - 'bsc:vite' = 'bsc:vite', - 'bsc:mdx' = 'bsc:mdx', - 'bsc:multi' = 'bsc:multi', - 'bsc:psg' = 'bsc:psg', - 'bsc:telos' = 'bsc:telos', - 'bsc:flux' = 'bsc:flux', - 'bsc:h2o' = 'bsc:h2o', - 'bsc:lto' = 'bsc:lto', - 'bsc:kmd' = 'bsc:kmd', - 'bsc:farm' = 'bsc:farm', - 'bsc:lina' = 'bsc:lina', - 'bsc:usd1' = 'bsc:usd1', - 'bsc:oort' = 'bsc:oort', - 'bsc:aitech' = 'bsc:aitech', - 'bsc:fil' = 'bsc:fil', - 'bsc:ftm' = 'bsc:ftm', - 'bsc:comp' = 'bsc:comp', - 'bsc:uni' = 'bsc:uni', - 'bsc:yfi' = 'bsc:yfi', - 'bsc:link' = 'bsc:link', - 'bsc:cusdo' = 'bsc:cusdo', - 'bsc:unx' = 'bsc:unx', - 'bsc:usdo' = 'bsc:usdo', + 'bsc:sol': 'bsc:sol', + 'bsc:solv': 'bsc:solv', + 'bsc:brise': 'bsc:brise', + 'bsc:bsw': 'bsc:bsw', + 'bsc:burger': 'bsc:burger', + 'bsc:cfx': 'bsc:cfx', + 'bsc:bake': 'bsc:bake', + 'bsc:bnx': 'bsc:bnx', + 'bsc:busd': 'bsc:busd', + 'bsc:hook': 'bsc:hook', + 'bsc:ksm': 'bsc:ksm', + 'bsc:usdt': 'bsc:usdt', + 'bsc:vet': 'bsc:vet', + 'bsc:cake': 'bsc:cake', + 'bsc:litt': 'bsc:litt', + 'bsc:xvs': 'bsc:xvs', + 'bsc:epx': 'bsc:epx', + 'bsc:usdc': 'bsc:usdc', + 'bsc:eth': 'bsc:eth', + 'bsc:dd': 'bsc:dd', + 'bsc:parti': 'bsc:parti', + 'bsc:form': 'bsc:form', + 'bsc:ltc': 'bsc:ltc', + 'bsc:mask': 'bsc:mask', + 'bsc:matic': 'bsc:matic', + 'bsc:mbox': 'bsc:mbox', + 'bsc:mdt': 'bsc:mdt', + 'bsc:nuls': 'bsc:nuls', + 'bsc:ont': 'bsc:ont', + 'bsc:orn': 'bsc:orn', + 'bsc:porto': 'bsc:porto', + 'bsc:reef': 'bsc:reef', + 'bsc:renbtc': 'bsc:renbtc', + 'bsc:snx': 'bsc:snx', + 'bsc:tking': 'bsc:tking', + 'bsc:tlm': 'bsc:tlm', + 'bsc:ton': 'bsc:ton', + 'bsc:trx': 'bsc:trx', + 'bsc:wbnb': 'bsc:wbnb', + 'bsc:win': 'bsc:win', + 'bsc:wrx': 'bsc:wrx', + 'bsc:yfii': 'bsc:yfii', + 'bsc:zil': 'bsc:zil', + 'bsc:1inch': 'bsc:1inch', + 'bsc:ada': 'bsc:ada', + 'bsc:alice': 'bsc:alice', + 'bsc:alpaca': 'bsc:alpaca', + 'bsc:alpine': 'bsc:alpine', + 'bsc:ankr': 'bsc:ankr', + 'bsc:avax': 'bsc:avax', + 'bsc:beta': 'bsc:beta', + 'bsc:btt': 'bsc:btt', + 'bsc:celr': 'bsc:celr', + 'bsc:chr': 'bsc:chr', + 'bsc:coti': 'bsc:coti', + 'bsc:cream': 'bsc:cream', + 'bsc:dar': 'bsc:dar', + 'bsc:degov2': 'bsc:degov2', + 'bsc:dodo': 'bsc:dodo', + 'bsc:elon': 'bsc:elon', + 'bsc:etc': 'bsc:etc', + 'bsc:firo': 'bsc:firo', + 'bsc:front': 'bsc:front', + 'bsc:hft': 'bsc:hft', + 'bsc:high': 'bsc:high', + 'bsc:inj': 'bsc:inj', + 'bsc:iotx': 'bsc:iotx', + 'bsc:auto': 'bsc:auto', + 'bsc:fet': 'bsc:fet', + 'bsc:kas': 'bsc:kas', + 'bsc:lit': 'bsc:lit', + 'bsc:mana': 'bsc:mana', + 'bsc:shib': 'bsc:shib', + 'bsc:sxp': 'bsc:sxp', + 'bsc:nnn': 'bsc:nnn', + 'bsc:nvm': 'bsc:nvm', + 'bsc:jasmy': 'bsc:jasmy', + 'bsc:near': 'bsc:near', + 'bsc:ocean': 'bsc:ocean', + 'bsc:sand': 'bsc:sand', + 'bsc:tusd': 'bsc:tusd', + 'bsc:wrose': 'bsc:wrose', + 'bsc:twt': 'bsc:twt', + 'bsc:sfp': 'bsc:sfp', + 'bsc:edu': 'bsc:edu', + 'bsc:mrs': 'bsc:mrs', + 'bsc:ong': 'bsc:ong', + 'bsc:ctk': 'bsc:ctk', + 'bsc:rndt': 'bsc:rndt', + 'bsc:mbx': 'bsc:mbx', + 'bsc:mav': 'bsc:mav', + 'bsc:mct': 'bsc:mct', + 'bsc:thunder': 'bsc:thunder', + 'bsc:atlas': 'bsc:atlas', + 'bsc:vidt': 'bsc:vidt', + 'bsc:unfi': 'bsc:unfi', + 'bsc:chess': 'bsc:chess', + 'bsc:pols': 'bsc:pols', + 'bsc:uft': 'bsc:uft', + 'bsc:wing': 'bsc:wing', + 'bsc:santos': 'bsc:santos', + 'bsc:lazio': 'bsc:lazio', + 'bsc:swap': 'bsc:swap', + 'bsc:troy': 'bsc:troy', + 'bsc:rdnt': 'bsc:rdnt', + 'bsc:pax': 'bsc:pax', + 'bsc:volt': 'bsc:volt', + 'tbsc:busd': 'tbsc:busd', + 'tbsc:usd1': 'tbsc:usd1', + 'tbsc:stgusd1': 'tbsc:stgusd1', + 'bsc:city': 'bsc:city', + 'bsc:fdusd': 'bsc:fdusd', + 'bsc:floki': 'bsc:floki', + 'bsc:ldo': 'bsc:ldo', + 'bsc:om': 'bsc:om', + 'bsc:eos': 'bsc:eos', + 'bsc:usdd': 'bsc:usdd', + 'bsc:gft': 'bsc:gft', + 'bsc:glmr': 'bsc:glmr', + 'bsc:gmt': 'bsc:gmt', + 'bsc:tko': 'bsc:tko', + 'bsc:vite': 'bsc:vite', + 'bsc:mdx': 'bsc:mdx', + 'bsc:multi': 'bsc:multi', + 'bsc:psg': 'bsc:psg', + 'bsc:telos': 'bsc:telos', + 'bsc:flux': 'bsc:flux', + 'bsc:h2o': 'bsc:h2o', + 'bsc:lto': 'bsc:lto', + 'bsc:kmd': 'bsc:kmd', + 'bsc:farm': 'bsc:farm', + 'bsc:lina': 'bsc:lina', + 'bsc:usd1': 'bsc:usd1', + 'bsc:oort': 'bsc:oort', + 'bsc:aitech': 'bsc:aitech', + 'bsc:fil': 'bsc:fil', + 'bsc:ftm': 'bsc:ftm', + 'bsc:comp': 'bsc:comp', + 'bsc:uni': 'bsc:uni', + 'bsc:yfi': 'bsc:yfi', + 'bsc:link': 'bsc:link', + 'bsc:cusdo': 'bsc:cusdo', + 'bsc:unx': 'bsc:unx', + 'bsc:usdo': 'bsc:usdo', // BSC NFTs // generic NFTs - 'erc721:bsctoken' = 'erc721:bsctoken', - 'erc1155:bsctoken' = 'erc1155:bsctoken', + 'erc721:bsctoken': 'erc721:bsctoken', + 'erc1155:bsctoken': 'erc1155:bsctoken', // Test BSC NFTs - 'terc721:bsctoken' = 'terc721:bsctoken', - 'terc1155:bsctoken' = 'terc1155:bsctoken', + 'terc721:bsctoken': 'terc721:bsctoken', + 'terc1155:bsctoken': 'terc1155:bsctoken', // Polygon testnet tokens - 'tpolygon:derc20' = 'tpolygon:derc20', - 'tpolygon:link' = 'tpolygon:link', - 'tpolygon:name' = 'tpolygon:name', - 'tpolygon:opm' = 'tpolygon:opm', - 'tpolygon:pme' = 'tpolygon:pme', - 'tpolygon:xsgd' = 'tpolygon:xsgd', - 'tpolygon:terc18dp' = 'tpolygon:terc18dp', - 'tpolygon:terc10dp' = 'tpolygon:terc10dp', - 'tpolygon:terc6dp' = 'tpolygon:terc6dp', - 'tpolygon:usdt' = 'tpolygon:usdt', - 'tpolygon:usdc' = 'tpolygon:usdc', - 'tpolygon:testcopm' = 'tpolygon:testcopm', - 'tpolygon:BitGoTest' = 'tpolygon:BitGoTest', + 'tpolygon:derc20': 'tpolygon:derc20', + 'tpolygon:link': 'tpolygon:link', + 'tpolygon:name': 'tpolygon:name', + 'tpolygon:opm': 'tpolygon:opm', + 'tpolygon:pme': 'tpolygon:pme', + 'tpolygon:xsgd': 'tpolygon:xsgd', + 'tpolygon:terc18dp': 'tpolygon:terc18dp', + 'tpolygon:terc10dp': 'tpolygon:terc10dp', + 'tpolygon:terc6dp': 'tpolygon:terc6dp', + 'tpolygon:usdt': 'tpolygon:usdt', + 'tpolygon:usdc': 'tpolygon:usdc', + 'tpolygon:testcopm': 'tpolygon:testcopm', + 'tpolygon:BitGoTest': 'tpolygon:BitGoTest', // generic NFTs - 'terc721:polygontoken' = 'terc721:polygontoken', - 'terc1155:polygontoken' = 'terc1155:polygontoken', + 'terc721:polygontoken': 'terc721:polygontoken', + 'terc1155:polygontoken': 'terc1155:polygontoken', // Arbitrum mainnet tokens - 'arbeth:link' = 'arbeth:link', - 'arbeth:spxux' = 'arbeth:spxux', - 'arbeth:usdc' = 'arbeth:usdc', - 'arbeth:xsgdv2' = 'arbeth:xsgdv2', - 'arbeth:trn' = 'arbeth:trn', - 'arbeth:usdcv2' = 'arbeth:usdcv2', - 'arbeth:usdt' = 'arbeth:usdt', - 'arbeth:arb' = 'arbeth:arb', - 'arbeth:sqd' = 'arbeth:sqd', - 'arbeth:cbl' = 'arbeth:cbl', - 'arbeth:w' = 'arbeth:w', - 'arbeth:comp' = 'arbeth:comp', - 'arbeth:coti' = 'arbeth:coti', - 'arbeth:gno' = 'arbeth:gno', - 'arbeth:gohm' = 'arbeth:gohm', - 'arbeth:grt' = 'arbeth:grt', - 'arbeth:knc' = 'arbeth:knc', - 'arbeth:trb' = 'arbeth:trb', - 'arbeth:tusd' = 'arbeth:tusd', - 'arbeth:uma' = 'arbeth:uma', - 'arbeth:uni' = 'arbeth:uni', - 'arbeth:weth' = 'arbeth:weth', - 'arbeth:woo' = 'arbeth:woo', - 'arbeth:yfi' = 'arbeth:yfi', - 'arbeth:xsgd' = 'arbeth:xsgd', - 'arbeth:ztx' = 'arbeth:ztx', - 'arbeth:ldo' = 'arbeth:ldo', - 'arbeth:egp' = 'arbeth:egp', - 'arbeth:myrc' = 'arbeth:myrc', - 'arbeth:gs' = 'arbeth:gs', - 'arbeth:veur' = 'arbeth:veur', - 'arbeth:vchf' = 'arbeth:vchf', - 'arbeth:tbill' = 'arbeth:tbill', - 'arbeth:xai' = 'arbeth:xai', - 'arbeth:flttx' = 'arbeth:flttx', - 'arbeth:wtsix' = 'arbeth:wtsix', - 'arbeth:modrx' = 'arbeth:modrx', - 'arbeth:techx' = 'arbeth:techx', - 'arbeth:wtsyx' = 'arbeth:wtsyx', - 'arbeth:wtlgx' = 'arbeth:wtlgx', - 'arbeth:wttsx' = 'arbeth:wttsx', - 'arbeth:tipsx' = 'arbeth:tipsx', - 'arbeth:wtstx' = 'arbeth:wtstx', - 'arbeth:wtgxx' = 'arbeth:wtgxx', - 'arbeth:lngvx' = 'arbeth:lngvx', - 'arbeth:eqtyx' = 'arbeth:eqtyx', - 'arbeth:anime' = 'arbeth:anime', - 'arbeth:benji' = 'arbeth:benji', - 'arbeth:dolo' = 'arbeth:dolo', + 'arbeth:link': 'arbeth:link', + 'arbeth:spxux': 'arbeth:spxux', + 'arbeth:usdc': 'arbeth:usdc', + 'arbeth:xsgdv2': 'arbeth:xsgdv2', + 'arbeth:trn': 'arbeth:trn', + 'arbeth:usdcv2': 'arbeth:usdcv2', + 'arbeth:usdt': 'arbeth:usdt', + 'arbeth:arb': 'arbeth:arb', + 'arbeth:sqd': 'arbeth:sqd', + 'arbeth:cbl': 'arbeth:cbl', + 'arbeth:w': 'arbeth:w', + 'arbeth:comp': 'arbeth:comp', + 'arbeth:coti': 'arbeth:coti', + 'arbeth:gno': 'arbeth:gno', + 'arbeth:gohm': 'arbeth:gohm', + 'arbeth:grt': 'arbeth:grt', + 'arbeth:knc': 'arbeth:knc', + 'arbeth:trb': 'arbeth:trb', + 'arbeth:tusd': 'arbeth:tusd', + 'arbeth:uma': 'arbeth:uma', + 'arbeth:uni': 'arbeth:uni', + 'arbeth:weth': 'arbeth:weth', + 'arbeth:woo': 'arbeth:woo', + 'arbeth:yfi': 'arbeth:yfi', + 'arbeth:xsgd': 'arbeth:xsgd', + 'arbeth:ztx': 'arbeth:ztx', + 'arbeth:ldo': 'arbeth:ldo', + 'arbeth:egp': 'arbeth:egp', + 'arbeth:myrc': 'arbeth:myrc', + 'arbeth:gs': 'arbeth:gs', + 'arbeth:veur': 'arbeth:veur', + 'arbeth:vchf': 'arbeth:vchf', + 'arbeth:tbill': 'arbeth:tbill', + 'arbeth:xai': 'arbeth:xai', + 'arbeth:flttx': 'arbeth:flttx', + 'arbeth:wtsix': 'arbeth:wtsix', + 'arbeth:modrx': 'arbeth:modrx', + 'arbeth:techx': 'arbeth:techx', + 'arbeth:wtsyx': 'arbeth:wtsyx', + 'arbeth:wtlgx': 'arbeth:wtlgx', + 'arbeth:wttsx': 'arbeth:wttsx', + 'arbeth:tipsx': 'arbeth:tipsx', + 'arbeth:wtstx': 'arbeth:wtstx', + 'arbeth:wtgxx': 'arbeth:wtgxx', + 'arbeth:lngvx': 'arbeth:lngvx', + 'arbeth:eqtyx': 'arbeth:eqtyx', + 'arbeth:anime': 'arbeth:anime', + 'arbeth:benji': 'arbeth:benji', + 'arbeth:dolo': 'arbeth:dolo', // Arbitrum testnet tokens - 'tarbeth:link' = 'tarbeth:link', - 'tarbeth:xsgd' = 'tarbeth:xsgd', + 'tarbeth:link': 'tarbeth:link', + 'tarbeth:xsgd': 'tarbeth:xsgd', // Optimism mainnet tokens - 'opeth:link' = 'opeth:link', - 'opeth:usdc' = 'opeth:usdc', - 'opeth:usdcv2' = 'opeth:usdcv2', - 'opeth:usdt' = 'opeth:usdt', - 'opeth:op' = 'opeth:op', - 'opeth:exa' = 'opeth:exa', - 'opeth:wld' = 'opeth:wld', - 'opeth:wct' = 'opeth:wct', - 'opeth:spxux' = 'opeth:spxux', - 'opeth:flttx' = 'opeth:flttx', - 'opeth:wtsix' = 'opeth:wtsix', - 'opeth:modrx' = 'opeth:modrx', - 'opeth:techx' = 'opeth:techx', - 'opeth:wtsyx' = 'opeth:wtsyx', - 'opeth:wtlgx' = 'opeth:wtlgx', - 'opeth:wttsx' = 'opeth:wttsx', - 'opeth:tipsx' = 'opeth:tipsx', - 'opeth:wtstx' = 'opeth:wtstx', - 'opeth:wtgxx' = 'opeth:wtgxx', - 'opeth:lngvx' = 'opeth:lngvx', - 'opeth:eqtyx' = 'opeth:eqtyx', + 'opeth:link': 'opeth:link', + 'opeth:usdc': 'opeth:usdc', + 'opeth:usdcv2': 'opeth:usdcv2', + 'opeth:usdt': 'opeth:usdt', + 'opeth:op': 'opeth:op', + 'opeth:exa': 'opeth:exa', + 'opeth:wld': 'opeth:wld', + 'opeth:wct': 'opeth:wct', + 'opeth:spxux': 'opeth:spxux', + 'opeth:flttx': 'opeth:flttx', + 'opeth:wtsix': 'opeth:wtsix', + 'opeth:modrx': 'opeth:modrx', + 'opeth:techx': 'opeth:techx', + 'opeth:wtsyx': 'opeth:wtsyx', + 'opeth:wtlgx': 'opeth:wtlgx', + 'opeth:wttsx': 'opeth:wttsx', + 'opeth:tipsx': 'opeth:tipsx', + 'opeth:wtstx': 'opeth:wtstx', + 'opeth:wtgxx': 'opeth:wtgxx', + 'opeth:lngvx': 'opeth:lngvx', + 'opeth:eqtyx': 'opeth:eqtyx', // Optimism testnet tokens - 'topeth:terc18dp' = 'topeth:terc18dp', - 'topeth:wct' = 'topeth:wct', + 'topeth:terc18dp': 'topeth:terc18dp', + 'topeth:wct': 'topeth:wct', // zkSync mainnet tokens - 'zketh:link' = 'zketh:link', + 'zketh:link': 'zketh:link', // zkSync testnet tokens - 'tzketh:link' = 'tzketh:link', + 'tzketh:link': 'tzketh:link', // Celo mainnet tokens - 'celo:pact' = 'celo:pact', + 'celo:pact': 'celo:pact', // bera mainnet tokens - 'bera:bgt' = 'bera:bgt', - 'bera:honey' = 'bera:honey', - 'bera:usdc' = 'bera:usdc', - 'bera:ibera' = 'bera:ibera', - 'bera:dolo' = 'bera:dolo', - 'bera:wgbera' = 'bera:wgbera', + 'bera:bgt': 'bera:bgt', + 'bera:honey': 'bera:honey', + 'bera:usdc': 'bera:usdc', + 'bera:ibera': 'bera:ibera', + 'bera:dolo': 'bera:dolo', + 'bera:wgbera': 'bera:wgbera', // bera testnet tokens - 'tbera:bgt' = 'tbera:bgt', - 'tbera:honey' = 'tbera:honey', - 'tbera:usdc' = 'tbera:usdc', - 'tbera:ibera' = 'tbera:ibera', + 'tbera:bgt': 'tbera:bgt', + 'tbera:honey': 'tbera:honey', + 'tbera:usdc': 'tbera:usdc', + 'tbera:ibera': 'tbera:ibera', // Soneium NFTs // generic NFTs - 'erc721:soneiumtoken' = 'erc721:soneiumtoken', - 'erc1155:soneiumtoken' = 'erc1155:soneiumtoken', - 'tsoneium:test721' = 'tsoneium:test721', - 'tsoneium:test1155' = 'tsoneium:test1155', + 'erc721:soneiumtoken': 'erc721:soneiumtoken', + 'erc1155:soneiumtoken': 'erc1155:soneiumtoken', + 'tsoneium:test721': 'tsoneium:test721', + 'tsoneium:test1155': 'tsoneium:test1155', // Lido ETH NFTs - 'erc721:unsteth' = 'erc721:unsteth', - 'terc721:unsteth' = 'terc721:unsteth', + 'erc721:unsteth': 'erc721:unsteth', + 'terc721:unsteth': 'terc721:unsteth', // coredao mainnet tokens - 'coredao:stcore' = 'coredao:stcore', + 'coredao:stcore': 'coredao:stcore', // coredao testnet tokens - 'tcoredao:stcore' = 'tcoredao:stcore', + 'tcoredao:stcore': 'tcoredao:stcore', //world chain mainnet tokens - 'world:wld' = 'world:wld', - 'world:usdc' = 'world:usdc', + 'world:wld': 'world:wld', + 'world:usdc': 'world:usdc', //world chain testnet tokens - 'tworld:wld' = 'tworld:wld', - 'tworld:usdc' = 'tworld:usdc', + 'tworld:wld': 'tworld:wld', + 'tworld:usdc': 'tworld:usdc', - ERC721 = 'erc721', - ERC1155 = 'erc1155', - NONSTANDARD = 'nonstandard', + ERC721: 'erc721', + ERC1155: 'erc1155', + NONSTANDARD: 'nonstandard', // Cardano Token - adaTestnetToken = 'temporary-placeholder', + adaTestnetToken: 'temporary-placeholder', // solana token - 'sol:bome' = 'sol:bome', - '3uejh-usdc' = '3uejh-usdc', - 'avax-usdc' = 'avax-usdc', - 'bop-usdc' = 'bop-usdc', - 'sol:crown' = 'sol:crown', - 'elu-usdt' = 'elu-usdt', - 'fida-usdc' = 'fida-usdc', - 'fida-usdt' = 'fida-usdt', - 'ftt-ftt' = 'ftt-ftt', - 'link-usdc' = 'link-usdc', - 'lqid-usdc' = 'lqid-usdc', - 'maticpo-usdc' = 'maticpo-usdc', - 'msol-sol' = 'msol-sol', - 'msol-usdc' = 'msol-usdc', - 'prism-usdc' = 'prism-usdc', - 'sol:pyth' = 'sol:pyth', - 'rendoge-usdc' = 'rendoge-usdc', - 'shdw-usdc' = 'shdw-usdc', - 'sol-wtust' = 'sol-wtust', - 'srm-usdc' = 'srm-usdc', - 'srmet-srm' = 'srmet-srm', - 'sushi-usdc' = 'sushi-usdc', - 'tuatlas' = 'tuatlas', - 'tucope' = 'tucope', - 'tulike' = 'tulike', - 'tureal' = 'tureal', - 'tusamo' = 'tusamo', - 'usdt-usdc' = 'usdt-usdc', - 'wbwbnb-usdc' = 'wbwbnb-usdc', - 'wheth-usdc' = 'wheth-usdc', - 'wtust-usdt' = 'wtust-usdt', - 'xcope-usdc' = 'xcope-usdc', - 'xrp-sollet' = 'xrp-sollet', - 'aury' = 'aury', - 'dio' = 'dio', - 'sol-perp' = 'sol-perp', - 'sol-woo' = 'sol-woo', - 'sol-weth' = 'sol-weth', - 'btc-sollet' = 'btc-sollet', - 'eth-sollet' = 'eth-sollet', - 'sol:bonk' = 'sol:bonk', - 'jto' = 'jto', - 'sol:jto' = 'sol:jto', - 'jup' = 'jup', - 'sol:jup' = 'sol:jup', - 'sol:honey' = 'sol:honey', - 'mobile' = 'mobile', - 'sol:mobile' = 'sol:mobile', - 'wif' = 'wif', - 'sol:wif' = 'sol:wif', - 'natix' = 'natix', - 'sol:natix' = 'sol:natix', - 'sol:ks' = 'sol:ks', - 'sol:apusdt' = 'sol:apusdt', - 'sol:acusd' = 'sol:acusd', - 'sol:solink' = 'sol:solink', - 'sol:block' = 'sol:block', - 'sol:render' = 'sol:render', - 'sol:wen' = 'sol:wen', - 'sol:mew' = 'sol:mew', - 'sol:pyusd' = 'sol:pyusd', - 'sol:moveusd' = 'sol:moveusd', - 'sol:dxl' = 'sol:dxl', - 'sol:mother' = 'sol:mother', - 'sol:wrose' = 'sol:wrose', - 'sol:atlas' = 'sol:atlas', - 'sol:mdt' = 'sol:mdt', - 'sol:io' = 'sol:io', - 'sol:aave' = 'sol:aave', - 'sol:ldo' = 'sol:ldo', - 'sol:gt' = 'sol:gt', - 'sol:popcat' = 'sol:popcat', - 'sol:axs' = 'sol:axs', - 'sol:sand' = 'sol:sand', - 'sol:ens' = 'sol:ens', - 'sol:enron' = 'sol:enron', - 'sol:jitosol' = 'sol:jitosol', - 'sol:zeus' = 'sol:zeus', - 'sol:kmno' = 'sol:kmno', - 'sol:giga' = 'sol:giga', - 'sol:tnsr' = 'sol:tnsr', - 'sol:ssol' = 'sol:ssol', - 'sol:drift' = 'sol:drift', - 'sol:spx' = 'sol:spx', - 'sol:turbo' = 'sol:turbo', - 'sol:fartcoin' = 'sol:fartcoin', - 'sol:swarms' = 'sol:swarms', - 'sol:nc' = 'sol:nc', - 'sol:tai' = 'sol:tai', - 'sol:pengu' = 'sol:pengu', - 'sol:corn' = 'sol:corn', - 'sol:yes' = 'sol:yes', - 'sol:ai16z' = 'sol:ai16z', - 'sol:pnut' = 'sol:pnut', - 'sol:nyan' = 'sol:nyan', - 'sol:virtual' = 'sol:virtual', - 'sol:zerebro' = 'sol:zerebro', - 'sol:arc' = 'sol:arc', - 'sol:nos' = 'sol:nos', - 'sol:jlp' = 'sol:jlp', - 'sol:grass' = 'sol:grass', - 'sol:trump' = 'sol:trump', - 'sol:melania' = 'sol:melania', - 'sol:ustry' = 'sol:ustry', - 'sol:eurob' = 'sol:eurob', - 'sol:tesouro' = 'sol:tesouro', - 'sol:cetes' = 'sol:cetes', - 'sol:gilts' = 'sol:gilts', - 'sol:muskit' = 'sol:muskit', - 'sol:matrix' = 'sol:matrix', - 'sol:eurcv' = 'sol:eurcv', - 'sol:layer' = 'sol:layer', - 'sol:rock' = 'sol:rock', - 'sol:dood' = 'sol:dood', - 'sol:sb' = 'sol:sb', - 'sol:dfdvsol' = 'sol:dfdvsol', - 'sol:chillguy' = 'sol:chillguy', - 'sol:moodeng' = 'sol:moodeng', - 'sol:hsol' = 'sol:hsol', - 'sol:grph' = 'sol:grph', - 'sol:superbonds' = 'sol:superbonds', - 'sol:would' = 'sol:would', - 'sol:dog' = 'sol:dog', - 'sol:saros' = 'sol:saros', - 'sol:babydoge' = 'sol:babydoge', - 'sol:useless' = 'sol:useless', - 'sol:gohome' = 'sol:gohome', - 'sol:aura' = 'sol:aura', - 'sol:me' = 'sol:me', - 'sol:alch' = 'sol:alch', - 'sol:launchcoin' = 'sol:launchcoin', - 'sol:stik' = 'sol:stik', - 'sol:chill' = 'sol:chill', - 'sol:zbcn' = 'sol:zbcn', - 'sol:benji' = 'sol:benji', - 'sol:dupe' = 'sol:dupe', - 'sol:tank' = 'sol:tank', - 'sol:grift' = 'sol:grift', - 'sol:usdk' = 'sol:usdk', - 'sol:usdky' = 'sol:usdky', - 'sol:wave' = 'sol:wave', - 'sol:usdcv' = 'sol:usdcv', - 'sol:2z' = 'sol:2z', - 'sol:cloud' = 'sol:cloud', - 'sol:eliza' = 'sol:eliza', + 'sol:bome': 'sol:bome', + '3uejh-usdc': '3uejh-usdc', + 'avax-usdc': 'avax-usdc', + 'bop-usdc': 'bop-usdc', + 'sol:crown': 'sol:crown', + 'elu-usdt': 'elu-usdt', + 'fida-usdc': 'fida-usdc', + 'fida-usdt': 'fida-usdt', + 'ftt-ftt': 'ftt-ftt', + 'link-usdc': 'link-usdc', + 'lqid-usdc': 'lqid-usdc', + 'maticpo-usdc': 'maticpo-usdc', + 'msol-sol': 'msol-sol', + 'msol-usdc': 'msol-usdc', + 'prism-usdc': 'prism-usdc', + 'sol:pyth': 'sol:pyth', + 'rendoge-usdc': 'rendoge-usdc', + 'shdw-usdc': 'shdw-usdc', + 'sol-wtust': 'sol-wtust', + 'srm-usdc': 'srm-usdc', + 'srmet-srm': 'srmet-srm', + 'sushi-usdc': 'sushi-usdc', + tuatlas: 'tuatlas', + tucope: 'tucope', + tulike: 'tulike', + tureal: 'tureal', + tusamo: 'tusamo', + 'usdt-usdc': 'usdt-usdc', + 'wbwbnb-usdc': 'wbwbnb-usdc', + 'wheth-usdc': 'wheth-usdc', + 'wtust-usdt': 'wtust-usdt', + 'xcope-usdc': 'xcope-usdc', + 'xrp-sollet': 'xrp-sollet', + aury: 'aury', + dio: 'dio', + 'sol-perp': 'sol-perp', + 'sol-woo': 'sol-woo', + 'sol-weth': 'sol-weth', + 'btc-sollet': 'btc-sollet', + 'eth-sollet': 'eth-sollet', + 'sol:bonk': 'sol:bonk', + jto: 'jto', + 'sol:jto': 'sol:jto', + jup: 'jup', + 'sol:jup': 'sol:jup', + 'sol:honey': 'sol:honey', + mobile: 'mobile', + 'sol:mobile': 'sol:mobile', + wif: 'wif', + 'sol:wif': 'sol:wif', + natix: 'natix', + 'sol:natix': 'sol:natix', + 'sol:ks': 'sol:ks', + 'sol:apusdt': 'sol:apusdt', + 'sol:acusd': 'sol:acusd', + 'sol:solink': 'sol:solink', + 'sol:block': 'sol:block', + 'sol:render': 'sol:render', + 'sol:wen': 'sol:wen', + 'sol:mew': 'sol:mew', + 'sol:pyusd': 'sol:pyusd', + 'sol:moveusd': 'sol:moveusd', + 'sol:dxl': 'sol:dxl', + 'sol:mother': 'sol:mother', + 'sol:wrose': 'sol:wrose', + 'sol:atlas': 'sol:atlas', + 'sol:mdt': 'sol:mdt', + 'sol:io': 'sol:io', + 'sol:aave': 'sol:aave', + 'sol:ldo': 'sol:ldo', + 'sol:gt': 'sol:gt', + 'sol:popcat': 'sol:popcat', + 'sol:axs': 'sol:axs', + 'sol:sand': 'sol:sand', + 'sol:ens': 'sol:ens', + 'sol:enron': 'sol:enron', + 'sol:jitosol': 'sol:jitosol', + 'sol:zeus': 'sol:zeus', + 'sol:kmno': 'sol:kmno', + 'sol:giga': 'sol:giga', + 'sol:tnsr': 'sol:tnsr', + 'sol:ssol': 'sol:ssol', + 'sol:drift': 'sol:drift', + 'sol:spx': 'sol:spx', + 'sol:turbo': 'sol:turbo', + 'sol:fartcoin': 'sol:fartcoin', + 'sol:swarms': 'sol:swarms', + 'sol:nc': 'sol:nc', + 'sol:tai': 'sol:tai', + 'sol:pengu': 'sol:pengu', + 'sol:corn': 'sol:corn', + 'sol:yes': 'sol:yes', + 'sol:ai16z': 'sol:ai16z', + 'sol:pnut': 'sol:pnut', + 'sol:nyan': 'sol:nyan', + 'sol:virtual': 'sol:virtual', + 'sol:zerebro': 'sol:zerebro', + 'sol:arc': 'sol:arc', + 'sol:nos': 'sol:nos', + 'sol:jlp': 'sol:jlp', + 'sol:grass': 'sol:grass', + 'sol:trump': 'sol:trump', + 'sol:melania': 'sol:melania', + 'sol:ustry': 'sol:ustry', + 'sol:eurob': 'sol:eurob', + 'sol:tesouro': 'sol:tesouro', + 'sol:cetes': 'sol:cetes', + 'sol:gilts': 'sol:gilts', + 'sol:muskit': 'sol:muskit', + 'sol:matrix': 'sol:matrix', + 'sol:eurcv': 'sol:eurcv', + 'sol:layer': 'sol:layer', + 'sol:rock': 'sol:rock', + 'sol:dood': 'sol:dood', + 'sol:sb': 'sol:sb', + 'sol:dfdvsol': 'sol:dfdvsol', + 'sol:chillguy': 'sol:chillguy', + 'sol:moodeng': 'sol:moodeng', + 'sol:hsol': 'sol:hsol', + 'sol:grph': 'sol:grph', + 'sol:superbonds': 'sol:superbonds', + 'sol:would': 'sol:would', + 'sol:dog': 'sol:dog', + 'sol:saros': 'sol:saros', + 'sol:babydoge': 'sol:babydoge', + 'sol:useless': 'sol:useless', + 'sol:gohome': 'sol:gohome', + 'sol:aura': 'sol:aura', + 'sol:me': 'sol:me', + 'sol:alch': 'sol:alch', + 'sol:launchcoin': 'sol:launchcoin', + 'sol:stik': 'sol:stik', + 'sol:chill': 'sol:chill', + 'sol:zbcn': 'sol:zbcn', + 'sol:benji': 'sol:benji', + 'sol:dupe': 'sol:dupe', + 'sol:tank': 'sol:tank', + 'sol:grift': 'sol:grift', + 'sol:usdk': 'sol:usdk', + 'sol:usdky': 'sol:usdky', + 'sol:wave': 'sol:wave', + 'sol:usdcv': 'sol:usdcv', + 'sol:2z': 'sol:2z', + 'sol:cloud': 'sol:cloud', + 'sol:eliza': 'sol:eliza', // TRX tokens - 'trx:htx' = 'trx:htx', - 'trx:jst' = 'trx:jst', - 'trx:tusd' = 'trx:tusd', - 'trx:win' = 'trx:win', - 'trx:btt' = 'trx:btt', - 'trx:usdd' = 'trx:usdd', - 'trx:usdt' = 'trx:usdt', - 'trx:usd1' = 'trx:usd1', - 'trx:nft' = 'trx:nft', - 'trx:trxs' = 'trx:trxs', + 'trx:htx': 'trx:htx', + 'trx:jst': 'trx:jst', + 'trx:tusd': 'trx:tusd', + 'trx:win': 'trx:win', + 'trx:btt': 'trx:btt', + 'trx:usdd': 'trx:usdd', + 'trx:usdt': 'trx:usdt', + 'trx:usd1': 'trx:usd1', + 'trx:nft': 'trx:nft', + 'trx:trxs': 'trx:trxs', // TRX testnet tokens - 'ttrx:usdt' = 'ttrx:usdt', - 'ttrx:usd1' = 'ttrx:usd1', - 'ttrx:stgusd1' = 'ttrx:stgusd1', + 'ttrx:usdt': 'ttrx:usdt', + 'ttrx:usd1': 'ttrx:usd1', + 'ttrx:stgusd1': 'ttrx:stgusd1', // XRP tokens - 'txrp:tst-rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd' = 'txrp:tst-rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', - 'xrp:rlusd' = 'xrp:rlusd', - 'txrp:rlusd' = 'txrp:rlusd', - 'txrp:xat' = 'txrp:xat', - 'xrp:tbill' = 'xrp:tbill', - 'xrp:xsgd' = 'xrp:xsgd', - 'xrp:veur' = 'xrp:veur', - 'xrp:vchf' = 'xrp:vchf', - 'xrp:vgbp' = 'xrp:vgbp', - 'xrp:solo' = 'xrp:solo', - 'xrp:aau' = 'xrp:aau', - 'xrp:fiuaxrp' = 'xrp:fiuaxrp', + 'txrp:tst-rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd': 'txrp:tst-rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd', + 'xrp:rlusd': 'xrp:rlusd', + 'txrp:rlusd': 'txrp:rlusd', + 'txrp:xat': 'txrp:xat', + 'xrp:tbill': 'xrp:tbill', + 'xrp:xsgd': 'xrp:xsgd', + 'xrp:veur': 'xrp:veur', + 'xrp:vchf': 'xrp:vchf', + 'xrp:vgbp': 'xrp:vgbp', + 'xrp:solo': 'xrp:solo', + 'xrp:aau': 'xrp:aau', + 'xrp:fiuaxrp': 'xrp:fiuaxrp', // XRP testnet tokens - 'txrp:xsgd' = 'txrp:xsgd', + 'txrp:xsgd': 'txrp:xsgd', // Sui tokens - 'sui:deep' = 'sui:deep', - 'sui:suins' = 'sui:suins', - 'sui:fdusd' = 'sui:fdusd', - 'sui:usdc' = 'sui:usdc', - 'sui:wusdc' = 'sui:wusdc', - 'sui:sca' = 'sui:sca', - 'sui:times' = 'sui:times', - 'sui:fud' = 'sui:fud', - 'sui:afsui' = 'sui:afsui', - 'sui:navx' = 'sui:navx', - 'sui:vsui' = 'sui:vsui', - 'sui:send' = 'sui:send', - 'sui:cetus' = 'sui:cetus', - 'sui:wal' = 'sui:wal', - 'sui:xmn' = 'sui:xmn', + 'sui:deep': 'sui:deep', + 'sui:suins': 'sui:suins', + 'sui:fdusd': 'sui:fdusd', + 'sui:usdc': 'sui:usdc', + 'sui:wusdc': 'sui:wusdc', + 'sui:sca': 'sui:sca', + 'sui:times': 'sui:times', + 'sui:fud': 'sui:fud', + 'sui:afsui': 'sui:afsui', + 'sui:navx': 'sui:navx', + 'sui:vsui': 'sui:vsui', + 'sui:send': 'sui:send', + 'sui:cetus': 'sui:cetus', + 'sui:wal': 'sui:wal', + 'sui:xmn': 'sui:xmn', // Sui testnet tokens - 'tsui:deep' = 'tsui:deep', - 'tsui:wal' = 'tsui:wal', + 'tsui:deep': 'tsui:deep', + 'tsui:wal': 'tsui:wal', // Apt tokens - 'apt:usdt' = 'apt:usdt', - 'apt:usdc' = 'apt:usdc', - 'apt:pact' = 'apt:pact', - 'apt:benji' = 'apt:benji', - 'apt:lsd' = 'apt:lsd', + 'apt:usdt': 'apt:usdt', + 'apt:usdc': 'apt:usdc', + 'apt:pact': 'apt:pact', + 'apt:benji': 'apt:benji', + 'apt:lsd': 'apt:lsd', // Apt mainnet NFT collections - 'apt:h00ts' = 'apt:h00ts', + 'apt:h00ts': 'apt:h00ts', // Apt testnet tokens - 'tapt:usdt' = 'tapt:usdt', + 'tapt:usdt': 'tapt:usdt', // Apt testnet NFT collections - 'tapt:nftcollection1' = 'tapt:nftcollection1', - 'tapt:beta3loanbook' = 'tapt:beta3loanbook', + 'tapt:nftcollection1': 'tapt:nftcollection1', + 'tapt:beta3loanbook': 'tapt:beta3loanbook', // Sip10 tokens - 'stx:sbtc' = 'stx:sbtc', - 'stx:ststx' = 'stx:ststx', - 'stx:alex' = 'stx:alex', - 'stx:aeusdc' = 'stx:aeusdc', - 'stx:usdh' = 'stx:usdh', - 'stx:susdh' = 'stx:susdh', - 'stx:welsh' = 'stx:welsh', + 'stx:sbtc': 'stx:sbtc', + 'stx:ststx': 'stx:ststx', + 'stx:alex': 'stx:alex', + 'stx:aeusdc': 'stx:aeusdc', + 'stx:usdh': 'stx:usdh', + 'stx:susdh': 'stx:susdh', + 'stx:welsh': 'stx:welsh', // Sip10 testnet tokens - 'tstx:tsbtc' = 'tstx:tsbtc', - 'tstx:tsip6dp' = 'tstx:tsip6dp', - 'tstx:tsip8dp' = 'tstx:tsip8dp', + 'tstx:tsbtc': 'tstx:tsbtc', + 'tstx:tsip6dp': 'tstx:tsip6dp', + 'tstx:tsip8dp': 'tstx:tsip8dp', // TAO testnet tokens - 'ttao:apex' = 'ttao:apex', + 'ttao:apex': 'ttao:apex', // Polymesh testnet tokens - 'tpolyx:nvbitgot' = 'tpolyx:nvbitgot', + 'tpolyx:nvbitgot': 'tpolyx:nvbitgot', // Hbar tokens - 'hbar:karate' = 'hbar:karate', - 'hbar:sauce' = 'hbar:sauce', - 'hbar:dovu' = 'hbar:dovu', - 'hbar:pack' = 'hbar:pack', - 'hbar:jam' = 'hbar:jam', - 'hbar:berry' = 'hbar:berry', - 'hbar:bonzo' = 'hbar:bonzo', - 'hbar:co2e' = 'hbar:co2e', - 'hbar:hsuite' = 'hbar:hsuite', + 'hbar:karate': 'hbar:karate', + 'hbar:sauce': 'hbar:sauce', + 'hbar:dovu': 'hbar:dovu', + 'hbar:pack': 'hbar:pack', + 'hbar:jam': 'hbar:jam', + 'hbar:berry': 'hbar:berry', + 'hbar:bonzo': 'hbar:bonzo', + 'hbar:co2e': 'hbar:co2e', + 'hbar:hsuite': 'hbar:hsuite', // Hbar Testnet tokens - 'thbar:txsgd' = 'thbar:txsgd', + 'thbar:txsgd': 'thbar:txsgd', // Nep141 tokens - 'near:usdc' = 'near:usdc', - 'near:usdt' = 'near:usdt', + 'near:usdc': 'near:usdc', + 'near:usdt': 'near:usdt', // Nep141 testnet tokens - 'tnear:tnep24dp' = 'tnear:tnep24dp', - 'tnear:usdc' = 'tnear:usdc', + 'tnear:tnep24dp': 'tnear:tnep24dp', + 'tnear:usdc': 'tnear:usdc', // VET tokens - 'vet:vtho' = 'vet:vtho', + 'vet:vtho': 'vet:vtho', // VET testnet tokens - 'tvet:vtho' = 'tvet:vtho', + 'tvet:vtho': 'tvet:vtho', // Vet mainnet NFTs - 'vet:sdt' = 'vet:sdt', + 'vet:sdt': 'vet:sdt', // Vet testnet NFTs - 'tvet:sdt' = 'tvet:sdt', + 'tvet:sdt': 'tvet:sdt', // COSMOS tokens - 'hash:ylds' = 'hash:ylds', + 'hash:ylds': 'hash:ylds', // COSMOS testnet tokens - 'thash:ylds' = 'thash:ylds', - - 'eth:0x0' = 'eth:0x0', - 'eth:vvs' = 'eth:vvs', - 'eth:bmx' = 'eth:bmx', - 'eth:pro' = 'eth:pro', - 'eth:prime' = 'eth:prime', - 'eth:pokt' = 'eth:pokt', - 'eth:lon' = 'eth:lon', - 'eth:rlb' = 'eth:rlb', - 'eth:neiro2' = 'eth:neiro2', - 'eth:sign' = 'eth:sign', + 'thash:ylds': 'thash:ylds', + + 'eth:0x0': 'eth:0x0', + 'eth:vvs': 'eth:vvs', + 'eth:bmx': 'eth:bmx', + 'eth:pro': 'eth:pro', + 'eth:prime': 'eth:prime', + 'eth:pokt': 'eth:pokt', + 'eth:lon': 'eth:lon', + 'eth:rlb': 'eth:rlb', + 'eth:neiro2': 'eth:neiro2', + 'eth:sign': 'eth:sign', // fiats - AED = 'aed', - EUR = 'eur', - GBP = 'gbp', - SGD = 'sgd', - USD = 'usd', -} + AED: 'aed', + EUR: 'eur', + GBP: 'gbp', + SGD: 'sgd', + USD: 'usd', +} as const; + +export type UnderlyingAsset = (typeof UnderlyingAsset)[keyof typeof UnderlyingAsset]; /** * This is the curve BitGo signs against with the user, backup and BitGo key. */ -export enum KeyCurve { - Secp256k1 = 'secp256k1', - Ed25519 = 'ed25519', -} +export const KeyCurve = { + Secp256k1: 'secp256k1', + Ed25519: 'ed25519', +} as const; + +export type KeyCurve = (typeof KeyCurve)[keyof typeof KeyCurve]; /** * This enum contains the base units for the coins that BitGo supports */ -export enum BaseUnit { - ATOM = 'uatom', - APT = 'octa', - ETH = 'wei', - BABY = 'ubbn', - BTC = 'satoshi', - BSC = 'jager', - XLM = 'stroop', - TRX = 'sun', - HBAR = 'tinybar', - ALGO = 'microAlgo', - EOS = 'eos', // eos has no base unit. smallest amount in eos is 4 decimals - SOL = 'lamport', - ADA = 'lovelace', - USD = 'USD', - LNBTC = 'millisatoshi', - LTC = 'microlitecoins', - DASH = 'duff', - ZEC = 'zatoshi', - CSPR = 'mote', - DOT = 'planck', - XRP = 'drop', - XTZ = 'micro xtz', - STX = 'micro-STX', - SUI = 'MIST', - TON = 'nanoton', - NEAR = 'yocto', - OFC = 'ofcCoin', - OSMO = 'uosmo', - FIAT = 'fiatCoin', - TIA = 'utia', - HASH = 'nhash', - BLD = 'ubld', - SEI = 'usei', - INJECTIVE = 'inj', - ZETA = 'azeta', - KAVA = 'ukava', - COREUM = 'ucore', - TCOREUM = 'utestcore', // Coreum testnet uses different name for native coin - ISLM = 'aISLM', - RUNE = 'rune', - TAO = 'rao', - ICP = 'e8s', - MANTRA = 'uom', - POLYX = 'micropolyx', - CRONOS = 'basecro', - FETCHAI = 'afet', - INITIA = 'uinit', - ASI = 'afet', - VET = 'wei', - TCRONOS = 'basetcro', - TASI = 'atestfet', -} +export const BaseUnit = { + ATOM: 'uatom', + APT: 'octa', + ETH: 'wei', + BABY: 'ubbn', + BTC: 'satoshi', + BSC: 'jager', + XLM: 'stroop', + TRX: 'sun', + HBAR: 'tinybar', + ALGO: 'microAlgo', + EOS: 'eos', // eos has no base unit. smallest amount in eos is 4 decimals + SOL: 'lamport', + ADA: 'lovelace', + USD: 'USD', + LNBTC: 'millisatoshi', + LTC: 'microlitecoins', + DASH: 'duff', + ZEC: 'zatoshi', + CSPR: 'mote', + DOT: 'planck', + XRP: 'drop', + XTZ: 'micro xtz', + STX: 'micro-STX', + SUI: 'MIST', + TON: 'nanoton', + NEAR: 'yocto', + OFC: 'ofcCoin', + OSMO: 'uosmo', + FIAT: 'fiatCoin', + TIA: 'utia', + HASH: 'nhash', + BLD: 'ubld', + SEI: 'usei', + INJECTIVE: 'inj', + ZETA: 'azeta', + KAVA: 'ukava', + COREUM: 'ucore', + TCOREUM: 'utestcore', // Coreum testnet uses different name for native coin + ISLM: 'aISLM', + RUNE: 'rune', + TAO: 'rao', + ICP: 'e8s', + MANTRA: 'uom', + POLYX: 'micropolyx', + CRONOS: 'basecro', + FETCHAI: 'afet', + INITIA: 'uinit', + ASI: 'afet', + VET: 'wei', + TCRONOS: 'basetcro', + TASI: 'atestfet', +} as const; + +export type BaseUnit = (typeof BaseUnit)[keyof typeof BaseUnit]; export interface BaseCoinConstructorOptions { id: string; // uuid v4 diff --git a/modules/statics/src/coinFeatures.ts b/modules/statics/src/coinFeatures.ts index 654fa79b40..956fd292e7 100644 --- a/modules/statics/src/coinFeatures.ts +++ b/modules/statics/src/coinFeatures.ts @@ -1,7 +1,7 @@ import { CoinFeature } from './base'; import { Ada } from './ada'; -export const ACCOUNT_COIN_DEFAULT_FEATURES = [ +export const ACCOUNT_COIN_DEFAULT_FEATURES: CoinFeature[] = [ CoinFeature.ACCOUNT_MODEL, CoinFeature.REQUIRES_BIG_NUMBER, CoinFeature.VALUELESS_TRANSFER, @@ -17,21 +17,24 @@ export const ACCOUNT_COIN_DEFAULT_FEATURES = [ CoinFeature.CUSTODY_BITGO_INDIA, ]; -export const ACCOUNT_COIN_DEFAULT_FEATURES_EXCLUDE_SINGAPORE = ACCOUNT_COIN_DEFAULT_FEATURES.filter( +export const ACCOUNT_COIN_DEFAULT_FEATURES_EXCLUDE_SINGAPORE: CoinFeature[] = ACCOUNT_COIN_DEFAULT_FEATURES.filter( (feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE ); -export const ETH_FEATURES = [ +export const ETH_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.ENTERPRISE_PAYS_FEES, CoinFeature.WALLET_CONNECT_DEFI, CoinFeature.EVM_COIN, ]; -export const ETH_FEATURES_WITH_MMI = [...ETH_FEATURES, CoinFeature.METAMASK_INSTITUTIONAL]; -export const ETH_FEATURES_WITH_STAKING = [...ETH_FEATURES, CoinFeature.STAKING]; -export const ETH_FEATURES_WITH_STAKING_AND_MMI = [...ETH_FEATURES_WITH_STAKING, CoinFeature.METAMASK_INSTITUTIONAL]; -export const ETC_FEATURES = [ +export const ETH_FEATURES_WITH_MMI: CoinFeature[] = [...ETH_FEATURES, CoinFeature.METAMASK_INSTITUTIONAL]; +export const ETH_FEATURES_WITH_STAKING: CoinFeature[] = [...ETH_FEATURES, CoinFeature.STAKING]; +export const ETH_FEATURES_WITH_STAKING_AND_MMI: CoinFeature[] = [ + ...ETH_FEATURES_WITH_STAKING, + CoinFeature.METAMASK_INSTITUTIONAL, +]; +export const ETC_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BITGO_FRANKFURT, @@ -41,7 +44,7 @@ export const ETC_FEATURES = [ CoinFeature.STUCK_TRANSACTION_MANAGEMENT_ONCHAIN, CoinFeature.STUCK_TRANSACTION_MANAGEMENT_TSS, ]; -export const EVM_FEATURES = [ +export const EVM_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -51,7 +54,7 @@ export const EVM_FEATURES = [ CoinFeature.STUCK_TRANSACTION_MANAGEMENT_TSS, CoinFeature.EIP1559, ]; -export const AVAXC_FEATURES = [ +export const AVAXC_FEATURES: CoinFeature[] = [ ...ETH_FEATURES_WITH_MMI, CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BITGO_FRANKFURT, @@ -62,7 +65,7 @@ export const AVAXC_FEATURES = [ CoinFeature.EIP1559, CoinFeature.STAKING, ]; -export const CELO_FEATURES = [ +export const CELO_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, @@ -85,7 +88,7 @@ export const CELO_FEATURES = [ feature !== CoinFeature.DISTRIBUTED_CUSTODY ); -export const CELO_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES].filter( +export const CELO_TOKEN_FEATURES: CoinFeature[] = [...ACCOUNT_COIN_DEFAULT_FEATURES].filter( (feature) => feature !== CoinFeature.CUSTODY && feature !== CoinFeature.CUSTODY_BITGO_TRUST && @@ -98,7 +101,7 @@ export const CELO_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES].filter( feature !== CoinFeature.CUSTODY_BITGO_INDIA ); -export const RBTC_FEATURES = [ +export const RBTC_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, @@ -106,7 +109,7 @@ export const RBTC_FEATURES = [ CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.CUSTODY_BITGO_SINGAPORE, ]; -export const XLM_FEATURES = [ +export const XLM_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -116,7 +119,7 @@ export const XLM_FEATURES = [ CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, ]; -export const XTZ_FEATURES = [ +export const XTZ_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, @@ -131,7 +134,7 @@ export const XTZ_FEATURES = [ feature !== CoinFeature.CUSTODY_BITGO_FRANKFURT ); -export const XRP_FEATURES = [ +export const XRP_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -141,12 +144,12 @@ export const XRP_FEATURES = [ CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, ]; -export const POLYGON_TOKEN_FEATURES_WITH_FRANKFURT = [ +export const POLYGON_TOKEN_FEATURES_WITH_FRANKFURT: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.BULK_TRANSACTION, ]; -export const CSPR_FEATURES = [ +export const CSPR_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.REQUIRES_RESERVE, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -157,7 +160,7 @@ export const CSPR_FEATURES = [ CoinFeature.MULTISIG, CoinFeature.STAKING, ]; -export const ALGO_FEATURES = [ +export const ALGO_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_SWITZERLAND, @@ -168,15 +171,15 @@ export const ALGO_FEATURES = [ CoinFeature.MULTISIG, CoinFeature.BULK_TRANSACTION, ]; -export const HTETH_TOKEN_FEATURES = [ +export const HTETH_TOKEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION, CoinFeature.EIP1559, CoinFeature.WALLET_CONNECT_DEFI, ]; -export const ADA_FEATURES = [...Ada.DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; -export const ADA_FEATURES_WITH_FRANKFURT = [...ADA_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const DOT_FEATURES = [ +export const ADA_FEATURES: CoinFeature[] = [...Ada.DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; +export const ADA_FEATURES_WITH_FRANKFURT: CoinFeature[] = [...ADA_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; +export const DOT_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -185,7 +188,7 @@ export const DOT_FEATURES = [ CoinFeature.REBUILD_ON_CUSTODY_SIGNING, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const EOS_FEATURES = [ +export const EOS_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -194,7 +197,7 @@ export const EOS_FEATURES = [ CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, ]; -export const HBAR_FEATURES = [ +export const HBAR_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -205,7 +208,7 @@ export const HBAR_FEATURES = [ CoinFeature.BULK_TRANSACTION, CoinFeature.ALPHANUMERIC_MEMO_ID, ]; -export const POLYGON_FEATURES = [ +export const POLYGON_FEATURES: CoinFeature[] = [ ...ETH_FEATURES_WITH_MMI, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -220,12 +223,12 @@ export const POLYGON_FEATURES = [ CoinFeature.ERC20_BULK_TRANSACTION, ]; -export const POLYGON_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; -export const POLYGON_TOKEN_FEATURES_EXCLUDE_SINGAPORE = [ +export const POLYGON_TOKEN_FEATURES: CoinFeature[] = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; +export const POLYGON_TOKEN_FEATURES_EXCLUDE_SINGAPORE: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES_EXCLUDE_SINGAPORE, CoinFeature.BULK_TRANSACTION, ]; -export const POL_FEATURES = [ +export const POL_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.STAKING, CoinFeature.MULTISIG_COLD, @@ -234,7 +237,7 @@ export const POL_FEATURES = [ CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const SOL_FEATURES = [ +export const SOL_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -245,20 +248,32 @@ export const SOL_FEATURES = [ CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.BULK_TRANSACTION, ]; -export const TSOL_FEATURES = [...SOL_FEATURES, CoinFeature.BULK_TRANSACTION, CoinFeature.CUSTODY_BITGO_SINGAPORE]; -export const SOL_TOKEN_FEATURES = [ +export const TSOL_FEATURES: CoinFeature[] = [ + ...SOL_FEATURES, + CoinFeature.BULK_TRANSACTION, + CoinFeature.CUSTODY_BITGO_SINGAPORE, +]; +export const SOL_TOKEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, CoinFeature.BULK_TRANSACTION, ]; -export const SOL_TOKEN_FEATURES_EXCLUDE_SINGAPORE = SOL_TOKEN_FEATURES.filter( +export const SOL_TOKEN_FEATURES_EXCLUDE_SINGAPORE: CoinFeature[] = SOL_TOKEN_FEATURES.filter( (feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE ); -export const SOL_OFC_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD]; -export const APT_OFC_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD]; +export const SOL_OFC_TOKEN_FEATURES: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, + CoinFeature.TSS, + CoinFeature.TSS_COLD, +]; +export const APT_OFC_TOKEN_FEATURES: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, + CoinFeature.TSS, + CoinFeature.TSS_COLD, +]; -export const BSC_FEATURES = [ +export const BSC_FEATURES: CoinFeature[] = [ ...ETH_FEATURES_WITH_STAKING_AND_MMI, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -270,12 +285,12 @@ export const BSC_FEATURES = [ CoinFeature.BULK_TRANSACTION, CoinFeature.SHARED_EVM_MESSAGE_SIGNING, ]; -export const BSC_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; -export const BSC_TOKEN_FEATURES_EXCLUDE_SINGAPORE = [ +export const BSC_TOKEN_FEATURES: CoinFeature[] = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.BULK_TRANSACTION]; +export const BSC_TOKEN_FEATURES_EXCLUDE_SINGAPORE: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES_EXCLUDE_SINGAPORE, CoinFeature.BULK_TRANSACTION, ]; -export const STX_FEATURES = [ +export const STX_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BITGO_FRANKFURT, @@ -286,12 +301,12 @@ export const STX_FEATURES = [ CoinFeature.SUPPORTS_TOKENS, CoinFeature.ALPHANUMERIC_MEMO_ID, ]; -export const STX_TOKEN_FEATURES = [ +export const STX_TOKEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.ALPHANUMERIC_MEMO_ID, ]; -export const NEAR_FEATURES = [ +export const NEAR_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -300,13 +315,13 @@ export const NEAR_FEATURES = [ CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.SUPPORTS_TOKENS, ]; -export const NEAR_TOKEN_FEATURES = [ +export const NEAR_TOKEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, CoinFeature.REBUILD_ON_CUSTODY_SIGNING, ]; -export const MATIC_FEATURES = [ +export const MATIC_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.STAKING, CoinFeature.MULTISIG_COLD, @@ -314,9 +329,9 @@ export const MATIC_FEATURES = [ CoinFeature.CUSTODY_BITGO_SWITZERLAND, CoinFeature.CUSTODY_BITGO_SINGAPORE, ]; -export const MATIC_FEATURES_WITH_FRANKFURT = [...MATIC_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; +export const MATIC_FEATURES_WITH_FRANKFURT: CoinFeature[] = [...MATIC_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const WETH_FEATURES = [ +export const WETH_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.METAMASK_INSTITUTIONAL, @@ -324,8 +339,8 @@ export const WETH_FEATURES = [ CoinFeature.CUSTODY_BITGO_SINGAPORE, CoinFeature.LIQUID_STAKING, ]; -export const TWETH_FEATURES = [...WETH_FEATURES, CoinFeature.STAKING]; -export const EIGEN_FEATURES = [ +export const TWETH_FEATURES: CoinFeature[] = [...WETH_FEATURES, CoinFeature.STAKING]; +export const EIGEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.STAKING, CoinFeature.MULTISIG_COLD, @@ -334,7 +349,7 @@ export const EIGEN_FEATURES = [ CoinFeature.CUSTODY_BITGO_SINGAPORE, CoinFeature.LIQUID_STAKING, ]; -export const RETH_ROCKET_FEATURES = [ +export const RETH_ROCKET_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.STAKING, CoinFeature.MULTISIG_COLD, @@ -343,7 +358,7 @@ export const RETH_ROCKET_FEATURES = [ CoinFeature.CUSTODY_BITGO_SINGAPORE, CoinFeature.LIQUID_STAKING, ]; -export const SUI_FEATURES = [ +export const SUI_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -354,18 +369,18 @@ export const SUI_FEATURES = [ CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.CUSTODY_BULK_TRANSACTION, ]; -export const SUI_TOKEN_FEATURES = [ +export const SUI_TOKEN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, CoinFeature.BULK_TRANSACTION, ]; -export const SUI_TOKEN_FEATURES_STAKING = [ +export const SUI_TOKEN_FEATURES_STAKING: CoinFeature[] = [ ...SUI_TOKEN_FEATURES, CoinFeature.STAKING, CoinFeature.BULK_STAKING_TRANSACTION, ]; -export const TRX_FEATURES = [ +export const TRX_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.SUPPORTS_TOKENS, CoinFeature.CUSTODY_BITGO_GERMANY, @@ -375,7 +390,7 @@ export const TRX_FEATURES = [ CoinFeature.MULTISIG, CoinFeature.STAKING, ]; -export const COSMOS_SIDECHAIN_FEATURES = [ +export const COSMOS_SIDECHAIN_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -389,37 +404,52 @@ export const COSMOS_SIDECHAIN_FEATURES = [ CoinFeature.ALPHANUMERIC_MEMO_ID, CoinFeature.SUPPORTS_TOKENS, ]; -export const COSMOS_SIDECHAIN_FEATURES_WITH_STAKING = [ +export const COSMOS_SIDECHAIN_FEATURES_WITH_STAKING: CoinFeature[] = [ ...COSMOS_SIDECHAIN_FEATURES, CoinFeature.STAKING, CoinFeature.BULK_STAKING_TRANSACTION, ]; -export const COSMOS_TOKEN_FEATURES = [...COSMOS_SIDECHAIN_FEATURES]; -export const COSMOS_TOKEN_FEATURES_WITH_STAKING = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING]; -export const ATOM_FEATURES = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const INJECTIVE_FEATURES = [ +export const COSMOS_TOKEN_FEATURES: CoinFeature[] = [...COSMOS_SIDECHAIN_FEATURES]; +export const COSMOS_TOKEN_FEATURES_WITH_STAKING: CoinFeature[] = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING]; +export const ATOM_FEATURES: CoinFeature[] = [ + ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, + CoinFeature.CUSTODY_BITGO_FRANKFURT, +]; +export const INJECTIVE_FEATURES: CoinFeature[] = [ + ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, + CoinFeature.CUSTODY_BITGO_SWITZERLAND, + CoinFeature.CUSTODY_BITGO_FRANKFURT, +]; +export const COREUM_FEATURES: CoinFeature[] = [ + ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, + CoinFeature.CUSTODY_BITGO_FRANKFURT, +]; +export const SEI_FEATURES: CoinFeature[] = [ ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, + CoinFeature.CUSTODY_BITGO_FRANKFURT, +]; +export const TOKEN_FEATURES_WITH_SWISS: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_SWITZERLAND, +]; +export const TOKEN_FEATURES_WITH_FRANKFURT: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const COREUM_FEATURES = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const SEI_FEATURES = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const TOKEN_FEATURES_WITH_SWISS = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_SWITZERLAND]; -export const TOKEN_FEATURES_WITH_FRANKFURT = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const TOKEN_FEATURES_WITH_NY_GERMANY_FRANKFURT = [ +export const TOKEN_FEATURES_WITH_NY_GERMANY_FRANKFURT: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_NEW_YORK, CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const GENERIC_TOKEN_FEATURES = [ +export const GENERIC_TOKEN_FEATURES: CoinFeature[] = [ CoinFeature.ACCOUNT_MODEL, CoinFeature.REQUIRES_BIG_NUMBER, CoinFeature.VALUELESS_TRANSFER, CoinFeature.TRANSACTION_DATA, CoinFeature.GENERIC_TOKEN, ]; -export const TON_FEATURES = [ +export const TON_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -428,7 +458,7 @@ export const TON_FEATURES = [ CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.ALPHANUMERIC_MEMO_ID, ]; -export const ARBETH_FEATURES = [ +export const ARBETH_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -444,7 +474,7 @@ export const ARBETH_FEATURES = [ CoinFeature.BULK_TRANSACTION, CoinFeature.ERC20_BULK_TRANSACTION, ]; -export const OPETH_FEATURES = [ +export const OPETH_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -460,7 +490,7 @@ export const OPETH_FEATURES = [ CoinFeature.BULK_TRANSACTION, CoinFeature.ERC20_BULK_TRANSACTION, ]; -export const ZKETH_FEATURES = [ +export const ZKETH_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.MULTISIG_COLD, CoinFeature.MULTISIG, @@ -469,7 +499,7 @@ export const ZKETH_FEATURES = [ CoinFeature.ETH_ROLLUP_CHAIN, CoinFeature.EIP1559, ]; -export const BERA_FEATURES = [ +export const BERA_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -484,7 +514,7 @@ export const BERA_FEATURES = [ CoinFeature.CUSTODY_BITGO_GERMANY, CoinFeature.CUSTODY_BULK_TRANSACTION, ]; -export const OAS_FEATURES = [ +export const OAS_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -494,7 +524,7 @@ export const OAS_FEATURES = [ CoinFeature.STUCK_TRANSACTION_MANAGEMENT_TSS, CoinFeature.EIP1559, ]; -export const COREDAO_FEATURES = [ +export const COREDAO_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -507,7 +537,7 @@ export const COREDAO_FEATURES = [ CoinFeature.EIP1559, CoinFeature.ERC20_BULK_TRANSACTION, ]; -export const APECHAIN_FEATURES = [ +export const APECHAIN_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -517,7 +547,7 @@ export const APECHAIN_FEATURES = [ CoinFeature.STUCK_TRANSACTION_MANAGEMENT_TSS, CoinFeature.EIP1559, ]; -export const APT_FEATURES = [ +export const APT_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -528,7 +558,7 @@ export const APT_FEATURES = [ CoinFeature.TSS_ENTERPRISE_PAYS_FEES, ]; -export const ICP_FEATURES = [ +export const ICP_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -538,7 +568,7 @@ export const ICP_FEATURES = [ CoinFeature.REBUILD_ON_CUSTODY_SIGNING, ]; -export const TAO_FEATURES = [ +export const TAO_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -546,9 +576,13 @@ export const TAO_FEATURES = [ CoinFeature.SUPPORTS_TOKENS, ]; -export const TAO_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD]; +export const TAO_TOKEN_FEATURES: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, + CoinFeature.TSS, + CoinFeature.TSS_COLD, +]; -export const SONEIUM_FEATURES = [ +export const SONEIUM_FEATURES: CoinFeature[] = [ ...ETH_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -563,7 +597,7 @@ export const SONEIUM_FEATURES = [ CoinFeature.USES_NON_PACKED_ENCODING_FOR_TXDATA, ]; -export const POLYX_FEATURES = [ +export const POLYX_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -571,42 +605,52 @@ export const POLYX_FEATURES = [ CoinFeature.SUPPORTS_TOKENS, ]; -export const POLYX_TOKEN_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS]; +export const POLYX_TOKEN_FEATURES: CoinFeature[] = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS]; -export const ETH_FEATURES_WITH_FRANKFURT = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; -export const ETH_FEATURES_WITH_GERMANY = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_GERMANY]; -export const ETH_FEATURES_WITH_FRANKFURT_GERMANY = [...ETH_FEATURES_WITH_FRANKFURT, CoinFeature.CUSTODY_BITGO_GERMANY]; -export const SOL_TOKEN_FEATURES_WITH_FRANKFURT = [ +export const ETH_FEATURES_WITH_FRANKFURT: CoinFeature[] = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT]; +export const ETH_FEATURES_WITH_GERMANY: CoinFeature[] = [...ETH_FEATURES, CoinFeature.CUSTODY_BITGO_GERMANY]; +export const ETH_FEATURES_WITH_FRANKFURT_GERMANY: CoinFeature[] = [ + ...ETH_FEATURES_WITH_FRANKFURT, + CoinFeature.CUSTODY_BITGO_GERMANY, +]; +export const SOL_TOKEN_FEATURES_WITH_FRANKFURT: CoinFeature[] = [ ...SOL_TOKEN_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.BULK_TRANSACTION, ]; -export const SOL_TOKEN_FEATURES_WITH_FRANKFURT_GERMANY = [ +export const SOL_TOKEN_FEATURES_WITH_FRANKFURT_GERMANY: CoinFeature[] = [ ...SOL_TOKEN_FEATURES_WITH_FRANKFURT, CoinFeature.CUSTODY_BITGO_GERMANY, ]; -export const XLM_TOKEN_FEATURES_WITH_FRANKFURT = [ +export const XLM_TOKEN_FEATURES_WITH_FRANKFURT: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const ZETA_FEATURES = [...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_SINGAPORE]; -export const ZETA_EVM_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_SINGAPORE]; -export const ETH_FEATURES_WITH_FRANKFURT_EXCLUDE_SINGAPORE = ETH_FEATURES_WITH_FRANKFURT.filter( +export const ZETA_FEATURES: CoinFeature[] = [ + ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, + CoinFeature.CUSTODY_BITGO_SINGAPORE, +]; +export const ZETA_EVM_FEATURES: CoinFeature[] = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_SINGAPORE]; +export const ETH_FEATURES_WITH_FRANKFURT_EXCLUDE_SINGAPORE: CoinFeature[] = ETH_FEATURES_WITH_FRANKFURT.filter( (feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE ); -export const TIA_FEATURES = [ +export const TIA_FEATURES: CoinFeature[] = [ ...COSMOS_SIDECHAIN_FEATURES_WITH_STAKING, CoinFeature.CUSTODY_BITGO_SWITZERLAND, CoinFeature.CUSTODY_BITGO_FRANKFURT, ]; -export const WCT_FEATURES = [...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.STAKING, CoinFeature.WALLET_CONNECT_DEFI]; -export const BERA_BGT_FEATURES = [ +export const WCT_FEATURES: CoinFeature[] = [ + ...ACCOUNT_COIN_DEFAULT_FEATURES, + CoinFeature.STAKING, + CoinFeature.WALLET_CONNECT_DEFI, +]; +export const BERA_BGT_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.CUSTODY_BITGO_FRANKFURT, CoinFeature.CUSTODY_BITGO_GERMANY, ]; -export const VET_FEATURES = [ +export const VET_FEATURES: CoinFeature[] = [ ...ACCOUNT_COIN_DEFAULT_FEATURES, CoinFeature.TSS, CoinFeature.TSS_COLD, @@ -617,4 +661,6 @@ export const VET_FEATURES = [ CoinFeature.FEES_PAID_WITH_TOKEN, CoinFeature.MPCV2, ]; -export const VET_TOKEN_FEATURES = VET_FEATURES.filter((feature) => feature !== CoinFeature.SUPPORTS_TOKENS); +export const VET_TOKEN_FEATURES: CoinFeature[] = VET_FEATURES.filter( + (feature) => feature !== CoinFeature.SUPPORTS_TOKENS +); diff --git a/modules/statics/src/coins.ts b/modules/statics/src/coins.ts index a8c5d252c8..bd75c055c1 100644 --- a/modules/statics/src/coins.ts +++ b/modules/statics/src/coins.ts @@ -26,7 +26,7 @@ import { xrpToken, } from './account'; import { ofcToken } from './ofc'; -import { BaseCoin } from './base'; +import { BaseCoin, CoinFamily } from './base'; import { AmsTokenConfig, TrimmedAmsTokenConfig } from './tokenConfig'; import { CoinMap } from './map'; import { Networks } from './networks'; @@ -357,10 +357,10 @@ export function createTokenMapUsingTrimmedConfigDetails( !isCoinPresentInCoinMap({ ...tokenConfig }) && network && tokenConfig.isToken && - networkFeatureMapForTokens[network.family] + networkFeatureMapForTokens[network.family as CoinFamily] ) { const features = new Set([ - ...(networkFeatureMapForTokens[network.family] || []), + ...(networkFeatureMapForTokens[network.family as CoinFamily] || []), ...(tokenConfig.additionalFeatures || []), ]); tokenConfig.excludedFeatures?.forEach((feature) => features.delete(feature)); diff --git a/modules/statics/src/coins/erc20Coins.ts b/modules/statics/src/coins/erc20Coins.ts index d343bf83cf..230691c3b7 100644 --- a/modules/statics/src/coins/erc20Coins.ts +++ b/modules/statics/src/coins/erc20Coins.ts @@ -1300,12 +1300,14 @@ export const erc20Coins = [ UnderlyingAsset.CEL, ETH_FEATURES_WITH_FRANKFURT.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), erc20( 'a5dfdbdd-aff4-4a38-a798-37225afb2c8c', @@ -2557,12 +2559,14 @@ export const erc20Coins = [ UnderlyingAsset.FTT, ETH_FEATURES_WITH_FRANKFURT.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), erc20( 'd7c330ea-7767-4737-8701-cc50c605bab9', diff --git a/modules/statics/src/coins/polygonTokens.ts b/modules/statics/src/coins/polygonTokens.ts index cef87361d8..3831118af9 100644 --- a/modules/statics/src/coins/polygonTokens.ts +++ b/modules/statics/src/coins/polygonTokens.ts @@ -133,12 +133,14 @@ export const polygonTokens = [ UnderlyingAsset['polygon:cel'], POLYGON_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), polygonErc20( '95b52504-fb5c-44fa-8546-91384daa55f6', @@ -887,12 +889,14 @@ export const polygonTokens = [ UnderlyingAsset['polygon:wrx'], POLYGON_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), polygonErc20( '8c61bb88-f103-4d42-bf5e-26826d4b7712', diff --git a/modules/statics/src/coins/solTokens.ts b/modules/statics/src/coins/solTokens.ts index 1bafa4d3db..fd584a4d27 100644 --- a/modules/statics/src/coins/solTokens.ts +++ b/modules/statics/src/coins/solTokens.ts @@ -341,12 +341,14 @@ export const solTokens = [ UnderlyingAsset.FTT, SOL_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), solToken( 'bb248d80-4233-4c02-8a23-5a09fb9b986c', @@ -798,12 +800,14 @@ export const solTokens = [ UnderlyingAsset.CEL, SOL_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), solToken( '3e85d244-101d-4873-b957-d52e3843da94', @@ -1505,12 +1509,14 @@ export const solTokens = [ UnderlyingAsset.FTT, SOL_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), solToken( 'f194cd14-d0c2-443a-b717-e826143c7e33', @@ -1572,12 +1578,14 @@ export const solTokens = [ UnderlyingAsset.WFFT, SOL_TOKEN_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), solToken( '2e848aaf-b5ac-49b6-8bd2-eb8b56493ece', @@ -2329,7 +2337,7 @@ export const solTokens = [ 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn', 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn', UnderlyingAsset['sol:jitosol'], - SOL_TOKEN_FEATURES.filter((feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE) + SOL_TOKEN_FEATURES.filter((feature) => feature !== CoinFeature.CUSTODY_BITGO_SINGAPORE) as CoinFeature[] ), solToken( 'bd2130ca-c44f-4d7a-977b-62939a1f9fdb', @@ -2712,7 +2720,7 @@ export const solTokens = [ 'he1iusmfkpAdwvxLNGV8Y1iSbj4rUy6yMhEA3fotn9A', 'he1iusmfkpAdwvxLNGV8Y1iSbj4rUy6yMhEA3fotn9A', UnderlyingAsset['sol:hsol'], - SOL_TOKEN_FEATURES.filter((feature) => ![CoinFeature.CUSTODY_BITGO_SINGAPORE].includes(feature)) + SOL_TOKEN_FEATURES.filter((feature) => !([CoinFeature.CUSTODY_BITGO_SINGAPORE] as CoinFeature[]).includes(feature)) ), solToken( '247b9f70-2e4c-4f31-a944-bb5b59f1529a', diff --git a/modules/statics/src/ofc.ts b/modules/statics/src/ofc.ts index 7ac9ce831a..f252976f23 100644 --- a/modules/statics/src/ofc.ts +++ b/modules/statics/src/ofc.ts @@ -30,7 +30,7 @@ const getAllCoinsAndTokensMap = (): CoinMap => { return allCoinsAndTokensMap; }; -const DISALLOWED_FEATURES = [ +const DISALLOWED_FEATURES: CoinFeature[] = [ CoinFeature.UNSPENT_MODEL, CoinFeature.CHILD_PAYS_FOR_PARENT, CoinFeature.PAYGO, @@ -49,7 +49,7 @@ export function getFilteredFeatures(suffix: string): CoinFeature[] { if (coinsMap.has(suffix.toLowerCase())) { const filteredFeatures = coinsMap .get(suffix.toLowerCase()) - .features.filter((feature) => !DISALLOWED_FEATURES.includes(feature)); + .features.filter((feature) => !DISALLOWED_FEATURES.includes(feature)) as CoinFeature[]; return [...filteredFeatures, ...REQUIRED_FEATURES]; } return []; diff --git a/modules/statics/src/utxo.ts b/modules/statics/src/utxo.ts index e5cc68de89..6dabfa85a9 100644 --- a/modules/statics/src/utxo.ts +++ b/modules/statics/src/utxo.ts @@ -211,7 +211,7 @@ export const utxoCoins: Readonly[] = [ Networks.test.bitcoin, UnderlyingAsset.BTC, BaseUnit.BTC, - BTC_FEATURES.filter((f) => f !== CoinFeature.STAKING) + BTC_FEATURES.filter((f) => f !== CoinFeature.STAKING) as CoinFeature[] ), utxo( 'a0d53dc9-2dcc-4ebb-a2d4-51983fe20da6', @@ -256,7 +256,7 @@ export const utxoCoins: Readonly[] = [ Networks.test.bitcoinGold, UnderlyingAsset.BTG, BaseUnit.BTC, - BTG_FEATURES.filter((f) => f !== CoinFeature.MULTISIG_COLD) + BTG_FEATURES.filter((f) => f !== CoinFeature.MULTISIG_COLD) as CoinFeature[] ), utxo( '9c8097f1-5d2c-4a62-a94c-96c271c0e5e0', @@ -285,12 +285,14 @@ export const utxoCoins: Readonly[] = [ BaseUnit.DASH, DASH_FEATURES.filter( (feature) => - ![ - CoinFeature.CUSTODY_BITGO_SINGAPORE, - CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, - CoinFeature.CUSTODY_BITGO_MENA_FZE, - ].includes(feature) - ) + !( + [ + CoinFeature.CUSTODY_BITGO_SINGAPORE, + CoinFeature.CUSTODY_BITGO_CUSTODY_MENA_FZE, + CoinFeature.CUSTODY_BITGO_MENA_FZE, + ] as CoinFeature[] + ).includes(feature) + ) as CoinFeature[] ), utxo( '5950d78f-e8dd-457a-ab5d-310e6b476bb1', diff --git a/modules/statics/test/unit/base.ts b/modules/statics/test/unit/base.ts index 037fe8a1d3..2a35b1f809 100644 --- a/modules/statics/test/unit/base.ts +++ b/modules/statics/test/unit/base.ts @@ -1,5 +1,5 @@ const should = require('should'); -const { UnderlyingAsset } = require('../../src/base'); +import { UnderlyingAsset } from '../../src'; describe('UnderlyingAsset', function () { it('UnderlyingAsset values should be unique', function () { diff --git a/modules/statics/test/unit/deps.ts b/modules/statics/test/unit/deps.ts index 4ab001fa31..735c9da980 100644 --- a/modules/statics/test/unit/deps.ts +++ b/modules/statics/test/unit/deps.ts @@ -1,5 +1,8 @@ import 'should'; -import * as pkg from '../../package.json'; +import { readFileSync } from 'fs'; +import { resolve } from 'path'; + +const pkg = JSON.parse(readFileSync(resolve(__dirname, '../../package.json'), 'utf8')); describe('Dependency Policy', () => { it('should not have any run time dependencies', () => { diff --git a/modules/utxo-bin/test/bip32.util.ts b/modules/utxo-bin/test/bip32.util.ts index b76d3055cd..f6fc1f4044 100644 --- a/modules/utxo-bin/test/bip32.util.ts +++ b/modules/utxo-bin/test/bip32.util.ts @@ -1,7 +1,7 @@ import * as crypto from 'crypto'; import * as utxolib from '@bitgo/utxo-lib'; -import { BIP32Interface } from 'bip32'; +import type { BIP32Interface } from 'bip32'; export type Triple = [T, T, T]; diff --git a/modules/utxo-core/.mocharc.js b/modules/utxo-core/.mocharc.js index 5fc6096dae..fb83e982f3 100644 --- a/modules/utxo-core/.mocharc.js +++ b/modules/utxo-core/.mocharc.js @@ -1,6 +1,6 @@ 'use strict'; module.exports = { - require: 'ts-node/register', + require: 'tsx', extension: ['.js', '.ts'], }; diff --git a/modules/utxo-core/package.json b/modules/utxo-core/package.json index 725d809ba0..79c6a33c11 100644 --- a/modules/utxo-core/package.json +++ b/modules/utxo-core/package.json @@ -27,7 +27,7 @@ "lint": "eslint --quiet .", "prepare": "npm run build", "test": "npm run unit-test", - "unit-test": "mocha --recursive \"dist/test/**/*.js\"" + "unit-test": "mocha --recursive test/**/*.ts" }, "author": "BitGo SDK Team ", "license": "MIT", diff --git a/modules/utxo-lib/src/bitgo/wallet/WalletKeys.ts b/modules/utxo-lib/src/bitgo/wallet/WalletKeys.ts index 875750ab78..b1eb323fc9 100644 --- a/modules/utxo-lib/src/bitgo/wallet/WalletKeys.ts +++ b/modules/utxo-lib/src/bitgo/wallet/WalletKeys.ts @@ -26,10 +26,13 @@ export function eqPublicKey(a: BIP32Interface, b: BIP32Interface): boolean { export class WalletKeys { public readonly publicKeys: Triple; + public readonly triple: Triple; + /** * @param triple - bip32 key triple */ - constructor(public readonly triple: Triple) { + constructor(triple: Triple) { + this.triple = triple; triple.forEach((a, i) => { triple.forEach((b, j) => { if (eqPublicKey(a, b) && i !== j) { @@ -60,12 +63,17 @@ export class WalletKeys { * for derivation. */ export class DerivedWalletKeys extends WalletKeys { + public parent: RootWalletKeys; + public paths: Triple; + /** * @param parent - wallet keys to derive from * @param paths - paths to derive with */ - constructor(public parent: RootWalletKeys, public paths: Triple) { + constructor(parent: RootWalletKeys, paths: Triple) { super(parent.triple.map((k, i) => k.derivePath(paths[i])) as Triple); + this.parent = parent; + this.paths = paths; } } diff --git a/modules/utxo-lib/src/bitgo/wallet/WalletUnspentSigner.ts b/modules/utxo-lib/src/bitgo/wallet/WalletUnspentSigner.ts index 82e5cc4d9d..c16efb77f1 100644 --- a/modules/utxo-lib/src/bitgo/wallet/WalletUnspentSigner.ts +++ b/modules/utxo-lib/src/bitgo/wallet/WalletUnspentSigner.ts @@ -5,6 +5,8 @@ import { Triple } from '../types'; export class WalletUnspentSigner { public readonly walletKeys: T; + public signer: BIP32Interface; + public cosigner: BIP32Interface; static from( walletKeys: RootWalletKeys, @@ -17,11 +19,9 @@ export class WalletUnspentSigner { readonly signerIndex; readonly cosignerIndex; - constructor( - walletKeys: WalletKeys | Triple, - public signer: BIP32Interface, - public cosigner: BIP32Interface - ) { + constructor(walletKeys: WalletKeys | Triple, signer: BIP32Interface, cosigner: BIP32Interface) { + this.signer = signer; + this.cosigner = cosigner; if (Array.isArray(walletKeys)) { walletKeys = new RootWalletKeys(walletKeys); } diff --git a/modules/utxo-lib/src/bitgo/zcash/ZcashTransaction.ts b/modules/utxo-lib/src/bitgo/zcash/ZcashTransaction.ts index 0bfd277cba..f97f85698c 100644 --- a/modules/utxo-lib/src/bitgo/zcash/ZcashTransaction.ts +++ b/modules/utxo-lib/src/bitgo/zcash/ZcashTransaction.ts @@ -104,9 +104,11 @@ export class ZcashTransaction extends // Block height after which this transactions will expire, or 0 to disable expiry expiryHeight = 0; consensusBranchId: number; + public network: ZcashNetwork; - constructor(public network: ZcashNetwork, tx?: ZcashTransaction, amountType?: 'bigint' | 'number') { + constructor(network: ZcashNetwork, tx?: ZcashTransaction, amountType?: 'bigint' | 'number') { super(network, tx, amountType); + this.network = network; let consensusBranchId; if (tx) { diff --git a/modules/utxo-lib/src/taproot.ts b/modules/utxo-lib/src/taproot.ts index 7d6de52249..4bbfe9a992 100644 --- a/modules/utxo-lib/src/taproot.ts +++ b/modules/utxo-lib/src/taproot.ts @@ -3,10 +3,10 @@ // https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki import { TapTree as PsbtTapTree, TapLeaf as PsbtTapLeaf } from 'bip174/src/lib/interfaces'; -import assert = require('assert'); -import FastPriorityQueue = require('fastpriorityqueue'); +import * as assert from 'assert'; import { script as bscript, crypto as bcrypto, payments as bpayments } from 'bitcoinjs-lib'; import { ecc as eccLib } from './noble_ecc'; +const FastPriorityQueue = require('fastpriorityqueue'); const varuint = require('varuint-bitcoin'); /** @@ -239,7 +239,7 @@ export function getHuffmanTaptree(scripts: Buffer[], weights: Array((a, b): boolean => { + const queue = new FastPriorityQueue((a: WeightedTapScript, b: WeightedTapScript): boolean => { return a.weight < b.weight; }); scripts.forEach((script, index) => { diff --git a/modules/utxo-lib/src/transaction_builder.ts b/modules/utxo-lib/src/transaction_builder.ts index 1cf67d601f..cfb783226c 100644 --- a/modules/utxo-lib/src/transaction_builder.ts +++ b/modules/utxo-lib/src/transaction_builder.ts @@ -160,10 +160,14 @@ export class TransactionBuilder { private __INPUTS: Array>; private __TX: Transaction; private __USE_LOW_R: boolean; + public network: Network; + public maximumFeeRate: number; // WARNING: maximumFeeRate is __NOT__ to be relied on, // it's just another potential safety mechanism (safety in-depth) - constructor(public network: Network = networks.bitcoin, public maximumFeeRate: number = 2500) { + constructor(network: Network = networks.bitcoin, maximumFeeRate = 2500) { + this.network = network; + this.maximumFeeRate = maximumFeeRate; this.__PREV_TX_SET = {}; this.__INPUTS = []; this.__TX = new Transaction(); diff --git a/modules/utxo-lib/test/bitgo/Unspent.ts b/modules/utxo-lib/test/bitgo/Unspent.ts index 72ad86becd..6adcab93a1 100644 --- a/modules/utxo-lib/test/bitgo/Unspent.ts +++ b/modules/utxo-lib/test/bitgo/Unspent.ts @@ -1,4 +1,4 @@ -import assert = require('assert'); +import * as assert from 'assert'; import { unspentSum } from '../../src/bitgo'; function mockUnspent(value: TNumber) { diff --git a/modules/utxo-lib/test/integration_local_rpc/generate/RpcClient.ts b/modules/utxo-lib/test/integration_local_rpc/generate/RpcClient.ts index 392311516a..0337fb81f4 100644 --- a/modules/utxo-lib/test/integration_local_rpc/generate/RpcClient.ts +++ b/modules/utxo-lib/test/integration_local_rpc/generate/RpcClient.ts @@ -16,8 +16,11 @@ function sleep(millis: number): Promise { } export class RpcError extends Error { - constructor(public rpcError: { code: number; message: string }) { + public rpcError: { code: number; message: string }; + + constructor(rpcError: { code: number; message: string }) { super(`RPC error: ${rpcError.message} (code=${rpcError.code})`); + this.rpcError = rpcError; } static isRpcErrorWithCode(e: Error, code: number): boolean { @@ -31,8 +34,15 @@ const BITCOIN_CORE_22_99 = '/Satoshi:22.99.0/'; export class RpcClient { id = 0; + protected network: Network; + protected url: string; + protected networkInfo?: NetworkInfo; - constructor(protected network: Network, protected url: string, protected networkInfo?: NetworkInfo) {} + constructor(network: Network, url: string, networkInfo?: NetworkInfo) { + this.network = network; + this.url = url; + this.networkInfo = networkInfo; + } /** * Poor man's Bluebird.map(arr, f, { concurrency }) @@ -198,8 +208,11 @@ export class RpcClient { } export class RpcClientWithWallet extends RpcClient { - constructor(network: Network, url: string, networkInfo: NetworkInfo, private walletName?: string) { + private walletName?: string; + + constructor(network: Network, url: string, networkInfo: NetworkInfo, walletName?: string) { super(network, url, networkInfo); + this.walletName = walletName; } protected getUrl(): string { diff --git a/modules/utxo-staking/.mocharc.js b/modules/utxo-staking/.mocharc.js index bfd6eea0c4..fb83e982f3 100644 --- a/modules/utxo-staking/.mocharc.js +++ b/modules/utxo-staking/.mocharc.js @@ -1,4 +1,6 @@ +'use strict'; + module.exports = { - require: 'ts-node/register', + require: 'tsx', extension: ['.js', '.ts'], }; diff --git a/modules/utxo-staking/package.json b/modules/utxo-staking/package.json index 6f8acf535e..a27fe252ff 100644 --- a/modules/utxo-staking/package.json +++ b/modules/utxo-staking/package.json @@ -15,7 +15,7 @@ "lint": "eslint --quiet .", "prepare": "npm run build", "coverage": "nyc -- npm run unit-test", - "unit-test": "mocha --recursive \"dist/test/**/*.js\"" + "unit-test": "mocha --recursive test/" }, "author": "BitGo SDK Team ", "license": "MIT", diff --git a/modules/utxo-staking/test/unit/babylon/bug71.ts b/modules/utxo-staking/test/unit/babylon/bug71.ts index bdfc9fcf98..622868cfd3 100644 --- a/modules/utxo-staking/test/unit/babylon/bug71.ts +++ b/modules/utxo-staking/test/unit/babylon/bug71.ts @@ -10,7 +10,7 @@ describe('btc-staking-ts bug #71', function () { let buf: Buffer; before('load half-signed transaction', async function () { const fixture = JSON.parse( - await fs.promises.readFile(__dirname + '/../../../../test/fixtures/babylon/txTree.testnet.json', 'utf-8') + await fs.promises.readFile(__dirname + '/../../fixtures/babylon/txTree.testnet.json', 'utf-8') ); const base64 = fixture.slashingSignedBase64; assert(typeof base64 === 'string'); diff --git a/modules/utxo-staking/test/unit/babylon/undelegation.ts b/modules/utxo-staking/test/unit/babylon/undelegation.ts index 7a1f321dca..47e3b21d27 100644 --- a/modules/utxo-staking/test/unit/babylon/undelegation.ts +++ b/modules/utxo-staking/test/unit/babylon/undelegation.ts @@ -28,7 +28,7 @@ type BtcDelegation = t.TypeOf; async function getFixture(txid: string): Promise { // As returned by https://babylon.nodes.guru/api#/Query/BTCDelegation const BtcDelegationResponse = t.type({ btc_delegation: BtcDelegation }, 'BtcDelegationResponse'); - const filename = __dirname + `/../../../../test/fixtures/babylon/rpc/btc_delegation/testnet.${txid}.json`; + const filename = __dirname + `/../../fixtures/babylon/rpc/btc_delegation/testnet.${txid}.json`; const data = JSON.parse(await fs.readFile(filename, 'utf8')); const result = BtcDelegationResponse.decode(data); if (isLeft(result)) { diff --git a/package.json b/package.json index e10113500b..f7942f3980 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "stream-http": "^3.2.0", "terser-webpack-plugin": "^5.3.3", "ts-node": "10.8.0", + "tsx": "^4.20.4", "typescript": "5.7.2", "typescript-cached-transpile": "^0.0.6", "url": "^0.11.0", @@ -139,4 +140,4 @@ "tmp": "^0.2.3" }, "packageManager": "yarn@1.22.22" -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index b19d64bc5b..933e2fa226 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1766,116 +1766,246 @@ resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== +"@esbuild/aix-ppc64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz#bef96351f16520055c947aba28802eede3c9e9a9" + integrity sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA== + "@esbuild/android-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== +"@esbuild/android-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz#d2e70be7d51a529425422091e0dcb90374c1546c" + integrity sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg== + "@esbuild/android-arm@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== +"@esbuild/android-arm@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz#d2a753fe2a4c73b79437d0ba1480e2d760097419" + integrity sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ== + "@esbuild/android-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== +"@esbuild/android-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz#5278836e3c7ae75761626962f902a0d55352e683" + integrity sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw== + "@esbuild/darwin-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== +"@esbuild/darwin-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz#f1513eaf9ec8fa15dcaf4c341b0f005d3e8b47ae" + integrity sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg== + "@esbuild/darwin-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== +"@esbuild/darwin-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz#e27dbc3b507b3a1cea3b9280a04b8b6b725f82be" + integrity sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ== + "@esbuild/freebsd-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== +"@esbuild/freebsd-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz#364e3e5b7a1fd45d92be08c6cc5d890ca75908ca" + integrity sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q== + "@esbuild/freebsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== +"@esbuild/freebsd-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz#7c869b45faeb3df668e19ace07335a0711ec56ab" + integrity sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg== + "@esbuild/linux-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== +"@esbuild/linux-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz#48d42861758c940b61abea43ba9a29b186d6cb8b" + integrity sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw== + "@esbuild/linux-arm@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== +"@esbuild/linux-arm@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz#6ce4b9cabf148274101701d112b89dc67cc52f37" + integrity sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw== + "@esbuild/linux-ia32@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== +"@esbuild/linux-ia32@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz#207e54899b79cac9c26c323fc1caa32e3143f1c4" + integrity sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A== + "@esbuild/linux-loong64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== +"@esbuild/linux-loong64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz#0ba48a127159a8f6abb5827f21198b999ffd1fc0" + integrity sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ== + "@esbuild/linux-mips64el@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== +"@esbuild/linux-mips64el@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz#a4d4cc693d185f66a6afde94f772b38ce5d64eb5" + integrity sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA== + "@esbuild/linux-ppc64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== +"@esbuild/linux-ppc64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz#0f5805c1c6d6435a1dafdc043cb07a19050357db" + integrity sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w== + "@esbuild/linux-riscv64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== +"@esbuild/linux-riscv64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz#6776edece0f8fca79f3386398b5183ff2a827547" + integrity sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg== + "@esbuild/linux-s390x@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== +"@esbuild/linux-s390x@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz#3f6f29ef036938447c2218d309dc875225861830" + integrity sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA== + "@esbuild/linux-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== +"@esbuild/linux-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz#831fe0b0e1a80a8b8391224ea2377d5520e1527f" + integrity sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg== + +"@esbuild/netbsd-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz#06f99d7eebe035fbbe43de01c9d7e98d2a0aa548" + integrity sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q== + "@esbuild/netbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== +"@esbuild/netbsd-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz#db99858e6bed6e73911f92a88e4edd3a8c429a52" + integrity sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g== + +"@esbuild/openbsd-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz#afb886c867e36f9d86bb21e878e1185f5d5a0935" + integrity sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ== + "@esbuild/openbsd-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== +"@esbuild/openbsd-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz#30855c9f8381fac6a0ef5b5f31ac6e7108a66ecf" + integrity sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA== + +"@esbuild/openharmony-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz#2f2144af31e67adc2a8e3705c20c2bd97bd88314" + integrity sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg== + "@esbuild/sunos-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== +"@esbuild/sunos-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz#69b99a9b5bd226c9eb9c6a73f990fddd497d732e" + integrity sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw== + "@esbuild/win32-arm64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== +"@esbuild/win32-arm64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz#d789330a712af916c88325f4ffe465f885719c6b" + integrity sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ== + "@esbuild/win32-ia32@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== +"@esbuild/win32-ia32@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz#52fc735406bd49688253e74e4e837ac2ba0789e3" + integrity sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww== + "@esbuild/win32-x64@0.20.2": version "0.20.2" resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== +"@esbuild/win32-x64@0.25.9": + version "0.25.9" + resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz#585624dc829cfb6e7c0aa6c3ca7d7e6daa87e34f" + integrity sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ== + "@eslint/eslintrc@^0.4.3": version "0.4.3" resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" @@ -10757,6 +10887,38 @@ esbuild@^0.20.2: "@esbuild/win32-ia32" "0.20.2" "@esbuild/win32-x64" "0.20.2" +esbuild@~0.25.0: + version "0.25.9" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz#15ab8e39ae6cdc64c24ff8a2c0aef5b3fd9fa976" + integrity sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g== + optionalDependencies: + "@esbuild/aix-ppc64" "0.25.9" + "@esbuild/android-arm" "0.25.9" + "@esbuild/android-arm64" "0.25.9" + "@esbuild/android-x64" "0.25.9" + "@esbuild/darwin-arm64" "0.25.9" + "@esbuild/darwin-x64" "0.25.9" + "@esbuild/freebsd-arm64" "0.25.9" + "@esbuild/freebsd-x64" "0.25.9" + "@esbuild/linux-arm" "0.25.9" + "@esbuild/linux-arm64" "0.25.9" + "@esbuild/linux-ia32" "0.25.9" + "@esbuild/linux-loong64" "0.25.9" + "@esbuild/linux-mips64el" "0.25.9" + "@esbuild/linux-ppc64" "0.25.9" + "@esbuild/linux-riscv64" "0.25.9" + "@esbuild/linux-s390x" "0.25.9" + "@esbuild/linux-x64" "0.25.9" + "@esbuild/netbsd-arm64" "0.25.9" + "@esbuild/netbsd-x64" "0.25.9" + "@esbuild/openbsd-arm64" "0.25.9" + "@esbuild/openbsd-x64" "0.25.9" + "@esbuild/openharmony-arm64" "0.25.9" + "@esbuild/sunos-x64" "0.25.9" + "@esbuild/win32-arm64" "0.25.9" + "@esbuild/win32-ia32" "0.25.9" + "@esbuild/win32-x64" "0.25.9" + escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" @@ -12021,7 +12183,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@~2.3.2: +fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -12178,6 +12340,13 @@ get-symbol-description@^1.1.0: es-errors "^1.3.0" get-intrinsic "^1.2.6" +get-tsconfig@^4.7.5: + version "4.10.1" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz#d34c1c01f47d65a606c37aa7a177bc3e56ab4b2e" + integrity sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ== + dependencies: + resolve-pkg-maps "^1.0.0" + get-uri@^6.0.1: version "6.0.4" resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz#6daaee9e12f9759e19e55ba313956883ef50e0a7" @@ -18327,6 +18496,11 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + resolve@1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -20346,6 +20520,16 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tsx@^4.20.4: + version "4.20.4" + resolved "https://registry.npmjs.org/tsx/-/tsx-4.20.4.tgz#3fcf255dbc8826bdde2820f1cff47e31075c1d30" + integrity sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg== + dependencies: + esbuild "~0.25.0" + get-tsconfig "^4.7.5" + optionalDependencies: + fsevents "~2.3.3" + tty-browserify@^0.0.1, tty-browserify@~0.0.0: version "0.0.1" resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"