UNPKG

@pharosnames/address-encoder

Version:

Encodes and decodes address formats for various cryptocurrencies with Pharos network support

47 lines 1.79 kB
import * as formats from "./coins.js"; import { coinNameToTypeMap, evmCoinNameToTypeMap, nonEvmCoinNameToTypeMap, } from "./consts/coinNameToTypeMap.js"; import { coinTypeToNameMap, evmCoinTypeToNameMap, nonEvmCoinTypeToNameMap, } from "./consts/coinTypeToNameMap.js"; import { SLIP44_MSB, coinTypeToEvmChainId } from "./utils/evm.js"; export { coinNameToTypeMap, coinTypeToNameMap, evmCoinNameToTypeMap, evmCoinTypeToNameMap, nonEvmCoinNameToTypeMap, nonEvmCoinTypeToNameMap, }; export const getCoderByCoinName = (name) => { const format = formats[name]; if (!format) { const coinType = coinNameToTypeMap[name]; if (!coinType) throw new Error(`Unsupported coin: ${name}`); const evmChainId = coinTypeToEvmChainId(coinType); const ethFormat = formats["eth"]; return { name: name, coinType, evmChainId, encode: ethFormat.encode, decode: ethFormat.decode, }; } return format; }; export const getCoderByCoinType = (coinType) => { const names = coinTypeToNameMap[String(coinType)]; if (coinType >= SLIP44_MSB) { const evmChainId = coinTypeToEvmChainId(coinType); const isUnknownChain = !names; const name = isUnknownChain ? `Unknown Chain (${evmChainId})` : names[0]; const ethFormat = formats["eth"]; return { name, coinType: coinType, evmChainId, isUnknownChain, encode: ethFormat.encode, decode: ethFormat.decode, }; } if (!names) { throw new Error(`Unsupported coin type: ${coinType}`); } const [name] = names; const format = formats[name]; return format; }; //# sourceMappingURL=index.js.map