UNPKG

@sky-mavis/smart-order-router

Version:
51 lines 3.54 kB
import { ChainId } from '@sky-mavis/katana-core'; import { WRAPPED_NATIVE_CURRENCY } from '../../../util'; import { DEFAULT_ERC20 } from '@sky-mavis/katana-core'; // Some well known tokens on each chain for seeding cache / testing. export const USDC_RONIN_TESTNET = DEFAULT_ERC20[2021].USDC; export const USDC_RONIN_MAINNET = DEFAULT_ERC20[2020].USDC; // When adding new usd gas tokens, ensure the tokens are ordered // from tokens with highest decimals to lowest decimals. For example, // DAI_AVAX has 18 decimals and comes before USDC_AVAX which has 6 decimals. export const USD_GAS_TOKEN_BY_CHAIN = { [ChainId.mainnet]: [USDC_RONIN_MAINNET], [ChainId.testnet]: [USDC_RONIN_TESTNET], }; /** * Factory for building gas models that can be used with any route to generate * gas estimates. * * Factory model is used so that any supporting data can be fetched once and * returned as part of the model. * * @export * @abstract * @class IV2GasModelFactory */ export class IV2GasModelFactory { } /** * Factory for building gas models that can be used with any route to generate * gas estimates. * * Factory model is used so that any supporting data can be fetched once and * returned as part of the model. * * @export * @abstract * @class IOnChainGasModelFactory */ export class IOnChainGasModelFactory { } // Determines if native currency is token0 // Gets the native price of the pool, dependent on 0 or 1 // quotes across the pool export const getQuoteThroughNativePool = (chainId, nativeTokenAmount, nativeTokenPool) => { const nativeCurrency = WRAPPED_NATIVE_CURRENCY[chainId]; const isToken0 = nativeTokenPool.token0.equals(nativeCurrency); // returns mid price in terms of the native currency (the ratio of token/nativeToken) const nativeTokenPrice = isToken0 ? nativeTokenPool.token0Price : nativeTokenPool.token1Price; // return gas cost in terms of the non native currency return nativeTokenPrice.quote(nativeTokenAmount); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2dhcy1tb2RlbHMvZ2FzLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVFqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFReEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELG9FQUFvRTtBQUNwRSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFVLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFFbEUsZ0VBQWdFO0FBQ2hFLHFFQUFxRTtBQUNyRSw0RUFBNEU7QUFDNUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztJQUN2QyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO0NBQ3hDLENBQUM7QUEyRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0NBUXZDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sT0FBZ0IsdUJBQXVCO0NBVTVDO0FBRUQsMENBQTBDO0FBQzFDLHlEQUF5RDtBQUN6RCx5QkFBeUI7QUFDekIsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsT0FBZ0IsRUFDaEIsaUJBQTJDLEVBQzNDLGVBQTRCLEVBQ1osRUFBRTtJQUNsQixNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRCxxRkFBcUY7SUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7SUFDOUYsc0RBQXNEO0lBQ3RELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFtQixDQUFDO0FBQ3JFLENBQUMsQ0FBQyJ9