UNPKG

@hyperlane-xyz/sdk

Version:

The official SDK for the Hyperlane Network

28 lines 1.53 kB
import { BigNumber, ethers } from 'ethers'; import { ProtocolType } from '@hyperlane-xyz/utils'; export const TOKEN_EXCHANGE_RATE_DECIMALS_ETHEREUM = 10; export const TOKEN_EXCHANGE_RATE_SCALE_ETHEREUM = ethers.utils.parseUnits('1', TOKEN_EXCHANGE_RATE_DECIMALS_ETHEREUM); export const TOKEN_EXCHANGE_RATE_DECIMALS_SEALEVEL = 19; export const TOKEN_EXCHANGE_RATE_SCALE_SEALEVEL = ethers.utils.parseUnits('1', TOKEN_EXCHANGE_RATE_DECIMALS_SEALEVEL); export const TOKEN_EXCHANGE_RATE_DECIMALS_COSMOS = 10; export const TOKEN_EXCHANGE_RATE_SCALE_COSMOS = ethers.utils.parseUnits('1', TOKEN_EXCHANGE_RATE_DECIMALS_COSMOS); // Gets the number of decimals for the exchange rate on a particular origin protocol. // Different smart contract implementations require different levels of precision. export function getProtocolExchangeRateDecimals(protocolType) { switch (protocolType) { case ProtocolType.Ethereum: return TOKEN_EXCHANGE_RATE_DECIMALS_ETHEREUM; case ProtocolType.Sealevel: return TOKEN_EXCHANGE_RATE_DECIMALS_SEALEVEL; case ProtocolType.Cosmos: return TOKEN_EXCHANGE_RATE_DECIMALS_COSMOS; case ProtocolType.CosmosNative: return TOKEN_EXCHANGE_RATE_DECIMALS_COSMOS; default: throw new Error(`Unsupported protocol type: ${protocolType}`); } } export function getProtocolExchangeRateScale(protocolType) { return BigNumber.from(10).pow(getProtocolExchangeRateDecimals(protocolType)); } //# sourceMappingURL=igp.js.map