From 17c41080de40d4f5f478975a9259fee9fa784133 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 15:48:36 -0400 Subject: [PATCH 01/18] fix(utxo-lib): resolve Node.js 22.x strip-only mode compatibility issues - Replace TypeScript import equals syntax with standard ES6 imports - Convert parameter property constructors to standard syntax - Fix fastpriorityqueue import for CommonJS compatibility Resolves CI failures when Node.js 22.x automatically enables experimental TypeScript support and encounters unsupported syntax patterns. Please enter the commit message for your changes. Lines starting TICKET: WP-5599 --- .../utxo-lib/src/bitgo/wallet/WalletKeys.ts | 12 ++++++++++-- .../src/bitgo/wallet/WalletUnspentSigner.ts | 10 +++++----- .../src/bitgo/zcash/ZcashTransaction.ts | 4 +++- modules/utxo-lib/src/taproot.ts | 6 +++--- modules/utxo-lib/src/transaction_builder.ts | 6 +++++- modules/utxo-lib/test/bitgo/Unspent.ts | 2 +- .../generate/RpcClient.ts | 19 ++++++++++++++++--- 7 files changed, 43 insertions(+), 16 deletions(-) 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 { From 8ba2433174ef6a3f0b5e3afd75e65643a90ee814 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 17:40:24 -0400 Subject: [PATCH 02/18] test(statics): migrate test runner from ts-node to tsx - Replace ts-node with tsx in mocharc configuration for better Node.js 22.x compatibility - Fix JSON import in deps test to work with module resolution - Add tsx as dev dependency TICKET: WP-5599 --- modules/statics/.mocharc.js | 2 +- package.json | 3 +- yarn.lock | 186 +++++++++++++++++++++++++++++++++++- 3 files changed, 188 insertions(+), 3 deletions(-) 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/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" From 4d825f5630412710445168dcb431f3d8cfec18a5 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 17:44:40 -0400 Subject: [PATCH 03/18] feat(statics): convert enums to const objects - Convert CoinKind, CoinFamily, CoinFeature, and UnderlyingAsset from enums to const objects - Add explicit type casts for array operations to maintain type safety - Update all enum references to use const object pattern - Required for node 22 strip-only mode BREAKING CHANGE: CoinKind, CoinFamily, CoinFeature, and UnderlyingAsset are no longer TypeScript enums. They are now const objects with corresponding type definitions. This requires consumers to update their imports if they were using these as enum types. TICKET: WP-5599 --- modules/statics/src/allCoinsAndTokens.ts | 38 +- modules/statics/src/base.ts | 5315 ++++++++++---------- modules/statics/src/coinFeatures.ts | 230 +- modules/statics/src/coins.ts | 6 +- modules/statics/src/coins/erc20Coins.ts | 28 +- modules/statics/src/coins/polygonTokens.ts | 28 +- modules/statics/src/coins/solTokens.ts | 60 +- modules/statics/src/ofc.ts | 4 +- modules/statics/src/utxo.ts | 18 +- modules/statics/test/unit/base.ts | 2 +- modules/statics/test/unit/deps.ts | 5 +- 11 files changed, 2920 insertions(+), 2814 deletions(-) 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', () => { From afcfc8d00ea1d85a3b3834bec89f632adc73f9c3 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 17:56:45 -0400 Subject: [PATCH 04/18] fix(utxo-bin): use type-only import for BIP32Interface TICKET: WP-5599 --- modules/utxo-bin/test/bip32.util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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]; From 2834b982d042192c5946457bea4276016070acb6 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:01:29 -0400 Subject: [PATCH 05/18] chore(root): update nvmrc to node 22.18.0 TICKET: WP-5599 --- .nvmrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nvmrc b/.nvmrc index 5b540673a8..32cfab6364 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.16.0 +v22.18.0 From 158dd9c2a62395b6962b642cf3ae039d0ce8e3c1 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:18:25 -0400 Subject: [PATCH 06/18] chore(utxo-core): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/utxo-core/.mocharc.js | 2 +- modules/utxo-core/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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", From befd84e9aeab6bdf00bf23ed0fccfcba84215e71 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:19:06 -0400 Subject: [PATCH 07/18] chore(utxo-staking): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/utxo-staking/.mocharc.js | 4 +++- modules/utxo-staking/package.json | 2 +- modules/utxo-staking/test/unit/babylon/bug71.ts | 2 +- modules/utxo-staking/test/unit/babylon/undelegation.ts | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) 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)) { From 8a67f4d71b6164a0164761bbf2a2319381d755be Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:20:31 -0400 Subject: [PATCH 08/18] chore(sdk-core): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-core/.mocharc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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'], From a433fc12d2b311d63a7f908c4c297b11e9d05962 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:32:23 -0400 Subject: [PATCH 09/18] chore(sdk-coin-ada): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-ada/.mocharc.yml | 2 +- modules/sdk-coin-ada/test/unit/ada.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) 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'; From 60f94500998c9d32c5fc1560f0b4150be7dc4502 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:45:21 -0400 Subject: [PATCH 10/18] chore(abstract-eth): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/abstract-eth/.mocharc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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'], From d99016424370acf2d1eae1ce77c26cc031dcae6f Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:48:50 -0400 Subject: [PATCH 11/18] chore(sdk-coin-baby): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-baby/.mocharc.yml | 2 +- modules/sdk-coin-baby/test/unit/baby.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 () { From f604d70aa5a8d15ffe2308b1f5ef411b2c27ddb5 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:52:40 -0400 Subject: [PATCH 12/18] chore(sdk-coin-asi): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-asi/.mocharc.yml | 2 +- modules/sdk-coin-asi/test/unit/asi.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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'; From 3fde6dda24196dcbe3186d5ac6d0b31e5fbfab68 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:55:08 -0400 Subject: [PATCH 13/18] chore(sdk-coin-atom): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-atom/.mocharc.yml | 2 +- modules/sdk-coin-atom/test/unit/atom.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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; From 0052856ddde35a2ad46b1df990ac405719dabb66 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:56:26 -0400 Subject: [PATCH 14/18] chore(sdk-coin-dot): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-dot/.mocharc.yml | 2 +- modules/sdk-coin-dot/test/unit/dot.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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'; From d1af840506867cb626b5573669180215211aecec Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 18:58:06 -0400 Subject: [PATCH 15/18] chore(sdk-coin-bld): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-bld/.mocharc.yml | 2 +- modules/sdk-coin-bld/test/unit/bld.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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; From 990eecf8589c0f469f4e403ebe1c7d5644a899c6 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 19:00:00 -0400 Subject: [PATCH 16/18] chore(sdk-coin-sei): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-sei/.mocharc.yml | 2 +- modules/sdk-coin-sei/test/unit/sei.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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; From 5976b60799f3af295211979d3bfb2dd83fb582fb Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 19:01:22 -0400 Subject: [PATCH 17/18] chore(sdk-coin-coreum): migrate test runner from ts-node to tsx TICKET: WP-5599 --- modules/sdk-coin-coreum/.mocharc.yml | 2 +- modules/sdk-coin-coreum/test/unit/coreum.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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; From a498aa373e9e6e9bea0901b88d06fa46f9a38984 Mon Sep 17 00:00:00 2001 From: Zahin Mohammad Date: Wed, 20 Aug 2025 19:03:56 -0400 Subject: [PATCH 18/18] chore(root): remove import = syntax for es imports TICKET: WP-5599 --- modules/express/encryptedPrivKeys.json | 2 +- modules/sdk-coin-cronos/test/unit/cronos.ts | 2 +- modules/sdk-coin-hash/test/unit/hash.ts | 2 +- modules/sdk-coin-initia/test/unit/initia.ts | 2 +- modules/sdk-coin-injective/test/unit/injective.ts | 4 ++-- modules/sdk-coin-islm/test/unit/islm.ts | 2 +- modules/sdk-coin-mantra/test/unit/mantra.ts | 2 +- modules/sdk-coin-osmo/test/unit/osmo.ts | 2 +- modules/sdk-coin-rune/test/unit/rune.ts | 2 +- modules/sdk-coin-tia/test/unit/tia.ts | 4 ++-- modules/sdk-coin-zeta/.mocharc.yml | 2 +- modules/sdk-coin-zeta/test/unit/zeta.ts | 4 ++-- 12 files changed, 15 insertions(+), 15 deletions(-) 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-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-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-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;