butterjs-sdk
Version:
Butter Network SDK
97 lines (96 loc) • 4.04 kB
JavaScript
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;
;