UNPKG

@sky-mavis/smart-order-router

Version:
57 lines 3.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getQuoteThroughNativePool = exports.IOnChainGasModelFactory = exports.IV2GasModelFactory = exports.USD_GAS_TOKEN_BY_CHAIN = exports.USDC_RONIN_MAINNET = exports.USDC_RONIN_TESTNET = void 0; const katana_core_1 = require("@sky-mavis/katana-core"); const util_1 = require("../../../util"); const katana_core_2 = require("@sky-mavis/katana-core"); // Some well known tokens on each chain for seeding cache / testing. exports.USDC_RONIN_TESTNET = katana_core_2.DEFAULT_ERC20[2021].USDC; exports.USDC_RONIN_MAINNET = katana_core_2.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. exports.USD_GAS_TOKEN_BY_CHAIN = { [katana_core_1.ChainId.mainnet]: [exports.USDC_RONIN_MAINNET], [katana_core_1.ChainId.testnet]: [exports.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 */ class IV2GasModelFactory { } exports.IV2GasModelFactory = 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 */ class IOnChainGasModelFactory { } exports.IOnChainGasModelFactory = IOnChainGasModelFactory; // Determines if native currency is token0 // Gets the native price of the pool, dependent on 0 or 1 // quotes across the pool const getQuoteThroughNativePool = (chainId, nativeTokenAmount, nativeTokenPool) => { const nativeCurrency = util_1.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); }; exports.getQuoteThroughNativePool = getQuoteThroughNativePool; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FzLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JvdXRlcnMvYWxwaGEtcm91dGVyL2dhcy1tb2RlbHMvZ2FzLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUFpRDtBQVFqRCx3Q0FBd0Q7QUFReEQsd0RBQXVEO0FBRXZELG9FQUFvRTtBQUN2RCxRQUFBLGtCQUFrQixHQUFVLDJCQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3JELFFBQUEsa0JBQWtCLEdBQVUsMkJBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFFbEUsZ0VBQWdFO0FBQ2hFLHFFQUFxRTtBQUNyRSw0RUFBNEU7QUFDL0QsUUFBQSxzQkFBc0IsR0FBRztJQUNwQyxDQUFDLHFCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQztJQUN2QyxDQUFDLHFCQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQywwQkFBa0IsQ0FBQztDQUN4QyxDQUFDO0FBMkVGOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFzQixrQkFBa0I7Q0FRdkM7QUFSRCxnREFRQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFzQix1QkFBdUI7Q0FVNUM7QUFWRCwwREFVQztBQUVELDBDQUEwQztBQUMxQyx5REFBeUQ7QUFDekQseUJBQXlCO0FBQ2xCLE1BQU0seUJBQXlCLEdBQUcsQ0FDdkMsT0FBZ0IsRUFDaEIsaUJBQTJDLEVBQzNDLGVBQTRCLEVBQ1osRUFBRTtJQUNsQixNQUFNLGNBQWMsR0FBRyw4QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRCxxRkFBcUY7SUFDckYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7SUFDOUYsc0RBQXNEO0lBQ3RELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFtQixDQUFDO0FBQ3JFLENBQUMsQ0FBQztBQVhXLFFBQUEseUJBQXlCLDZCQVdwQyJ9