UNPKG

butterjs-sdk

Version:
97 lines (96 loc) 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ID_TO_ALL_TOKEN = exports.ID_TO_SUPPORTED_TOKEN = exports.getTokenByAddressAndChainId = void 0; const constants_1 = require("../constants"); const addressUtil_1 = require("./addressUtil"); /** * get token entity from address and chain id * @param tokenAddress * @param chainId */ function getTokenByAddressAndChainId(tokenAddress, chainId) { const allToken = (0, exports.ID_TO_ALL_TOKEN)(chainId); for (let i = 0; i < allToken.length; i++) { if ((0, addressUtil_1.getHexAddress)(allToken[i].address, chainId, false).toLowerCase() === tokenAddress.toLowerCase()) { return allToken[i]; } } throw new Error(`Internal Error: could not find token ${tokenAddress} on chain: ${chainId}`); } exports.getTokenByAddressAndChainId = getTokenByAddressAndChainId; /** Chain Id to supported tokens */ const ID_TO_SUPPORTED_TOKEN = (id) => { switch (id) { case constants_1.ChainId.MAP_MAINNET: return []; case constants_1.ChainId.BSC_MAINNET: return [constants_1.BSC_MAINNET_USDC]; case constants_1.ChainId.POLYGON_MAINNET: return [constants_1.POLYGON_MAINNET_USDC]; case constants_1.ChainId.NEAR_MAINNET: return [constants_1.NEAR_MAINNET_USDC]; case constants_1.ChainId.MAP_TEST: return [constants_1.MAP_TEST_USDC]; case constants_1.ChainId.ETH_GOERLI: return [constants_1.ETH_GOERLI_NATIVE, constants_1.ETH_GOERLI_USDC]; case constants_1.ChainId.ETH_PRIV: return []; case constants_1.ChainId.NEAR_TESTNET: return [constants_1.NEAR_TEST_USDC, constants_1.NEAR_TEST_NATIVE]; case constants_1.ChainId.BSC_TEST: return [constants_1.BSC_TEST_USDC, constants_1.BSC_TEST_BMOS, constants_1.BSC_TEST_NATIVE]; case constants_1.ChainId.POLYGON_TEST: return [constants_1.POLYGON_TEST_USDC, constants_1.POLYGON_TEST_BMOS, constants_1.POLYGON_TEST_NATIVE]; default: throw new Error(`ID_TO_SUPPORTED_TOKEN: unknown chain id: ${id}`); } }; exports.ID_TO_SUPPORTED_TOKEN = ID_TO_SUPPORTED_TOKEN; /** Chain Id to all available tokens */ const ID_TO_ALL_TOKEN = (id) => { switch (id) { case constants_1.ChainId.MAP_TEST: return [ constants_1.MAP_TEST_MOST, constants_1.MAP_TEST_WMAP, constants_1.MAP_TEST_NEAR, constants_1.MAP_TEST_BNB, constants_1.MAP_TEST_NATIVE, constants_1.MAP_TEST_USDC, ]; case constants_1.ChainId.ETH_GOERLI: return [constants_1.ETH_GOERLI_WETH, constants_1.ETH_GOERLI_USDC, constants_1.ETH_GOERLI_NATIVE]; case constants_1.ChainId.ETH_PRIV: return []; case constants_1.ChainId.NEAR_TESTNET: return [ constants_1.NEAR_TEST_MOST, constants_1.NEAR_TEST_MAP, constants_1.NEAR_TEST_WNEAR, constants_1.NEAR_TEST_NATIVE, constants_1.NEAR_TEST_USDC, ]; case constants_1.ChainId.BSC_TEST: return [ constants_1.BSC_TEST_MOST, constants_1.BSC_TEST_WBNB, constants_1.BSC_TEST_MAP, constants_1.BSC_TEST_NATIVE, constants_1.BSC_TEST_USDC, constants_1.BSC_TEST_BMOS, ]; case constants_1.ChainId.POLYGON_TEST: return [ constants_1.POLYGON_TEST_USDC, constants_1.POLYGON_TEST_BMOS, constants_1.POLYGON_TEST_MOST, constants_1.POLYGON_TEST_WMATIC, constants_1.POLYGON_TEST_MAP, constants_1.MAP_TEST_NATIVE, ]; default: throw new Error(`ID_TO_ALL_TOKEN: unknown chain id: ${id}`); } }; exports.ID_TO_ALL_TOKEN = ID_TO_ALL_TOKEN;