@ring-protocol/smart-order-router 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/main/index.js.map +1 -0
- package/build/main/providers/cache-node.js.map +1 -0
- package/build/main/providers/cache.js.map +1 -0
- package/build/main/providers/caching/route/index.js.map +1 -0
- package/build/main/providers/caching/route/model/cache-mode.js.map +1 -0
- package/build/main/providers/caching/route/model/cached-route.js.map +1 -0
- package/build/main/providers/caching/route/model/cached-routes.js.map +1 -0
- package/build/main/providers/caching/route/model/index.js.map +1 -0
- package/build/main/providers/caching/route/route-caching-provider.js.map +1 -0
- package/build/main/providers/caching-gas-provider.js.map +1 -0
- package/build/main/providers/caching-subgraph-provider.js.map +1 -0
- package/build/main/providers/caching-token-list-provider.js.map +1 -0
- package/build/main/providers/caching-token-provider.js.map +1 -0
- package/build/main/providers/eip-1559-gas-price-provider.js.map +1 -0
- package/build/main/providers/eth-estimate-gas-provider.js.map +1 -0
- package/build/main/providers/eth-gas-station-info-gas-price-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-caching-pool-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-caching-subgraph-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-pool-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-quote-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-static-subgraph-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.js.map +1 -0
- package/build/main/providers/fewV2/ring-subgraph-provider.js.map +1 -0
- package/build/main/providers/fewV2/ring-uri-subgraph-provider.js.map +1 -0
- package/build/main/providers/gas-price-provider.js.map +1 -0
- package/build/main/providers/index.js.map +1 -0
- package/build/main/providers/legacy-gas-price-provider.js.map +1 -0
- package/build/main/providers/multicall-provider.js.map +1 -0
- package/build/main/providers/multicall-ringswap-provider.js.map +1 -0
- package/build/main/providers/multicall-uniswap-provider.js.map +1 -0
- package/build/main/providers/on-chain-gas-price-provider.js.map +1 -0
- package/build/main/providers/on-chain-quote-provider.d.ts +4 -4
- package/build/main/providers/on-chain-quote-provider.js +35 -37
- package/build/main/providers/on-chain-quote-provider.js.map +1 -0
- package/build/main/providers/pool-provider.js.map +1 -0
- package/build/main/providers/portion-provider.js.map +1 -0
- package/build/main/providers/provider.js.map +1 -0
- package/build/main/providers/simulation-provider.js.map +1 -0
- package/build/main/providers/static-gas-price-provider.js.map +1 -0
- package/build/main/providers/subgraph-provider-with-fallback.js.map +1 -0
- package/build/main/providers/subgraph-provider.js.map +1 -0
- package/build/main/providers/swap-router-provider.js.map +1 -0
- package/build/main/providers/tenderly-simulation-provider.js.map +1 -0
- package/build/main/providers/token-fee-fetcher.js.map +1 -0
- package/build/main/providers/token-properties-provider.js.map +1 -0
- package/build/main/providers/token-provider.js.map +1 -0
- package/build/main/providers/token-validator-provider.js.map +1 -0
- package/build/main/providers/uri-subgraph-provider.js.map +1 -0
- package/build/main/providers/v2/caching-pool-provider.js.map +1 -0
- package/build/main/providers/v2/caching-subgraph-provider.js.map +1 -0
- package/build/main/providers/v2/pool-provider.js.map +1 -0
- package/build/main/providers/v2/quote-provider.js.map +1 -0
- package/build/main/providers/v2/static-subgraph-provider.js.map +1 -0
- package/build/main/providers/v2/subgraph-provider-with-fallback.js.map +1 -0
- package/build/main/providers/v2/subgraph-provider.js.map +1 -0
- package/build/main/providers/v2/uri-subgraph-provider.js.map +1 -0
- package/build/main/providers/v3/caching-pool-provider.js.map +1 -0
- package/build/main/providers/v3/caching-subgraph-provider.js.map +1 -0
- package/build/main/providers/v3/gas-data-provider.js.map +1 -0
- package/build/main/providers/v3/pool-provider.js.map +1 -0
- package/build/main/providers/v3/static-subgraph-provider.js.map +1 -0
- package/build/main/providers/v3/subgraph-provider-with-fallback.js.map +1 -0
- package/build/main/providers/v3/subgraph-provider.js.map +1 -0
- package/build/main/providers/v3/uri-subgraph-provider.js.map +1 -0
- package/build/main/providers/v4/caching-pool-provider.js.map +1 -0
- package/build/main/providers/v4/caching-subgraph-provider.js.map +1 -0
- package/build/main/providers/v4/pool-provider.js.map +1 -0
- package/build/main/providers/v4/static-subgraph-provider.js.map +1 -0
- package/build/main/providers/v4/subgraph-provider-with-fallback.js.map +1 -0
- package/build/main/providers/v4/subgraph-provider.js.map +1 -0
- package/build/main/providers/v4/uri-subgraph-provider.js.map +1 -0
- package/build/main/routers/alpha-router/alpha-router.d.ts +9 -0
- package/build/main/routers/alpha-router/alpha-router.js +4 -1
- package/build/main/routers/alpha-router/alpha-router.js.map +1 -0
- package/build/main/routers/alpha-router/config.js.map +1 -0
- package/build/main/routers/alpha-router/entities/index.js.map +1 -0
- package/build/main/routers/alpha-router/entities/route-with-valid-quote.js.map +1 -0
- package/build/main/routers/alpha-router/functions/best-swap-route.js.map +1 -0
- package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js.map +1 -0
- package/build/main/routers/alpha-router/functions/compute-all-routes.js.map +1 -0
- package/build/main/routers/alpha-router/functions/get-candidate-pools.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/gas-costs.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/index.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/ring-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js.map +1 -0
- package/build/main/routers/alpha-router/index.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/base-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/few-v2-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/index.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/mixed-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/model/index.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/model/results/index.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/v2-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/v3-quoter.js.map +1 -0
- package/build/main/routers/alpha-router/quoters/v4-quoter.js.map +1 -0
- package/build/main/routers/index.js.map +1 -0
- package/build/main/routers/legacy-router/bases.js.map +1 -0
- package/build/main/routers/legacy-router/index.js.map +1 -0
- package/build/main/routers/legacy-router/legacy-router.js.map +1 -0
- package/build/main/routers/router.js.map +1 -0
- package/build/main/tsconfig.tsbuildinfo +1 -1
- package/build/main/types/other/commons.js.map +1 -0
- package/build/main/types/other/factories/Erc20__factory.js.map +1 -0
- package/build/main/types/other/factories/GasDataArbitrum__factory.js.map +1 -0
- package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js.map +1 -0
- package/build/main/types/other/factories/ITokenValidator__factory.js.map +1 -0
- package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js.map +1 -0
- package/build/main/types/other/factories/Permit2__factory.js.map +1 -0
- package/build/main/types/other/factories/StateView__factory.js.map +1 -0
- package/build/main/types/other/factories/SwapRouter02__factory.js.map +1 -0
- package/build/main/types/other/factories/TokenFeeDetector__factory.js.map +1 -0
- package/build/main/types/other/factories/V4Quoter__factory.js.map +1 -0
- package/build/main/types/v2/commons.js.map +1 -0
- package/build/main/types/v2/factories/IUniswapV2Pair__factory.js.map +1 -0
- package/build/main/types/v3/commons.js.map +1 -0
- package/build/main/types/v3/factories/IERC20Metadata__factory.js.map +1 -0
- package/build/main/types/v3/factories/IQuoterV2__factory.js.map +1 -0
- package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js.map +1 -0
- package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js.map +1 -0
- package/build/main/util/addresses.js.map +1 -0
- package/build/main/util/amounts.js.map +1 -0
- package/build/main/util/callData.js.map +1 -0
- package/build/main/util/chains.js.map +1 -0
- package/build/main/util/defaultBlocksToLive.js.map +1 -0
- package/build/main/util/fewAddress.js.map +1 -0
- package/build/main/util/gas-factory-helpers.js.map +1 -0
- package/build/main/util/hooksOptions.js.map +1 -0
- package/build/main/util/index.js.map +1 -0
- package/build/main/util/intent.js.map +1 -0
- package/build/main/util/l2FeeChains.js.map +1 -0
- package/build/main/util/log.js.map +1 -0
- package/build/main/util/methodParameters.js +3 -1
- package/build/main/util/methodParameters.js.map +1 -0
- package/build/main/util/metric.js.map +1 -0
- package/build/main/util/mixedRouteFilterOutV4Pools.js.map +1 -0
- package/build/main/util/onchainQuoteProviderConfigs.js.map +1 -0
- package/build/main/util/pool.js.map +1 -0
- package/build/main/util/protocols.js.map +1 -0
- package/build/main/util/routes.js.map +1 -0
- package/build/main/util/serializeRouteIds.js.map +1 -0
- package/build/main/util/simple-perf-tracker.js.map +1 -0
- package/build/main/util/tenderlySimulationErrorBreakDown.js.map +1 -0
- package/build/main/util/unsupported-tokens.js.map +1 -0
- package/build/module/providers/on-chain-quote-provider.d.ts +4 -4
- package/build/module/providers/on-chain-quote-provider.js +35 -37
- package/build/module/routers/alpha-router/alpha-router.d.ts +9 -0
- package/build/module/routers/alpha-router/alpha-router.js +4 -1
- package/build/module/tsconfig.module.tsbuildinfo +1 -1
- package/build/module/util/methodParameters.js +3 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gas-factory-helpers.js","sourceRoot":"","sources":["../../../src/util/gas-factory-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { estimateL1Gas, estimateL1GasCost } from '@eth-optimism/sdk';\nimport { BigNumber } from '@ethersproject/bignumber';\nimport { BaseProvider, TransactionRequest } from '@ethersproject/providers';\nimport { Protocol } from '@fewprotocol/router-sdk';\nimport { ChainId, Percent, Token, TradeType } from '@fewprotocol/sdk-core';\nimport { Pair } from '@fewprotocol/uniswap-v2-sdk';\nimport { FeeAmount, Pool } from '@fewprotocol/uniswap-v3-sdk';\nimport { UniversalRouterVersion } from '@fewprotocol/universal-router-sdk';\nimport { Pair as RingFewPair } from '@fewprotocol/v2-sdk';\nimport { getFewTokenFromOriginalToken } from '@fewprotocol/v2-sdk';\nimport JSBI from 'jsbi';\nimport _ from 'lodash';\n\nimport { IRingV2PoolProvider, IV2PoolProvider, IV4PoolProvider } from '../providers';\nimport { IPortionProvider } from '../providers/portion-provider';\nimport { ProviderConfig } from '../providers/provider';\nimport { ArbitrumGasData } from '../providers/v3/gas-data-provider';\nimport { IV3PoolProvider } from '../providers/v3/pool-provider';\nimport {\n GasModelProviderConfig,\n getQuoteThroughNativePool,\n getRingQuoteThroughNativePool,\n MethodParameters,\n metric,\n MetricLoggerUnit,\n MixedRouteWithValidQuote,\n ringUsdGasTokensByChain,\n RouteWithValidQuote,\n SwapOptions,\n SwapOptionsUniversalRouter,\n SwapRoute,\n SwapType,\n usdGasTokensByChain,\n V2RouteWithValidQuote,\n V3RouteWithValidQuote,\n V4RouteWithValidQuote,\n} from '../routers';\nimport {\n CurrencyAmount,\n FEW_WRAPPED_NATIVE_CURRENCY,\n getApplicableV3FeeAmounts,\n log,\n WRAPPED_NATIVE_CURRENCY,\n} from '../util';\n\nimport { isFewToken } from './fewAddress';\nimport { opStackChains } from './l2FeeChains';\nimport { buildSwapMethodParameters, buildTrade } from './methodParameters';\n\nexport async function getV2NativePool(\n token: Token,\n poolProvider: IV2PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<Pair | null> {\n const chainId = token.chainId as ChainId;\n const weth = WRAPPED_NATIVE_CURRENCY[chainId]!;\n\n const poolAccessor = await poolProvider.getPools(\n [[weth, token]],\n providerConfig\n );\n const pool = poolAccessor.getPool(weth, token);\n\n if (!pool || pool.reserve0.equalTo(0) || pool.reserve1.equalTo(0)) {\n log.error(\n {\n weth,\n token,\n reserve0: pool?.reserve0.toExact(),\n reserve1: pool?.reserve1.toExact(),\n },\n `Could not find a valid WETH V2 pool with ${token.symbol} for computing gas costs.`\n );\n\n return null;\n }\n\n return pool;\n}\n\nexport async function getRingFewV2NativePool(\n token: Token,\n poolProvider: IRingV2PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<RingFewPair | null> {\n const chainId = token.chainId as ChainId;\n const weth = FEW_WRAPPED_NATIVE_CURRENCY[chainId]!;\n\n const poolAccessor = await poolProvider.getPools(\n [[weth, token]],\n providerConfig\n );\n const pool = poolAccessor.getPool(weth, token);\n\n if (!pool || pool.reserve0.equalTo(0) || pool.reserve1.equalTo(0)) {\n log.error(\n {\n weth,\n token,\n reserve0: pool?.reserve0.toExact(),\n reserve1: pool?.reserve1.toExact(),\n },\n `Could not find a valid WETH V2 pool with ${token.symbol} for computing gas costs.`\n );\n\n return null;\n }\n\n return pool;\n}\n\nexport async function getHighestLiquidityV3NativePool(\n token: Token,\n poolProvider: IV3PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<Pool | null> {\n const nativeCurrency = WRAPPED_NATIVE_CURRENCY[token.chainId as ChainId]!;\n\n const feeAmounts = getApplicableV3FeeAmounts(token.chainId);\n\n const nativePools = _(feeAmounts)\n .map<[Token, Token, FeeAmount]>((feeAmount) => {\n return [nativeCurrency, token, feeAmount];\n })\n .value();\n\n const poolAccessor = await poolProvider.getPools(nativePools, providerConfig);\n\n const pools = _(feeAmounts)\n .map((feeAmount) => {\n return poolAccessor.getPool(nativeCurrency, token, feeAmount);\n })\n .compact()\n .value();\n\n if (pools.length == 0) {\n log.error(\n { pools },\n `Could not find a ${nativeCurrency.symbol} pool with ${token.symbol} for computing gas costs.`\n );\n\n return null;\n }\n\n const maxPool = pools.reduce((prev, current) => {\n return JSBI.greaterThan(prev.liquidity, current.liquidity) ? prev : current;\n });\n\n return maxPool;\n}\n\nexport async function getHighestLiquidityV3NativeFewTokenPool(\n token: Token,\n poolProvider: IV3PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<Pool | null> {\n const nativeCurrency = FEW_WRAPPED_NATIVE_CURRENCY[token.chainId as ChainId]!;\n\n const feeAmounts = getApplicableV3FeeAmounts(token.chainId);\n\n const nativePools = _(feeAmounts)\n .map<[Token, Token, FeeAmount]>((feeAmount) => {\n return [nativeCurrency, token, feeAmount];\n })\n .value();\n\n const poolAccessor = await poolProvider.getPools(nativePools, providerConfig);\n\n const pools = _(feeAmounts)\n .map((feeAmount) => {\n return poolAccessor.getPool(nativeCurrency, token, feeAmount);\n })\n .compact()\n .value();\n\n if (pools.length == 0) {\n log.error(\n { pools },\n `Could not find a ${nativeCurrency.symbol} pool with ${token.symbol} for computing gas costs.`\n );\n\n return null;\n }\n\n const maxPool = pools.reduce((prev, current) => {\n return JSBI.greaterThan(prev.liquidity, current.liquidity) ? prev : current;\n });\n\n return maxPool;\n}\n\nexport async function getHighestLiquidityV3USDPool(\n chainId: ChainId,\n poolProvider: IV3PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<Pool | null> {\n const usdTokens = usdGasTokensByChain[chainId];\n const wrappedCurrency = WRAPPED_NATIVE_CURRENCY[chainId]!;\n\n if (!usdTokens) {\n throw new Error(\n `Could not find a USD token for computing gas costs on ${chainId}`\n );\n }\n\n const feeAmounts = getApplicableV3FeeAmounts(chainId);\n\n const usdPools = _(feeAmounts)\n .flatMap((feeAmount) => {\n return _.map<Token, [Token, Token, FeeAmount]>(usdTokens, (usdToken) => [\n wrappedCurrency,\n usdToken,\n feeAmount,\n ]);\n })\n .value();\n\n const poolAccessor = await poolProvider.getPools(usdPools, providerConfig);\n\n const pools = _(feeAmounts)\n .flatMap((feeAmount) => {\n const pools = [];\n\n for (const usdToken of usdTokens) {\n const pool = poolAccessor.getPool(wrappedCurrency, usdToken, feeAmount);\n if (pool) {\n pools.push(pool);\n }\n }\n\n return pools;\n })\n .compact()\n .value();\n\n if (pools.length == 0) {\n const message = `Could not find a USD/${wrappedCurrency.symbol} pool for computing gas costs.`;\n log.error({ pools }, message);\n // throw new Error(message);\n return null;\n }\n\n const maxPool = pools.reduce((prev, current) => {\n return JSBI.greaterThan(prev.liquidity, current.liquidity) ? prev : current;\n });\n\n return maxPool;\n}\n\nexport async function getHighestLiquidityV3FewTokenUSDPool(\n chainId: ChainId,\n poolProvider: IV3PoolProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<Pool | null> {\n // const only_support_v2_network: ChainId[] = [\n // ChainId.BLAST,\n // ]\n\n // const usdTokens = only_support_v2_network.includes(chainId)\n // ? onlySupportV2NetworkUsdGasTokensByChain[chainId]\n // : ringUsdGasTokensByChain[chainId];\n\n // const wrappedCurrency = only_support_v2_network.includes(chainId)\n // ? WRAPPED_NATIVE_CURRENCY[chainId]!\n // : FEW_WRAPPED_NATIVE_CURRENCY[chainId]!;\n\n const usdTokens = ringUsdGasTokensByChain[chainId];\n const wrappedCurrency = FEW_WRAPPED_NATIVE_CURRENCY[chainId]!;\n\n if (!usdTokens) {\n throw new Error(\n `Could not find a USD token for computing gas costs on ${chainId}`\n );\n }\n\n const feeAmounts = getApplicableV3FeeAmounts(chainId);\n\n const usdPools = _(feeAmounts)\n .flatMap((feeAmount) => {\n return _.map<Token, [Token, Token, FeeAmount]>(usdTokens, (usdToken) => [\n wrappedCurrency,\n usdToken,\n feeAmount,\n ]);\n })\n .value();\n\n const poolAccessor = await poolProvider.getPools(usdPools, providerConfig);\n const pools = _(feeAmounts)\n .flatMap((feeAmount) => {\n const pools = [];\n\n for (const usdToken of usdTokens) {\n const pool = poolAccessor.getPool(wrappedCurrency, usdToken, feeAmount);\n if (pool) {\n pools.push(pool);\n }\n }\n\n return pools;\n })\n .compact()\n .value();\n\n if (pools.length == 0) {\n const message = `Could not find a USD/${wrappedCurrency.symbol} few pool for computing gas costs.`;\n log.error({ pools }, message);\n // throw new Error(message);\n return null;\n }\n\n const maxPool = pools.reduce((prev, current) => {\n return JSBI.greaterThan(prev.liquidity, current.liquidity) ? prev : current;\n });\n\n return maxPool;\n}\n\nexport function getGasCostInNativeCurrency(\n nativeCurrency: Token,\n gasCostInWei: BigNumber\n) {\n // wrap fee to native currency\n const costNativeCurrency = CurrencyAmount.fromRawAmount(\n nativeCurrency,\n gasCostInWei.toString()\n );\n return costNativeCurrency;\n}\n\nexport function getArbitrumBytes(data: string): BigNumber {\n if (data == '') return BigNumber.from(0);\n\n // Calculate actual bytes (remove '0x' prefix, every 2 hex characters = 1 byte)\n const actualBytes = (data.length - 2) / 2;\n\n // Smart compression ratio estimation based on data characteristics\n let compressionRatio = 0.5; // Default baseline compression ratio\n\n // 1. Detect zero byte density (zero bytes compress very well)\n const zeroBytes = (data.match(/00/g) || []).length;\n const zeroDensity = zeroBytes / actualBytes;\n\n // 2. Detect repeated patterns\n const repeatedPatterns = countRepeatedPatterns(data);\n const repetitionScore = Math.min(repeatedPatterns / actualBytes, 0.5);\n\n // 3. Detect function call pattern (calldata characteristics)\n const isFunctionCall = data.length > 10 && /^0x[a-f0-9]{8}/.test(data);\n\n // 4. Calculate dynamic compression ratio\n if (zeroDensity > 0.5) {\n // High zero byte density: excellent compression\n compressionRatio = 0.25 + (zeroDensity * 0.2);\n } else if (zeroDensity > 0.3) {\n // Medium zero byte density: good compression\n compressionRatio = 0.35 + (zeroDensity * 0.3);\n } else if (isFunctionCall) {\n // Standard function call: typical compression\n compressionRatio = 0.45 - (repetitionScore * 0.1);\n } else if (repetitionScore > 0.2) {\n // High repetition pattern: better compression\n compressionRatio = 0.4 - (repetitionScore * 0.15);\n } else {\n // Random data: poor compression\n compressionRatio = 0.55 + (Math.random() * 0.1 - 0.05); // Add slight randomness\n }\n\n // Ensure compression ratio is within reasonable bounds\n compressionRatio = Math.max(0.2, Math.min(0.8, compressionRatio));\n\n const estimatedCompressedSize = Math.floor(actualBytes * compressionRatio);\n\n // Apply original 20% buffer (due to using Brotli 1 instead of Brotli 0)\n return BigNumber.from(estimatedCompressedSize).mul(120).div(100);\n}\n\n// Helper function: detect repeated patterns\nfunction countRepeatedPatterns(data: string): number {\n const cleanData = data.replace('0x', '');\n let patterns = 0;\n\n // Detect 2-8 byte repeated patterns\n for (let patternLength = 4; patternLength <= 16; patternLength += 2) {\n const pattern = cleanData.substring(0, patternLength);\n const regex = new RegExp(pattern, 'g');\n const matches = (cleanData.match(regex) || []).length;\n\n if (matches > 1) {\n patterns += (matches - 1) * (patternLength / 2); // Convert to byte count\n }\n }\n\n return patterns;\n}\n\nexport function calculateArbitrumToL1FeeFromCalldata(\n calldata: string,\n gasData: ArbitrumGasData,\n chainId: ChainId\n): [BigNumber, BigNumber, BigNumber] {\n const { perL2TxFee, perL1CalldataFee, perArbGasTotal } = gasData;\n // calculates gas amounts based on bytes of calldata, use 0 as overhead.\n const l1GasUsed = getL2ToL1GasUsed(calldata, chainId);\n // multiply by the fee per calldata and add the flat l2 fee\n const l1Fee = l1GasUsed.mul(perL1CalldataFee).add(perL2TxFee);\n const gasUsedL1OnL2 = l1Fee.div(perArbGasTotal);\n return [l1GasUsed, l1Fee, gasUsedL1OnL2];\n}\n\nexport async function calculateOptimismToL1FeeFromCalldata(\n calldata: string,\n chainId: ChainId,\n provider: BaseProvider\n): Promise<[BigNumber, BigNumber]> {\n const tx: TransactionRequest = {\n data: calldata,\n chainId: chainId,\n type: 2, // sign the transaction as EIP-1559, otherwise it will fail at maxFeePerGas\n };\n const [l1GasUsed, l1GasCost] = await Promise.all([\n estimateL1Gas(provider, tx),\n estimateL1GasCost(provider, tx),\n ]);\n return [l1GasUsed, l1GasCost];\n}\n\nexport function getL2ToL1GasUsed(data: string, chainId: ChainId): BigNumber {\n switch (chainId) {\n case ChainId.ARBITRUM_ONE:\n case ChainId.ARBITRUM_GOERLI: {\n // calculates bytes of compressed calldata\n const l1ByteUsed = getArbitrumBytes(data);\n return l1ByteUsed.mul(16);\n }\n default:\n return BigNumber.from(0);\n }\n}\n\nexport async function calculateGasUsed(\n chainId: ChainId,\n route: SwapRoute,\n simulatedGasUsed: BigNumber,\n v2PoolProvider: IV2PoolProvider,\n v3PoolProvider: IV3PoolProvider,\n provider: BaseProvider,\n providerConfig?: GasModelProviderConfig\n): Promise<{\n estimatedGasUsedUSD: CurrencyAmount;\n estimatedGasUsedQuoteToken: CurrencyAmount;\n estimatedGasUsedGasToken?: CurrencyAmount;\n quoteGasAdjusted: CurrencyAmount;\n}> {\n const quoteToken = route.quote.currency.wrapped;\n const gasPriceWei = route.gasPriceWei;\n // calculate L2 to L1 security fee if relevant\n let l2toL1FeeInWei = BigNumber.from(0);\n // Arbitrum charges L2 gas for L1 calldata posting costs.\n // See https://github.com/Uniswap/smart-order-router/pull/464/files#r1441376802\n if (opStackChains.includes(chainId)) {\n l2toL1FeeInWei = (\n await calculateOptimismToL1FeeFromCalldata(\n route.methodParameters!.calldata,\n chainId,\n provider\n )\n )[1];\n }\n\n // add l2 to l1 fee and wrap fee to native currency\n const gasCostInWei = gasPriceWei.mul(simulatedGasUsed).add(l2toL1FeeInWei);\n const nativeCurrency = WRAPPED_NATIVE_CURRENCY[chainId];\n const costNativeCurrency = getGasCostInNativeCurrency(\n nativeCurrency,\n gasCostInWei\n );\n\n const usdPool: Pool | null = await getHighestLiquidityV3USDPool(\n chainId,\n v3PoolProvider,\n providerConfig\n );\n\n /** ------ MARK: USD logic -------- */\n const gasCostUSD = getQuoteThroughNativePool(\n chainId,\n costNativeCurrency,\n usdPool\n );\n\n /** ------ MARK: Conditional logic run if gasToken is specified -------- */\n let gasCostInTermsOfGasToken: CurrencyAmount | undefined = undefined;\n if (providerConfig?.gasToken) {\n if (providerConfig.gasToken.equals(nativeCurrency)) {\n gasCostInTermsOfGasToken = costNativeCurrency;\n } else {\n const nativeAndSpecifiedGasTokenPool =\n await getHighestLiquidityV3NativePool(\n providerConfig.gasToken,\n v3PoolProvider,\n providerConfig\n );\n if (nativeAndSpecifiedGasTokenPool) {\n gasCostInTermsOfGasToken = getQuoteThroughNativePool(\n chainId,\n costNativeCurrency,\n nativeAndSpecifiedGasTokenPool\n );\n } else {\n log.info(\n `Could not find a V3 pool for gas token ${providerConfig.gasToken.symbol}`\n );\n }\n }\n }\n\n /** ------ MARK: Main gas logic in terms of quote token -------- */\n let gasCostQuoteToken: CurrencyAmount | undefined = undefined;\n // shortcut if quote token is native currency\n if (quoteToken.equals(nativeCurrency)) {\n gasCostQuoteToken = costNativeCurrency;\n }\n // get fee in terms of quote token\n else {\n const nativePools = await Promise.all([\n getHighestLiquidityV3NativePool(\n quoteToken,\n v3PoolProvider,\n providerConfig\n ),\n getV2NativePool(quoteToken, v2PoolProvider, providerConfig),\n ]);\n const nativePool = nativePools.find((pool) => pool !== null);\n\n if (!nativePool) {\n log.info(\n 'Could not find any V2 or V3 pools to convert the cost into the quote token'\n );\n gasCostQuoteToken = CurrencyAmount.fromRawAmount(quoteToken, 0);\n } else {\n gasCostQuoteToken = getQuoteThroughNativePool(\n chainId,\n costNativeCurrency,\n nativePool\n );\n }\n }\n\n // Adjust quote for gas fees\n let quoteGasAdjusted;\n if (route.trade.tradeType == TradeType.EXACT_OUTPUT) {\n // Exact output - need more of tokenIn to get the desired amount of tokenOut\n quoteGasAdjusted = route.quote.add(gasCostQuoteToken);\n } else {\n // Exact input - can get less of tokenOut due to fees\n quoteGasAdjusted = route.quote.subtract(gasCostQuoteToken);\n }\n\n return {\n estimatedGasUsedUSD: gasCostUSD,\n estimatedGasUsedQuoteToken: gasCostQuoteToken,\n estimatedGasUsedGasToken: gasCostInTermsOfGasToken,\n quoteGasAdjusted: quoteGasAdjusted,\n };\n}\n\nexport function initSwapRouteFromExisting(\n swapRoute: SwapRoute,\n v2PoolProvider: IV2PoolProvider,\n v3PoolProvider: IV3PoolProvider,\n v4PoolProvider: IV4PoolProvider,\n portionProvider: IPortionProvider,\n quoteGasAdjusted: CurrencyAmount,\n estimatedGasUsed: BigNumber,\n estimatedGasUsedQuoteToken: CurrencyAmount,\n estimatedGasUsedUSD: CurrencyAmount,\n swapOptions: SwapOptions,\n estimatedGasUsedGasToken?: CurrencyAmount,\n providerConfig?: ProviderConfig\n): SwapRoute {\n const currencyIn = swapRoute.trade.inputAmount.currency;\n const currencyOut = swapRoute.trade.outputAmount.currency;\n\n const fewTokenIn = isFewToken(swapRoute.trade.inputAmount.currency.wrapped) ?\n currencyIn.wrapped :\n getFewTokenFromOriginalToken(swapRoute.trade.inputAmount.currency.wrapped, currencyIn.chainId);\n const fewTokenOut = isFewToken(swapRoute.trade.outputAmount.currency.wrapped) ?\n currencyOut.wrapped :\n getFewTokenFromOriginalToken(swapRoute.trade.outputAmount.currency.wrapped, currencyOut.chainId);\n\n const tradeType = swapRoute.trade.tradeType.valueOf()\n ? TradeType.EXACT_OUTPUT\n : TradeType.EXACT_INPUT;\n const routesWithValidQuote = swapRoute.route.map((route) => {\n switch (route.protocol) {\n case Protocol.V4:\n return new V4RouteWithValidQuote({\n amount: CurrencyAmount.fromFractionalAmount(\n route.amount.currency,\n route.amount.numerator,\n route.amount.denominator\n ),\n rawQuote: BigNumber.from(route.rawQuote),\n sqrtPriceX96AfterList: route.sqrtPriceX96AfterList.map((num) =>\n BigNumber.from(num)\n ),\n initializedTicksCrossedList: [...route.initializedTicksCrossedList],\n quoterGasEstimate: BigNumber.from(route.gasEstimate),\n percent: route.percent,\n route: route.route,\n gasModel: route.gasModel,\n quoteToken: new Token(\n currencyIn.chainId,\n route.quoteToken.address,\n route.quoteToken.decimals,\n route.quoteToken.symbol,\n route.quoteToken.name\n ),\n tradeType: tradeType,\n v4PoolProvider: v4PoolProvider,\n });\n case Protocol.V3:\n return new V3RouteWithValidQuote({\n amount: CurrencyAmount.fromFractionalAmount(\n route.amount.currency,\n route.amount.numerator,\n route.amount.denominator\n ),\n rawQuote: BigNumber.from(route.rawQuote),\n sqrtPriceX96AfterList: route.sqrtPriceX96AfterList.map((num) =>\n BigNumber.from(num)\n ),\n initializedTicksCrossedList: [...route.initializedTicksCrossedList],\n quoterGasEstimate: BigNumber.from(route.gasEstimate),\n percent: route.percent,\n route: route.route,\n gasModel: route.gasModel,\n quoteToken: new Token(\n currencyIn.chainId,\n route.quoteToken.address,\n route.quoteToken.decimals,\n route.quoteToken.symbol,\n route.quoteToken.name\n ),\n tradeType: tradeType,\n v3PoolProvider: v3PoolProvider,\n });\n case Protocol.V2:\n return new V2RouteWithValidQuote({\n amount: CurrencyAmount.fromFractionalAmount(\n route.amount.currency,\n route.amount.numerator,\n route.amount.denominator\n ),\n rawQuote: BigNumber.from(route.rawQuote),\n percent: route.percent,\n route: route.route,\n gasModel: route.gasModel,\n quoteToken: new Token(\n currencyIn.chainId,\n route.quoteToken.address,\n route.quoteToken.decimals,\n route.quoteToken.symbol,\n route.quoteToken.name\n ),\n tradeType: tradeType,\n v2PoolProvider: v2PoolProvider,\n });\n case Protocol.MIXED:\n return new MixedRouteWithValidQuote({\n amount: CurrencyAmount.fromFractionalAmount(\n route.amount.currency,\n route.amount.numerator,\n route.amount.denominator\n ),\n rawQuote: BigNumber.from(route.rawQuote),\n sqrtPriceX96AfterList: route.sqrtPriceX96AfterList.map((num) =>\n BigNumber.from(num)\n ),\n initializedTicksCrossedList: [...route.initializedTicksCrossedList],\n quoterGasEstimate: BigNumber.from(route.gasEstimate),\n percent: route.percent,\n route: route.route,\n mixedRouteGasModel: route.gasModel,\n v2PoolProvider,\n quoteToken: new Token(\n currencyIn.chainId,\n route.quoteToken.address,\n route.quoteToken.decimals,\n route.quoteToken.symbol,\n route.quoteToken.name\n ),\n tradeType: tradeType,\n v3PoolProvider: v3PoolProvider,\n v4PoolProvider: v4PoolProvider,\n });\n default:\n throw new Error('Invalid protocol');\n }\n });\n const trade = buildTrade<typeof tradeType>(\n currencyIn,\n fewTokenIn!,\n currencyOut,\n fewTokenOut!,\n tradeType,\n routesWithValidQuote\n );\n\n const quoteGasAndPortionAdjusted = swapRoute.portionAmount\n ? portionProvider.getQuoteGasAndPortionAdjusted(\n swapRoute.trade.tradeType,\n quoteGasAdjusted,\n swapRoute.portionAmount\n )\n : undefined;\n const routesWithValidQuotePortionAdjusted =\n portionProvider.getRouteWithQuotePortionAdjusted(\n swapRoute.trade.tradeType,\n routesWithValidQuote,\n swapOptions,\n providerConfig\n );\n\n return {\n quote: swapRoute.quote,\n quoteGasAdjusted,\n quoteGasAndPortionAdjusted,\n estimatedGasUsed,\n estimatedGasUsedQuoteToken,\n estimatedGasUsedGasToken,\n estimatedGasUsedUSD,\n gasPriceWei: BigNumber.from(swapRoute.gasPriceWei),\n trade,\n route: routesWithValidQuotePortionAdjusted,\n blockNumber: BigNumber.from(swapRoute.blockNumber),\n methodParameters: swapRoute.methodParameters\n ? ({\n calldata: swapRoute.methodParameters.calldata,\n value: swapRoute.methodParameters.value,\n to: swapRoute.methodParameters.to,\n } as MethodParameters)\n : undefined,\n simulationStatus: swapRoute.simulationStatus,\n portionAmount: swapRoute.portionAmount,\n hitsCachedRoute: swapRoute.hitsCachedRoute,\n };\n}\n\nexport const calculateL1GasFeesHelper = async (\n route: RouteWithValidQuote[],\n chainId: ChainId,\n usdPool: RingFewPair | Pair | Pool | null,\n quoteToken: Token,\n nativePool: RingFewPair | Pair | Pool | null,\n provider: BaseProvider,\n l2GasData?: ArbitrumGasData,\n providerConfig?: GasModelProviderConfig\n): Promise<{\n gasUsedL1: BigNumber;\n gasUsedL1OnL2: BigNumber;\n gasCostL1USD: CurrencyAmount;\n gasCostL1QuoteToken: CurrencyAmount;\n}> => {\n const swapOptions: SwapOptionsUniversalRouter = {\n type: SwapType.UNIVERSAL_ROUTER,\n version:\n providerConfig?.universalRouterVersion ?? UniversalRouterVersion.V1_2,\n recipient: '0x0000000000000000000000000000000000000001',\n deadlineOrPreviousBlockhash: 100,\n slippageTolerance: new Percent(5, 10_000),\n };\n let mainnetGasUsed = BigNumber.from(0);\n let mainnetFeeInWei = BigNumber.from(0);\n let gasUsedL1OnL2 = BigNumber.from(0);\n if (opStackChains.includes(chainId)) {\n [mainnetGasUsed, mainnetFeeInWei] = await calculateOptimismToL1SecurityFee(\n route,\n swapOptions,\n chainId,\n provider\n );\n } else if (\n chainId == ChainId.ARBITRUM_ONE ||\n chainId == ChainId.ARBITRUM_GOERLI\n ) {\n [mainnetGasUsed, mainnetFeeInWei, gasUsedL1OnL2] =\n calculateArbitrumToL1SecurityFee(\n route,\n swapOptions,\n l2GasData as ArbitrumGasData,\n chainId\n );\n }\n\n // wrap fee to native currency\n const nativeCurrency = WRAPPED_NATIVE_CURRENCY[chainId];\n const costNativeCurrency = CurrencyAmount.fromRawAmount(\n nativeCurrency,\n mainnetFeeInWei.toString()\n );\n\n // convert fee into usd\n const gasCostL1USD: CurrencyAmount = getRingQuoteThroughNativePool(\n chainId,\n costNativeCurrency,\n usdPool\n );\n\n let gasCostL1QuoteToken = costNativeCurrency;\n // if the inputted token is not in the native currency, quote a native/quote token pool to get the gas cost in terms of the quote token\n if (!quoteToken.equals(nativeCurrency)) {\n if (!nativePool) {\n log.info(\n 'Could not find a pool to convert the cost into the quote token'\n );\n gasCostL1QuoteToken = CurrencyAmount.fromRawAmount(quoteToken, 0);\n } else {\n const nativeTokenPrice =\n nativePool.token0.address == nativeCurrency.address\n ? nativePool.token0Price\n : nativePool.token1Price;\n gasCostL1QuoteToken = nativeTokenPrice.quote(costNativeCurrency);\n }\n }\n // gasUsedL1 is the gas units used calculated from the bytes of the calldata\n // gasCostL1USD and gasCostL1QuoteToken is the cost of gas in each of those tokens\n return {\n gasUsedL1: mainnetGasUsed,\n gasUsedL1OnL2,\n gasCostL1USD,\n gasCostL1QuoteToken,\n };\n\n /**\n * To avoid having a call to optimism's L1 security fee contract for every route and amount combination,\n * we replicate the gas cost accounting here.\n */\n async function calculateOptimismToL1SecurityFee(\n routes: RouteWithValidQuote[],\n swapConfig: SwapOptionsUniversalRouter,\n chainId: ChainId,\n provider: BaseProvider\n ): Promise<[BigNumber, BigNumber]> {\n const route: RouteWithValidQuote = routes[0]!;\n const amountToken =\n route.tradeType == TradeType.EXACT_INPUT\n ? route.amount.currency\n : route.quote.currency;\n const outputToken =\n route.tradeType == TradeType.EXACT_INPUT\n ? route.quote.currency\n : route.amount.currency;\n\n const fewTokenIn = isFewToken(amountToken.wrapped) ?\n amountToken.wrapped :\n getFewTokenFromOriginalToken(amountToken.wrapped, amountToken.chainId);\n const fewTokenOut = isFewToken(outputToken.wrapped) ?\n outputToken.wrapped :\n getFewTokenFromOriginalToken(outputToken.wrapped, outputToken.chainId);\n\n // build trade for swap calldata\n const trade = buildTrade(amountToken, fewTokenIn, outputToken, fewTokenOut, route.tradeType, routes);\n const data = buildSwapMethodParameters(\n trade,\n swapConfig,\n ChainId.OPTIMISM\n ).calldata;\n\n const [l1GasUsed, l1GasCost] = await calculateOptimismToL1FeeFromCalldata(\n data,\n chainId,\n provider\n );\n return [l1GasUsed, l1GasCost];\n }\n\n function calculateArbitrumToL1SecurityFee(\n routes: RouteWithValidQuote[],\n swapConfig: SwapOptionsUniversalRouter,\n gasData: ArbitrumGasData,\n chainId: ChainId\n ): [BigNumber, BigNumber, BigNumber] {\n const route: RouteWithValidQuote = routes[0]!;\n\n const amountToken =\n route.tradeType == TradeType.EXACT_INPUT\n ? route.amount.currency\n : route.quote.currency;\n const outputToken =\n route.tradeType == TradeType.EXACT_INPUT\n ? route.quote.currency\n : route.amount.currency;\n\n const fewTokenIn = isFewToken(amountToken.wrapped) ?\n amountToken.wrapped :\n getFewTokenFromOriginalToken(amountToken.wrapped, amountToken.chainId);\n const fewTokenOut = isFewToken(outputToken.wrapped) ?\n outputToken.wrapped :\n getFewTokenFromOriginalToken(outputToken.wrapped, outputToken.chainId);\n\n // build trade for swap calldata\n const trade = buildTrade(amountToken, fewTokenIn, outputToken, fewTokenOut, route.tradeType, routes);\n const data = buildSwapMethodParameters(\n trade,\n swapConfig,\n ChainId.ARBITRUM_ONE\n ).calldata;\n return calculateArbitrumToL1FeeFromCalldata(data, gasData, chainId);\n }\n};\n\n// Logs metrics about the diff between original estimatedGasUsed based on heuristics and the simulated gas used.\n// This will help us track the quality of our gas estimation quality per chain.\nexport const logGasEstimationVsSimulationMetrics = (\n route: SwapRoute,\n simulationGasUsed: BigNumber,\n chainId: ChainId\n) => {\n try {\n // Log the diff between original estimatedGasUsed and the simulated gas used\n const estimatedGasUsed = route.estimatedGasUsed.toNumber();\n const simulatedGasUsed = simulationGasUsed.toNumber();\n const diff = estimatedGasUsed - simulatedGasUsed;\n const absDiff = Math.abs(estimatedGasUsed - simulatedGasUsed);\n const misEstimatePercent = (diff / estimatedGasUsed) * 100;\n const misEstimateAbsPercent = (absDiff / estimatedGasUsed) * 100;\n\n log.info(\n {\n estimatedGasUsed: estimatedGasUsed,\n simulatedGasUsed: simulatedGasUsed,\n absDiff: absDiff,\n diff: diff,\n },\n 'Gas used diff between estimatedGasUsed and simulatedGasUsed'\n );\n log.info(\n {\n misEstimateAbsPercent: misEstimateAbsPercent,\n },\n 'Gas used mis-estimate percent'\n );\n\n metric.putMetric(\n `TenderlySimulationGasUsed_AbsDiff_Chain_${chainId}`,\n absDiff,\n MetricLoggerUnit.Count\n );\n metric.putMetric(\n `TenderlySimulationGasUsed_MisEstimateAbsPercent_Chain_${chainId}`,\n misEstimateAbsPercent,\n MetricLoggerUnit.Count\n );\n\n const label = diff >= 0 ? 'OverEstimate' : 'UnderEstimate';\n metric.putMetric(\n `TenderlySimulationGasUsed_${label}Percent_Chain_${chainId}`,\n misEstimatePercent,\n MetricLoggerUnit.Count\n );\n } catch (err) {\n log.error(\n { err: err },\n 'Failed to log diff between original estimatedGasUsed and the simulated gas used'\n );\n }\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooksOptions.js","sourceRoot":"","sources":["../../../src/util/hooksOptions.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,yCAAyB,CAAA;IACzB,mDAAmC,CAAA;AACrC,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB","sourcesContent":["export enum HooksOptions {\n NO_HOOKS = 'NO_HOOKS',\n HOOKS_ONLY = 'HOOKS_ONLY',\n HOOKS_INCLUSIVE = 'HOOKS_INCLUSIVE',\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,4CAA0B;AAC1B,2CAAyB;AACzB,iDAA+B;AAC/B,2CAAyB;AACzB,wCAAsB;AACtB,2CAAyB;AACzB,yCAAuB;AACvB,8CAA4B;AAC5B,2CAAyB","sourcesContent":["export * from './addresses';\nexport * from './amounts';\nexport * from './chains';\nexport * from './hooksOptions';\nexport * from './intent';\nexport * from './log';\nexport * from './metric';\nexport * from './pool';\nexport * from './protocols';\nexport * from './routes';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../../src/util/intent.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,wHAAwH;AACxH,IAAY,MAKX;AALD,WAAY,MAAM;IAChB,6BAAmB,CAAA;IACnB,yBAAe,CAAA;IACf,uBAAa,CAAA;IACb,6BAAmB,CAAA;AACrB,CAAC,EALW,MAAM,GAAN,cAAM,KAAN,cAAM,QAKjB","sourcesContent":["// NOTE: intent is a routing-api concept,\n// but we have to introduce this strongly-typed enum in SOR to ensure some codepath only gets executed during async path\nexport enum INTENT {\n CACHING = 'caching',\n QUOTE = 'quote',\n SWAP = 'swap',\n PRICING = 'pricing',\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l2FeeChains.js","sourceRoot":"","sources":["../../../src/util/l2FeeChains.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEnC,QAAA,aAAa,GAAG;IAC3B,kBAAO,CAAC,QAAQ;IAChB,kBAAO,CAAC,eAAe;IACvB,kBAAO,CAAC,gBAAgB;IACxB,kBAAO,CAAC,IAAI;IACZ,kBAAO,CAAC,WAAW;IACnB,kBAAO,CAAC,KAAK;IACb,kBAAO,CAAC,IAAI;IACZ,kBAAO,CAAC,UAAU;IAClB,kBAAO,CAAC,gBAAgB;IACxB,kBAAO,CAAC,QAAQ;IAChB,kBAAO,CAAC,OAAO;CAChB,CAAC","sourcesContent":["import { ChainId } from '@fewprotocol/sdk-core';\n\nexport const opStackChains = [\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BLAST,\n ChainId.ZORA,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.SONEIUM,\n];\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../../src/util/log.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable */\n\nimport Logger from 'bunyan';\n\nclass NullLogger implements Logger {\n private ERROR_MESSAGE =\n 'NullLogger does not support. Instantiate a valid logger using \"setGlobalLogger\"';\n addStream(_stream: Logger.Stream): void {\n throw new Error(this.ERROR_MESSAGE);\n }\n addSerializers(_serializers: Logger.Serializers): void {\n throw new Error(this.ERROR_MESSAGE);\n }\n child(_options: Object, _simple?: boolean): Logger {\n return this;\n }\n reopenFileStreams(): void {\n throw new Error(this.ERROR_MESSAGE);\n }\n level(): number;\n level(value: Logger.LogLevel): void;\n level(_value?: any): number | void {\n return;\n }\n levels(): number[];\n levels(name: string | number): number;\n levels(name: string | number, value: Logger.LogLevel): void;\n levels(_name?: any, _value?: any): number | void | number[] {\n return;\n }\n fields: any;\n src = true;\n trace(): boolean;\n trace(error: Error, ...params: any[]): void;\n trace(obj: Object, ...params: any[]): void;\n trace(format: any, ...params: any[]): void;\n trace(..._rest: any): boolean | void {\n return true;\n }\n debug(): boolean;\n debug(error: Error, ...params: any[]): void;\n debug(obj: Object, ...params: any[]): void;\n debug(format: any, ...params: any[]): void;\n debug(..._rest: any): boolean | void {\n return true;\n }\n info(): boolean;\n info(error: Error, ...params: any[]): void;\n info(obj: Object, ...params: any[]): void;\n info(format: any, ...params: any[]): void;\n info(..._rest: any): boolean | void {\n return true;\n }\n warn(): boolean;\n warn(error: Error, ...params: any[]): void;\n warn(obj: Object, ...params: any[]): void;\n warn(format: any, ...params: any[]): void;\n warn(..._rest: any): boolean | void {\n return true;\n }\n error(): boolean;\n error(error: Error, ...params: any[]): void;\n error(obj: Object, ...params: any[]): void;\n error(format: any, ...params: any[]): void;\n error(..._rest: any): boolean | void {\n return true;\n }\n fatal(): boolean;\n fatal(error: Error, ...params: any[]): void;\n fatal(obj: Object, ...params: any[]): void;\n fatal(format: any, ...params: any[]): void;\n fatal(..._rest: any): boolean | void {\n return true;\n }\n addListener(\n _event: string | symbol,\n _listener: (...args: any[]) => void\n ): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n on(_event: string | symbol, _listener: (...args: any[]) => void): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n once(_event: string | symbol, _listener: (...args: any[]) => void): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n removeListener(\n _event: string | symbol,\n _listener: (...args: any[]) => void\n ): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n off(_event: string | symbol, _listener: (...args: any[]) => void): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n removeAllListeners(_event?: string | symbol): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n setMaxListeners(_n: number): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n getMaxListeners(): number {\n throw new Error(this.ERROR_MESSAGE);\n }\n listeners(_event: string | symbol): Function[] {\n throw new Error(this.ERROR_MESSAGE);\n }\n rawListeners(_event: string | symbol): Function[] {\n throw new Error(this.ERROR_MESSAGE);\n }\n emit(_event: string | symbol, ..._args: any[]): boolean {\n throw new Error(this.ERROR_MESSAGE);\n }\n listenerCount(_event: string | symbol): number {\n throw new Error(this.ERROR_MESSAGE);\n }\n prependListener(\n _event: string | symbol,\n _listener: (...args: any[]) => void\n ): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n prependOnceListener(\n _event: string | symbol,\n _listener: (...args: any[]) => void\n ): this {\n throw new Error(this.ERROR_MESSAGE);\n }\n eventNames(): (string | symbol)[] {\n throw new Error(this.ERROR_MESSAGE);\n }\n}\n\nexport let log: Logger = new NullLogger();\n\nexport const setGlobalLogger = (_log: Logger) => {\n log = _log;\n};\n"]}
|
|
@@ -159,6 +159,8 @@ function buildTrade(tokenInCurrency, fewTokenInToken, tokenOutCurrency, fewToken
|
|
|
159
159
|
exports.buildTrade = buildTrade;
|
|
160
160
|
function buildSwapMethodParameters(trade, swapConfig, chainId) {
|
|
161
161
|
if (swapConfig.type == __1.SwapType.UNIVERSAL_ROUTER) {
|
|
162
|
+
console.log({ trade }, "trade");
|
|
163
|
+
console.error({ swapConfig }, "swapConfig");
|
|
162
164
|
return Object.assign(Object.assign({}, universal_router_sdk_1.SwapRouter.swapCallParameters(trade, swapConfig)), { to: (0, universal_router_sdk_1.UNIVERSAL_ROUTER_ADDRESS)(swapConfig.version, chainId) });
|
|
163
165
|
}
|
|
164
166
|
else if (swapConfig.type == __1.SwapType.SWAP_ROUTER_02) {
|
|
@@ -173,4 +175,4 @@ function buildSwapMethodParameters(trade, swapConfig, chainId) {
|
|
|
173
175
|
throw new Error(`Unsupported swap type ${swapConfig}`);
|
|
174
176
|
}
|
|
175
177
|
exports.buildSwapMethodParameters = buildSwapMethodParameters;
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kUGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL21ldGhvZFBhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBS21DO0FBQ25DLHNEQUE4RTtBQUM5RSw4RUFJNkM7QUFDN0MsMERBQXVFO0FBQ3ZFLGtEQUE0RDtBQUM1RCxrREFBNEQ7QUFDNUQsa0RBQTREO0FBQzVELG9EQUF1QjtBQUV2QiwwQkFZWTtBQUVaLFNBQWdCLFVBQVUsQ0FDeEIsZUFBeUIsRUFDekIsZUFBc0IsRUFDdEIsZ0JBQTBCLEVBQzFCLGdCQUF1QixFQUN2QixTQUFxQixFQUNyQixZQUFtQztJQUVuQyxnREFBZ0Q7SUFDaEQsTUFBTSxjQUFjLEdBQUcsZ0JBQUMsQ0FBQyxNQUFNLENBQzdCLFlBQVksRUFDWixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxxQkFBUSxDQUFDLEVBQUUsQ0FDdEQsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLGdCQUFDLENBQUMsTUFBTSxDQUM3QixZQUFZLEVBQ1osQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUsscUJBQVEsQ0FBQyxFQUFFLENBQ3RELENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDN0IsWUFBWSxFQUNaLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFRLENBQUMsRUFBRSxDQUN0RCxDQUFDO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDcEMsWUFBWSxFQUNaLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFRLENBQUMsS0FBSyxDQUN6RCxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDaEMs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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"methodParameters.js","sourceRoot":"","sources":["../../../src/util/methodParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n MixedRouteSDK,\n Protocol,\n SwapRouter as SwapRouter02,\n Trade,\n} from '@fewprotocol/router-sdk';\nimport { ChainId, Currency, Token, TradeType } from '@fewprotocol/sdk-core';\nimport {\n UNIVERSAL_ROUTER_ADDRESS,\n SwapRouter as UniversalRouter,\n // UNIVERSAL_ROUTER_ADDRESS,\n} from '@fewprotocol/universal-router-sdk';\nimport { Route as RingFewV2RouteRaw } from '@fewprotocol/v2-sdk';\nimport { Route as V2RouteRaw } from '@fewprotocol/uniswap-v2-sdk';\nimport { Route as V3RouteRaw } from '@fewprotocol/uniswap-v3-sdk';\nimport { Route as V4RouteRaw } from '@fewprotocol/uniswap-v4-sdk';\nimport _ from 'lodash';\n\nimport {\n CurrencyAmount,\n MethodParameters,\n MixedRouteWithValidQuote,\n RouteWithValidQuote,\n SwapOptions,\n SwapType,\n SWAP_ROUTER_02_ADDRESSES,\n RingFewV2RouteWithValidQuote,\n V2RouteWithValidQuote,\n V3RouteWithValidQuote,\n V4RouteWithValidQuote,\n} from '..';\n\nexport function buildTrade<TTradeType extends TradeType>(\n tokenInCurrency: Currency,\n fewTokenInToken: Token,\n tokenOutCurrency: Currency,\n fewTokenOutToken: Token,\n tradeType: TTradeType,\n routeAmounts: RouteWithValidQuote[]\n): Trade<Currency, Currency, TTradeType> {\n /// Removed partition because of new mixedRoutes\n const v4RouteAmounts = _.filter(\n routeAmounts,\n (routeAmount) => routeAmount.protocol === Protocol.V4\n );\n const v3RouteAmounts = _.filter(\n routeAmounts,\n (routeAmount) => routeAmount.protocol === Protocol.V3\n );\n const v2RouteAmounts = _.filter(\n routeAmounts,\n (routeAmount) => routeAmount.protocol === Protocol.V2\n );\n const ringFewV2RouteAmounts = _.filter(\n routeAmounts,\n (routeAmount) => routeAmount.protocol === Protocol.FEWV2\n );\n const mixedRouteAmounts = _.filter(\n routeAmounts,\n (routeAmount) => routeAmount.protocol === Protocol.MIXED\n );\n\n // TODO: ROUTE-248 - refactor route objects for the trade object composition\n const v4Routes = _.map<\n V4RouteWithValidQuote,\n {\n routev4: V4RouteRaw<Currency, Currency>;\n inputAmount: CurrencyAmount;\n outputAmount: CurrencyAmount;\n }\n >(\n v4RouteAmounts as V4RouteWithValidQuote[],\n (routeAmount: V4RouteWithValidQuote) => {\n const { route, amount, quote } = routeAmount;\n\n // The route, amount and quote are all in terms of wrapped tokens.\n // When constructing the Trade object the inputAmount/outputAmount must\n // use native currencies if specified by the user. This is so that the Trade knows to wrap/unwrap.\n if (tradeType == TradeType.EXACT_INPUT) {\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n amount.numerator,\n amount.denominator\n );\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const routeRaw = new V4RouteRaw(\n route.pools,\n amountCurrency.currency,\n quoteCurrency.currency\n );\n\n return {\n routev4: routeRaw,\n inputAmount: amountCurrency,\n outputAmount: quoteCurrency,\n };\n } else {\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n amount.numerator,\n amount.denominator\n );\n\n const routeCurrency = new V4RouteRaw(\n route.pools,\n quoteCurrency.currency,\n amountCurrency.currency\n );\n\n return {\n routev4: routeCurrency,\n inputAmount: quoteCurrency,\n outputAmount: amountCurrency,\n };\n }\n }\n );\n\n const v3Routes = _.map<\n V3RouteWithValidQuote,\n {\n routev3: V3RouteRaw<Currency, Currency>;\n inputAmount: CurrencyAmount;\n outputAmount: CurrencyAmount;\n }\n >(\n v3RouteAmounts as V3RouteWithValidQuote[],\n (routeAmount: V3RouteWithValidQuote) => {\n const { route, amount, quote } = routeAmount;\n\n // The route, amount and quote are all in terms of wrapped tokens.\n // When constructing the Trade object the inputAmount/outputAmount must\n // use native currencies if specified by the user. This is so that the Trade knows to wrap/unwrap.\n if (tradeType == TradeType.EXACT_INPUT) {\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n amount.numerator,\n amount.denominator\n );\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const routeRaw = new V3RouteRaw(\n route.pools,\n amountCurrency.currency,\n quoteCurrency.currency\n );\n\n return {\n routev3: routeRaw,\n inputAmount: amountCurrency,\n outputAmount: quoteCurrency,\n };\n } else {\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n amount.numerator,\n amount.denominator\n );\n\n const routeCurrency = new V3RouteRaw(\n route.pools,\n quoteCurrency.currency,\n amountCurrency.currency\n );\n\n return {\n routev3: routeCurrency,\n inputAmount: quoteCurrency,\n outputAmount: amountCurrency,\n };\n }\n }\n );\n\n const v2Routes = _.map<\n V2RouteWithValidQuote,\n {\n routev2: V2RouteRaw<Currency, Currency>;\n inputAmount: CurrencyAmount;\n outputAmount: CurrencyAmount;\n }\n >(\n v2RouteAmounts as V2RouteWithValidQuote[],\n (routeAmount: V2RouteWithValidQuote) => {\n const { route, amount, quote } = routeAmount;\n\n // The route, amount and quote are all in terms of wrapped tokens.\n // When constructing the Trade object the inputAmount/outputAmount must\n // use native currencies if specified by the user. This is so that the Trade knows to wrap/unwrap.\n if (tradeType == TradeType.EXACT_INPUT) {\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n amount.numerator,\n amount.denominator\n );\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const routeV2SDK = new V2RouteRaw(\n route.pairs,\n amountCurrency.currency,\n quoteCurrency.currency\n );\n\n return {\n routev2: routeV2SDK,\n inputAmount: amountCurrency,\n outputAmount: quoteCurrency,\n };\n } else {\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n quote.numerator,\n quote.denominator\n );\n\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n amount.numerator,\n amount.denominator\n );\n\n const routeV2SDK = new V2RouteRaw(\n route.pairs,\n quoteCurrency.currency,\n amountCurrency.currency\n );\n\n return {\n routev2: routeV2SDK,\n inputAmount: quoteCurrency,\n outputAmount: amountCurrency,\n };\n }\n }\n );\n\n const fewV2Routes = _.map<\n RingFewV2RouteWithValidQuote,\n {\n fewRouteV2: RingFewV2RouteRaw<Currency, Currency>;\n inputAmount: CurrencyAmount;\n outputAmount: CurrencyAmount;\n }\n >(\n ringFewV2RouteAmounts as RingFewV2RouteWithValidQuote[],\n (routeAmount: RingFewV2RouteWithValidQuote) => {\n const { route, amount, quote } = routeAmount;\n\n // The route, amount and quote are all in terms of wrapped tokens.\n // When constructing the Trade object the inputAmount/outputAmount must\n // use native currencies if specified by the user. This is so that the Trade knows to wrap/unwrap.\n if (tradeType == TradeType.EXACT_INPUT) {\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n fewTokenInToken,\n amount.numerator,\n amount.denominator\n );\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n fewTokenOutToken,\n quote.numerator,\n quote.denominator\n );\n\n const ringFewRouteV2SDK = new RingFewV2RouteRaw(\n route.pairs,\n amountCurrency.currency,\n quoteCurrency.currency\n );\n\n return {\n fewRouteV2: ringFewRouteV2SDK,\n inputAmount: amountCurrency,\n outputAmount: quoteCurrency,\n };\n } else {\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n fewTokenInToken,\n quote.numerator,\n quote.denominator\n );\n\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n fewTokenOutToken,\n amount.numerator,\n amount.denominator\n );\n\n const ringFewRouteV2SDK = new RingFewV2RouteRaw(\n route.pairs,\n quoteCurrency.currency,\n amountCurrency.currency\n );\n\n return {\n fewRouteV2: ringFewRouteV2SDK,\n inputAmount: quoteCurrency,\n outputAmount: amountCurrency,\n };\n }\n }\n );\n\n const mixedRoutes = _.map<\n MixedRouteWithValidQuote,\n {\n mixedRoute: MixedRouteSDK<Currency, Currency>;\n inputAmount: CurrencyAmount;\n outputAmount: CurrencyAmount;\n }\n >(\n mixedRouteAmounts as MixedRouteWithValidQuote[],\n (routeAmount: MixedRouteWithValidQuote) => {\n const { route, amount, quote } = routeAmount;\n\n if (tradeType != TradeType.EXACT_INPUT) {\n throw new Error(\n 'Mixed routes are only supported for exact input trades'\n );\n }\n\n // The route, amount and quote are all in terms of wrapped tokens.\n // When constructing the Trade object the inputAmount/outputAmount must\n // use native currencies if specified by the user. This is so that the Trade knows to wrap/unwrap.\n const amountCurrency = CurrencyAmount.fromFractionalAmount(\n tokenInCurrency,\n amount.numerator,\n amount.denominator\n );\n const quoteCurrency = CurrencyAmount.fromFractionalAmount(\n tokenOutCurrency,\n quote.numerator,\n quote.denominator\n );\n\n // we cannot retain fake pools for mixed routes,\n // when we generate the ur swap calldata\n const routeRaw = new MixedRouteSDK(\n route.pools,\n amountCurrency.currency,\n quoteCurrency.currency\n );\n\n return {\n mixedRoute: routeRaw,\n inputAmount: amountCurrency,\n outputAmount: quoteCurrency,\n };\n }\n );\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const trade = new Trade({\n fewV2Routes,\n v2Routes,\n v3Routes,\n v4Routes,\n mixedRoutes,\n tradeType,\n });\n\n return trade;\n}\n\nexport function buildSwapMethodParameters(\n trade: Trade<Currency, Currency, TradeType>,\n swapConfig: SwapOptions,\n chainId: ChainId\n): MethodParameters {\n if (swapConfig.type == SwapType.UNIVERSAL_ROUTER) {\n return {\n ...UniversalRouter.swapCallParameters(trade, swapConfig),\n to: UNIVERSAL_ROUTER_ADDRESS(swapConfig.version, chainId),\n };\n } else if (swapConfig.type == SwapType.SWAP_ROUTER_02) {\n const { recipient, slippageTolerance, deadline, inputTokenPermit } =\n swapConfig;\n\n return {\n ...SwapRouter02.swapCallParameters(trade, {\n recipient,\n slippageTolerance,\n deadlineOrPreviousBlockhash: deadline,\n inputTokenPermit,\n }),\n to: SWAP_ROUTER_02_ADDRESSES(chainId),\n };\n }\n\n throw new Error(`Unsupported swap type ${swapConfig}`);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric.js","sourceRoot":"","sources":["../../../src/util/metric.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAE5B,IAAY,gBA4BX;AA5BD,WAAY,gBAAgB;IAC1B,uCAAmB,CAAA;IACnB,iDAA6B,CAAA;IAC7B,iDAA6B,CAAA;IAC7B,mCAAe,CAAA;IACf,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,iCAAa,CAAA;IACb,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,yCAAqB,CAAA;IACrB,uCAAmB,CAAA;IACnB,mCAAe,CAAA;IACf,mDAA+B,CAAA;IAC/B,2DAAuC,CAAA;IACvC,2DAAuC,CAAA;IACvC,2DAAuC,CAAA;IACvC,2DAAuC,CAAA;IACvC,iDAA6B,CAAA;IAC7B,yDAAqC,CAAA;IACrC,yDAAqC,CAAA;IACrC,yDAAqC,CAAA;IACrC,yDAAqC,CAAA;IACrC,mDAA+B,CAAA;IAC/B,iCAAa,CAAA;AACf,CAAC,EA5BW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QA4B3B;AAED,MAAsB,OAAO;CAM5B;AAND,0BAMC;AAOD,MAAa,YAAa,SAAQ,OAAO;IAGvC,YAAY,OAAuB;QACjC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,SAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,GAAW,EAAE,KAAc;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEM,aAAa,CAAC,UAAkC;QACrD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAEM,SAAS,CAAC,GAAW,EAAE,KAAa,EAAE,IAAuB;QAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EACpB,aAAa,GAAG,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACnD,CAAC;IACJ,CAAC;CACF;AAtBD,oCAsBC;AAEU,QAAA,MAAM,GAAY,IAAI,YAAY,EAAE,CAAC;AAEzC,MAAM,eAAe,GAAG,CAAC,OAAgB,EAAE,EAAE;IAClD,cAAM,GAAG,OAAO,CAAC;AACnB,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B","sourcesContent":["import Logger from 'bunyan';\n\nimport { log } from './log';\n\nexport enum MetricLoggerUnit {\n Seconds = 'Seconds',\n Microseconds = 'Microseconds',\n Milliseconds = 'Milliseconds',\n Bytes = 'Bytes',\n Kilobytes = 'Kilobytes',\n Megabytes = 'Megabytes',\n Gigabytes = 'Gigabytes',\n Terabytes = 'Terabytes',\n Bits = 'Bits',\n Kilobits = 'Kilobits',\n Megabits = 'Megabits',\n Gigabits = 'Gigabits',\n Terabits = 'Terabits',\n Percent = 'Percent',\n Count = 'Count',\n BytesPerSecond = 'Bytes/Second',\n KilobytesPerSecond = 'Kilobytes/Second',\n MegabytesPerSecond = 'Megabytes/Second',\n GigabytesPerSecond = 'Gigabytes/Second',\n TerabytesPerSecond = 'Terabytes/Second',\n BitsPerSecond = 'Bits/Second',\n KilobitsPerSecond = 'Kilobits/Second',\n MegabitsPerSecond = 'Megabits/Second',\n GigabitsPerSecond = 'Gigabits/Second',\n TerabitsPerSecond = 'Terabits/Second',\n CountPerSecond = 'Count/Second',\n None = 'None',\n}\n\nexport abstract class IMetric {\n abstract setProperty(key: string, value: unknown): void;\n\n abstract putDimensions(dimensions: Record<string, string>): void;\n\n abstract putMetric(key: string, value: number, unit?: MetricLoggerUnit): void;\n}\n\ninterface MetricContext {\n chainId: number;\n networkName: string;\n}\n\nexport class MetricLogger extends IMetric {\n private log: Logger;\n\n constructor(context?: MetricContext) {\n super();\n this.log = log.child(context || {});\n }\n\n public setProperty(key: string, value: unknown): void {\n this.log = this.log.child({ [key]: value });\n }\n\n public putDimensions(dimensions: Record<string, string>): void {\n this.log = this.log.child(dimensions);\n }\n\n public putMetric(key: string, value: number, unit?: MetricLoggerUnit): void {\n this.log.info(\n { key, value, unit },\n `[Metric]: ${key}: ${value} | ${unit ? unit : ''}`\n );\n }\n}\n\nexport let metric: IMetric = new MetricLogger();\n\nexport const setGlobalMetric = (_metric: IMetric) => {\n metric = _metric;\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixedRouteFilterOutV4Pools.js","sourceRoot":"","sources":["../../../src/util/mixedRouteFilterOutV4Pools.ts"],"names":[],"mappings":";;;AAAA,gEAA6D;AAG7D,SAAgB,yBAAyB,CAAC,KAAiB;IACzD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,OAAO,IAAI,YAAY,qBAAM,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,8DAIC;AAED,SAAgB,0BAA0B,CAAC,MAAoB;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAJD,gEAIC","sourcesContent":["import { Pool as V4Pool } from '@fewprotocol/uniswap-v4-sdk';\nimport { MixedRoute } from '../routers';\n\nexport function mixedRouteContainsV4Pools(route: MixedRoute): boolean {\n return route.pools.some((pool) => {\n return pool instanceof V4Pool;\n });\n}\n\nexport function mixedRouteFilterOutV4Pools(routes: MixedRoute[]): MixedRoute[] {\n return routes.filter((route) => {\n return !mixedRouteContainsV4Pools(route);\n });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onchainQuoteProviderConfigs.js","sourceRoot":"","sources":["../../../src/util/onchainQuoteProviderConfigs.ts"],"names":[],"mappings":"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","sourcesContent":["import { ChainId } from '@fewprotocol/sdk-core';\n\nimport {\n BatchParams,\n BlockNumberConfig,\n FailureOverrides,\n QuoteRetryOptions,\n} from '../providers';\n\nexport const NETWORKS_WITH_SAME_RETRY_OPTIONS = Object.values(\n ChainId\n) as ChainId[];\n\nexport function constructSameRetryOptionsMap<T extends QuoteRetryOptions>(\n retryOptions: T,\n additionalNetworks: ChainId[] = []\n): { [chainId: number]: T } {\n return NETWORKS_WITH_SAME_RETRY_OPTIONS.concat(additionalNetworks).reduce<{\n [chainId: number]: T;\n }>((memo, chainId) => {\n memo[chainId] = retryOptions;\n return memo;\n }, {});\n}\n\nexport const DEFAULT_RETRY_OPTIONS: QuoteRetryOptions = {\n retries: 2,\n minTimeout: 100,\n maxTimeout: 1000,\n};\n\nexport const RETRY_OPTIONS = {\n ...constructSameRetryOptionsMap(DEFAULT_RETRY_OPTIONS),\n};\n\nexport const NETWORKS_WITH_SAME_BATCH_PARAMS = Object.values(\n ChainId\n) as ChainId[];\n\nexport function constructSameBatchParamsMap<T extends BatchParams>(\n batchParams: T,\n additionalNetworks: ChainId[] = []\n): { [chainId: number]: T } {\n return NETWORKS_WITH_SAME_BATCH_PARAMS.concat(additionalNetworks).reduce<{\n [chainId: number]: T;\n }>((memo, chainId) => {\n memo[chainId] = batchParams;\n return memo;\n }, {});\n}\n\nexport const DEFAULT_BATCH_PARAMS: BatchParams = {\n multicallChunk: 210,\n gasLimitPerCall: 705_000,\n quoteMinSuccessRate: 0.15,\n};\n\nexport const BATCH_PARAMS = {\n ...constructSameBatchParamsMap(DEFAULT_BATCH_PARAMS),\n};\n\nexport const NETWORKS_WITH_SAME_GAS_ERROR_FAILURE_OVERRIDES = Object.values(\n ChainId\n) as ChainId[];\n\nexport function constructSameGasErrorFailureOverridesMap<\n T extends FailureOverrides\n>(\n gasErrorFailureOverrides: T,\n additionalNetworks: ChainId[] = []\n): { [chainId: number]: T } {\n return NETWORKS_WITH_SAME_GAS_ERROR_FAILURE_OVERRIDES.concat(\n additionalNetworks\n ).reduce<{\n [chainId: number]: T;\n }>((memo, chainId) => {\n memo[chainId] = gasErrorFailureOverrides;\n return memo;\n }, {});\n}\n\nexport const DEFAULT_GAS_ERROR_FAILURE_OVERRIDES: FailureOverrides = {\n gasLimitOverride: 2_000_000,\n multicallChunk: 70,\n};\n\nexport const GAS_ERROR_FAILURE_OVERRIDES = {\n ...constructSameGasErrorFailureOverridesMap(\n DEFAULT_GAS_ERROR_FAILURE_OVERRIDES\n ),\n};\n\nexport const NETWORKS_WITH_SAME_SUCCESS_RATE_FAILURE_OVERRIDES = Object.values(\n ChainId\n) as ChainId[];\n\nexport function constructSameSuccessRateFailureOverridesMap<\n T extends FailureOverrides\n>(\n successRateFailureOverrides: T,\n additionalNetworks: ChainId[] = []\n): { [chainId: number]: T } {\n return NETWORKS_WITH_SAME_SUCCESS_RATE_FAILURE_OVERRIDES.concat(\n additionalNetworks\n ).reduce<{\n [chainId: number]: T;\n }>((memo, chainId) => {\n memo[chainId] = successRateFailureOverrides;\n return memo;\n }, {});\n}\n\nexport const DEFAULT_SUCCESS_RATE_FAILURE_OVERRIDES: FailureOverrides = {\n gasLimitOverride: 1_300_000,\n multicallChunk: 110,\n};\n\nexport const SUCCESS_RATE_FAILURE_OVERRIDES = {\n ...constructSameSuccessRateFailureOverridesMap(\n DEFAULT_SUCCESS_RATE_FAILURE_OVERRIDES\n ),\n};\n\nexport const NETWORKS_WITH_SAME_BLOCK_NUMBER_CONFIGS = Object.values(\n ChainId\n) as ChainId[];\n\nexport function constructSameBlockNumberConfigsMap<T extends BlockNumberConfig>(\n blockNumberConfigs: T,\n additionalNetworks: ChainId[] = []\n): { [chainId: number]: T } {\n return NETWORKS_WITH_SAME_BLOCK_NUMBER_CONFIGS.concat(\n additionalNetworks\n ).reduce<{\n [chainId: number]: T;\n }>((memo, chainId) => {\n memo[chainId] = blockNumberConfigs;\n return memo;\n }, {});\n}\n\nexport const DEFAULT_BLOCK_NUMBER_CONFIGS: BlockNumberConfig = {\n baseBlockOffset: 0,\n rollback: { enabled: false },\n};\n\nexport const BLOCK_NUMBER_CONFIGS = {\n ...constructSameBlockNumberConfigsMap(DEFAULT_BLOCK_NUMBER_CONFIGS),\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../src/util/pool.ts"],"names":[],"mappings":"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","sourcesContent":["import { ADDRESS_ZERO } from '@fewprotocol/router-sdk';\nimport { ChainId } from '@fewprotocol/sdk-core';\nimport { Pool as V4Pool } from '@fewprotocol/uniswap-v4-sdk';\n\nimport { nativeOnChain } from './chains';\n\nconst FAKE_TICK_SPACING = 0;\n\nexport const V4_ETH_WETH_FAKE_POOL: { [chainId in ChainId]: V4Pool } = {\n [ChainId.HYPER_MAINNET]: new V4Pool(\n nativeOnChain(ChainId.HYPER_MAINNET),\n nativeOnChain(ChainId.HYPER_MAINNET).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.MAINNET]: new V4Pool(\n nativeOnChain(ChainId.MAINNET),\n nativeOnChain(ChainId.MAINNET).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.GOERLI]: new V4Pool(\n nativeOnChain(ChainId.GOERLI),\n nativeOnChain(ChainId.GOERLI).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.SEPOLIA),\n nativeOnChain(ChainId.SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.OPTIMISM]: new V4Pool(\n nativeOnChain(ChainId.OPTIMISM),\n nativeOnChain(ChainId.OPTIMISM).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.OPTIMISM_GOERLI]: new V4Pool(\n nativeOnChain(ChainId.OPTIMISM_GOERLI),\n nativeOnChain(ChainId.OPTIMISM_GOERLI).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.OPTIMISM_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.OPTIMISM_SEPOLIA),\n nativeOnChain(ChainId.OPTIMISM_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ARBITRUM_ONE]: new V4Pool(\n nativeOnChain(ChainId.ARBITRUM_ONE),\n nativeOnChain(ChainId.ARBITRUM_ONE).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ARBITRUM_GOERLI]: new V4Pool(\n nativeOnChain(ChainId.ARBITRUM_GOERLI),\n nativeOnChain(ChainId.ARBITRUM_GOERLI).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ARBITRUM_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.ARBITRUM_SEPOLIA),\n nativeOnChain(ChainId.ARBITRUM_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.POLYGON]: new V4Pool(\n nativeOnChain(ChainId.POLYGON),\n nativeOnChain(ChainId.POLYGON).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.POLYGON_MUMBAI]: new V4Pool(\n nativeOnChain(ChainId.POLYGON_MUMBAI),\n nativeOnChain(ChainId.POLYGON_MUMBAI).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.CELO]: new V4Pool(\n nativeOnChain(ChainId.CELO),\n nativeOnChain(ChainId.CELO).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.CELO_ALFAJORES]: new V4Pool(\n nativeOnChain(ChainId.CELO_ALFAJORES),\n nativeOnChain(ChainId.CELO_ALFAJORES).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.GNOSIS]: new V4Pool(\n nativeOnChain(ChainId.GNOSIS),\n nativeOnChain(ChainId.GNOSIS).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.MOONBEAM]: new V4Pool(\n nativeOnChain(ChainId.MOONBEAM),\n nativeOnChain(ChainId.MOONBEAM).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BNB]: new V4Pool(\n nativeOnChain(ChainId.BNB),\n nativeOnChain(ChainId.BNB).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.AVALANCHE]: new V4Pool(\n nativeOnChain(ChainId.AVALANCHE),\n nativeOnChain(ChainId.AVALANCHE).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BASE_GOERLI]: new V4Pool(\n nativeOnChain(ChainId.BASE_GOERLI),\n nativeOnChain(ChainId.BASE_GOERLI).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BASE_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.BASE_SEPOLIA),\n nativeOnChain(ChainId.BASE_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BASE]: new V4Pool(\n nativeOnChain(ChainId.BASE),\n nativeOnChain(ChainId.BASE).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ZORA]: new V4Pool(\n nativeOnChain(ChainId.ZORA),\n nativeOnChain(ChainId.ZORA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ZORA_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.ZORA_SEPOLIA),\n nativeOnChain(ChainId.ZORA_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ROOTSTOCK]: new V4Pool(\n nativeOnChain(ChainId.ROOTSTOCK),\n nativeOnChain(ChainId.ROOTSTOCK).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BLAST]: new V4Pool(\n nativeOnChain(ChainId.BLAST),\n nativeOnChain(ChainId.BLAST).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.ZKSYNC]: new V4Pool(\n nativeOnChain(ChainId.ZKSYNC),\n nativeOnChain(ChainId.ZKSYNC).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.WORLDCHAIN]: new V4Pool(\n nativeOnChain(ChainId.WORLDCHAIN),\n nativeOnChain(ChainId.WORLDCHAIN).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.UNICHAIN_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.UNICHAIN_SEPOLIA),\n nativeOnChain(ChainId.UNICHAIN_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.UNICHAIN]: new V4Pool(\n nativeOnChain(ChainId.UNICHAIN),\n nativeOnChain(ChainId.UNICHAIN).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.MONAD_TESTNET]: new V4Pool(\n nativeOnChain(ChainId.MONAD_TESTNET),\n nativeOnChain(ChainId.MONAD_TESTNET).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.BLAST_SEPOLIA]: new V4Pool(\n nativeOnChain(ChainId.BLAST_SEPOLIA),\n nativeOnChain(ChainId.BLAST_SEPOLIA).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.STORY_MAINNET]: new V4Pool(\n nativeOnChain(ChainId.STORY_MAINNET),\n nativeOnChain(ChainId.STORY_MAINNET).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.STORY_ODYSSEY]: new V4Pool(\n nativeOnChain(ChainId.STORY_ODYSSEY),\n nativeOnChain(ChainId.STORY_ODYSSEY).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n [ChainId.SONEIUM]: new V4Pool(\n nativeOnChain(ChainId.SONEIUM),\n nativeOnChain(ChainId.SONEIUM).wrapped,\n 0,\n FAKE_TICK_SPACING,\n ADDRESS_ZERO,\n 79228162514264337593543950336,\n 0,\n 0\n ),\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocols.js","sourceRoot":"","sources":["../../../src/util/protocols.ts"],"names":[],"mappings":";;;AAAA,wDAAmD;AAE5C,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAY,EAAE;IACxD,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE;QAC9B,KAAK,IAAI;YACP,OAAO,qBAAQ,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,qBAAQ,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI;YACP,OAAO,qBAAQ,CAAC,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,qBAAQ,CAAC,KAAK,CAAC;QACxB,KAAK,OAAO;YACV,OAAO,qBAAQ,CAAC,KAAK,CAAC;QACxB;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;AACH,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB","sourcesContent":["import { Protocol } from '@fewprotocol/router-sdk';\n\nexport const TO_PROTOCOL = (protocol: string): Protocol => {\n switch (protocol.toLowerCase()) {\n case 'v4':\n return Protocol.V4;\n case 'v3':\n return Protocol.V3;\n case 'v2':\n return Protocol.V2;\n case 'fewv2':\n return Protocol.FEWV2;\n case 'mixed':\n return Protocol.MIXED;\n default:\n throw new Error(`Unknown protocol: {id}`);\n }\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/util/routes.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAmD;AAEnD,oDAAmE;AACnE,gEAAmD;AACnD,gEAA6D;AAC7D,gEAA6D;AAC7D,gDAAyD;AACzD,oDAAuB;AAOvB,uFAA0E;AAG1E,2CAAwD;AAExD,wBAA0D;AAEnD,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAc,EAAE;IAClE,QAAQ,KAAK,CAAC,QAAQ,EAAE;QACtB,KAAK,qBAAQ,CAAC,EAAE;YACd,OAAO,KAAK,CAAC,YAAY,CAAC;QAC5B,KAAK,qBAAQ,CAAC,EAAE;YACd,OAAO,KAAK,CAAC,SAAS,CAAC;QACzB,KAAK,qBAAQ,CAAC,EAAE,CAAC;QACjB,KAAK,qBAAQ,CAAC,KAAK,CAAC;QACpB,KAAK,qBAAQ,CAAC,KAAK;YACjB,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACjE;AACH,CAAC,CAAC;AAbW,QAAA,aAAa,iBAaxB;AAEK,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAW,EAAE;IAC9D,QAAQ,KAAK,CAAC,QAAQ,EAAE;QACtB,KAAK,qBAAQ,CAAC,EAAE,CAAC;QACjB,KAAK,qBAAQ,CAAC,EAAE,CAAC;QACjB,KAAK,qBAAQ,CAAC,KAAK;YACjB,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,KAAK,qBAAQ,CAAC,EAAE;YACd,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,KAAK,qBAAQ,CAAC,KAAK;YACjB,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACjE;AACH,CAAC,CAAC;AAbW,QAAA,YAAY,gBAavB;AAEK,MAAM,YAAY,GAAG,CAAC,IAAW,EAAU,EAAE;IAClD,IAAI,IAAI,YAAY,qBAAM,EAAE;QAC1B,OAAO,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,qBAAM,CAAC,SAAS,CAClD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,GAAG,CAAC;KACN;SAAM,IAAI,IAAI,YAAY,qBAAM,EAAE;QACjC,OAAO,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,qBAAM,CAAC,UAAU,CACnD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,SAAS,EACT,qCAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,GAAG,CAAC;KACN;SAAM,IAAI,IAAI,YAAY,qBAAI,EAAE;QAC/B,OAAO,QAAQ,qBAAI,CAAC,UAAU,CAC3B,IAAa,CAAC,MAAM,EACpB,IAAa,CAAC,MAAM,CACtB,GAAG,CAAC;KACN;SAAM,IAAI,IAAI,YAAY,aAAU,EAAE;QACrC,OAAO,QAAQ,aAAU,CAAC,UAAU,CACjC,IAAmB,CAAC,MAAM,EAC1B,IAAmB,CAAC,MAAM,CAC5B,GAAG,CAAC;KACN;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7D;AACH,CAAC,CAAC;AA9BW,QAAA,YAAY,gBA8BvB;AAEK,MAAM,aAAa,GAAG,CAAC,KAAsB,EAAU,EAAE;IAC9D,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,gBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,gBAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACxC,IAAI,IAAI,YAAY,qBAAI,EAAE;YACxB,OAAO,QAAQ,qBAAI,CAAC,UAAU,CAC3B,IAAa,CAAC,MAAM,EACpB,IAAa,CAAC,MAAM,CACtB,GAAG,CAAC;SACN;aAAM,IAAI,IAAI,YAAY,aAAU,EAAE;YACrC,OAAO,QAAQ,aAAU,CAAC,UAAU,CACjC,IAAmB,CAAC,MAAM,EAC1B,IAAmB,CAAC,MAAM,CAC5B,GAAG,CAAC;SACN;aAAM,IAAI,IAAI,YAAY,qBAAM,EAAE;YACjC,OAAO,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,qBAAM,CAAC,UAAU,CACnD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,SAAS,EACT,qCAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CACxC,GAAG,CAAC;SACN;aAAM,IAAI,IAAI,YAAY,qBAAM,EAAE;YACjC,iDAAiD;YACjD,4FAA4F;YAC5F,IACE,IAAI,CAAC,WAAW;gBAChB,wBAAqB,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,WAAW,EAC1D;gBACA,OAAO,OAAO,CAAC;aAChB;YAED,OAAO,OAAO,IAAI,CAAC,GAAG,GAAG,KAAK,MAAM,qBAAM,CAAC,SAAS,CAClD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,KAAK,CACX,GAAG,CAAC;SACN;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7D;QAED,OAAO,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,OAAO,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACzC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;YAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SAC/B;KACF;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3B,CAAC,CAAC;AAxDW,QAAA,aAAa,iBAwDxB;AAEK,MAAM,oBAAoB,GAAG,CAClC,YAAmC,EAC3B,EAAE;IACV,MAAM,KAAK,GAAG,gBAAC,CAAC,MAAM,CACpB,YAAY,EACZ,CAAC,KAAqB,EAAE,GAAwB,EAAE,EAAE;QAClD,OAAO,IAAA,uBAAK,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC,EACD,iBAAc,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAClE,CAAC;IAEF,MAAM,YAAY,GAAG,gBAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACvE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,kBAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACpE,kFAAkF;QAClF,OAAO,IACL,QAAQ,IAAI,qBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAChD,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAA,qBAAa,EAAC,KAAK,CAAC,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;AArBW,QAAA,oBAAoB,wBAqB/B;AAEF,SAAgB,yBAAyB,CACvC,YAA2B,EAC3B,aAAiC;IAEjC,yEAAyE;IACzE,qGAAqG;IACrG,IACE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,yBAAyB;;QACxC,yEAAyE;QACzE,wGAAwG;QACxG,mDAAmD;QACnD,0BAA0B;QAC1B,sIAAsI;QACtI,iIAAiI;QACjI,sGAAsG;QACtG,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,sBAAsB,CAAA,EACrC;QACA,OAAO,KAAK,CAAC;KACd;IAED,MAAM,6BAA6B,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACxE,QAAQ,KAAK,CAAC,QAAQ,EAAE;YACtB,KAAK,qBAAQ,CAAC,KAAK;gBACjB,OAAO,CACJ,KAAK,CAAC,KAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBAChD,OAAO,yBAAyB,CAC9B,IAAI,EACJ,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,0BAA0B,CAC1C,CAAC;gBACJ,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CACd,CAAC;YACJ;gBACE,OAAO,KAAK,CAAC;SAChB;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,6BAA6B,KAAK,SAAS,CAAC;AACrD,CAAC;AArCD,8DAqCC;AAED,SAAS,yBAAyB,CAChC,IAAW,EACX,0BAAuC;;IAEvC,IAAI,IAAI,YAAY,qBAAM,EAAE;QAC1B,OAAO,MAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAE,QAAQ,CAAC,qBAAQ,CAAC,EAAE,CAAC,mCAAI,KAAK,CAAC;KACnE;SAAM,IAAI,IAAI,YAAY,qBAAM,EAAE;QACjC,OAAO,MAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAE,QAAQ,CAAC,qBAAQ,CAAC,EAAE,CAAC,mCAAI,KAAK,CAAC;KACnE;SAAM,IAAI,IAAI,YAAY,qBAAI,EAAE;QAC/B,OAAO,MAAA,0BAA0B,aAA1B,0BAA0B,uBAA1B,0BAA0B,CAAE,QAAQ,CAAC,qBAAQ,CAAC,EAAE,CAAC,mCAAI,KAAK,CAAC;KACnE;SAAM;QACL,OAAO,KAAK,CAAC;KACd;AACH,CAAC","sourcesContent":["import { Protocol } from '@fewprotocol/router-sdk';\nimport { TPool } from '@fewprotocol/router-sdk';\nimport { ChainId, Currency, Percent } from '@fewprotocol/sdk-core';\nimport { Pair } from '@fewprotocol/uniswap-v2-sdk';\nimport { Pool as V3Pool } from '@fewprotocol/uniswap-v3-sdk';\nimport { Pool as V4Pool } from '@fewprotocol/uniswap-v4-sdk';\nimport { Pair as RingV2Pair } from '@fewprotocol/v2-sdk';\nimport _ from 'lodash';\n\nimport { CachedRoutes } from '../providers';\nimport {\n AlphaRouterConfig,\n RouteWithValidQuote,\n} from '../routers/alpha-router';\nimport { addFn } from '../routers/alpha-router/functions/best-swap-route';\nimport { MixedRoute, SupportedRoutes } from '../routers/router';\n\nimport { V3_CORE_FACTORY_ADDRESSES } from './addresses';\n\nimport { CurrencyAmount, V4_ETH_WETH_FAKE_POOL } from '.';\n\nexport const routeToTokens = (route: SupportedRoutes): Currency[] => {\n switch (route.protocol) {\n case Protocol.V4:\n return route.currencyPath;\n case Protocol.V3:\n return route.tokenPath;\n case Protocol.V2:\n case Protocol.FEWV2:\n case Protocol.MIXED:\n return route.path;\n default:\n throw new Error(`Unsupported route ${JSON.stringify(route)}`);\n }\n};\n\nexport const routeToPools = (route: SupportedRoutes): TPool[] => {\n switch (route.protocol) {\n case Protocol.V4:\n case Protocol.V3:\n case Protocol.MIXED:\n return route.pools;\n case Protocol.V2:\n return route.pairs;\n case Protocol.FEWV2:\n return route.pairs;\n default:\n throw new Error(`Unsupported route ${JSON.stringify(route)}`);\n }\n};\n\nexport const poolToString = (pool: TPool): string => {\n if (pool instanceof V4Pool) {\n return ` -- ${pool.fee / 10000}% [${V4Pool.getPoolId(\n pool.token0,\n pool.token1,\n pool.fee,\n pool.tickSpacing,\n pool.hooks\n )}]`;\n } else if (pool instanceof V3Pool) {\n return ` -- ${pool.fee / 10000}% [${V3Pool.getAddress(\n pool.token0,\n pool.token1,\n pool.fee,\n undefined,\n V3_CORE_FACTORY_ADDRESSES[pool.chainId]\n )}]`;\n } else if (pool instanceof Pair) {\n return ` -- [${Pair.getAddress(\n (pool as Pair).token0,\n (pool as Pair).token1\n )}]`;\n } else if (pool instanceof RingV2Pair) {\n return ` -- [${RingV2Pair.getAddress(\n (pool as RingV2Pair).token0,\n (pool as RingV2Pair).token1\n )}]`;\n } else {\n throw new Error(`Unsupported pool ${JSON.stringify(pool)}`);\n }\n};\n\nexport const routeToString = (route: SupportedRoutes): string => {\n const routeStr = [];\n const tokens = routeToTokens(route);\n const tokenPath = _.map(tokens, (token) => `${token.symbol}`);\n const pools = routeToPools(route);\n const poolFeePath = _.map(pools, (pool) => {\n if (pool instanceof Pair) {\n return ` -- [${Pair.getAddress(\n (pool as Pair).token0,\n (pool as Pair).token1\n )}]`;\n } else if (pool instanceof RingV2Pair) {\n return ` -- [${RingV2Pair.getAddress(\n (pool as RingV2Pair).token0,\n (pool as RingV2Pair).token1\n )}]`;\n } else if (pool instanceof V3Pool) {\n return ` -- ${pool.fee / 10000}% [${V3Pool.getAddress(\n pool.token0,\n pool.token1,\n pool.fee,\n undefined,\n V3_CORE_FACTORY_ADDRESSES[pool.chainId]\n )}]`;\n } else if (pool instanceof V4Pool) {\n // Special case in the case of ETH/WETH fake pool\n // where we do not want to return the fake pool in the route string as it is not a real pool\n if (\n pool.tickSpacing ===\n V4_ETH_WETH_FAKE_POOL[pool.chainId as ChainId].tickSpacing\n ) {\n return ' -- ';\n }\n\n return ` -- ${pool.fee / 10000}% [${V4Pool.getPoolId(\n pool.token0,\n pool.token1,\n pool.fee,\n pool.tickSpacing,\n pool.hooks\n )}]`;\n } else {\n throw new Error(`Unsupported pool ${JSON.stringify(pool)}`);\n }\n\n return `${poolToString(pool)} --> `;\n });\n\n for (let i = 0; i < tokenPath.length; i++) {\n routeStr.push(tokenPath[i]);\n if (i < poolFeePath.length) {\n routeStr.push(poolFeePath[i]);\n }\n }\n\n return routeStr.join('');\n};\n\nexport const routeAmountsToString = (\n routeAmounts: RouteWithValidQuote[]\n): string => {\n const total = _.reduce(\n routeAmounts,\n (total: CurrencyAmount, cur: RouteWithValidQuote) => {\n return addFn(total, cur.amount);\n },\n CurrencyAmount.fromRawAmount(routeAmounts[0]!.amount.currency, 0)\n );\n\n const routeStrings = _.map(routeAmounts, ({ protocol, route, amount }) => {\n const portion = amount.divide(total);\n const percent = new Percent(portion.numerator, portion.denominator);\n /// @dev special case for MIXED routes we want to show user friendly V2+V3 instead\n return `[${\n protocol == Protocol.MIXED ? 'V2 + V3 + V4' : protocol\n }] ${percent.toFixed(2)}% = ${routeToString(route)}`;\n });\n\n return _.join(routeStrings, ', ');\n};\n\nexport function shouldWipeoutCachedRoutes(\n cachedRoutes?: CachedRoutes,\n routingConfig?: AlphaRouterConfig\n): boolean {\n // We want to roll out the mixed route with UR v1_2 with percent control,\n // along with the cached routes so that we can test the performance of the mixed route with UR v1_2ss\n if (\n routingConfig?.enableMixedRouteWithUR1_2 &&\n // In case of optimisticCachedRoutes, we don't want to wipe out the cache\n // This is because the upstream client will indicate that it's a perf sensitive (likely online) request,\n // such that we should still use the cached routes.\n // In case of routing-api,\n // when intent=quote, optimisticCachedRoutes will be true, it means it's an online quote request, and we should use the cached routes.\n // when intent=caching, optimisticCachedRoutes will be false, it means it's an async routing lambda invocation for the benefit of\n // non-perf-sensitive, so that we can nullify the retrieved cached routes, if certain condition meets.\n routingConfig?.optimisticCachedRoutes\n ) {\n return false;\n }\n\n const containsExcludedProtocolPools = cachedRoutes?.routes.find((route) => {\n switch (route.protocol) {\n case Protocol.MIXED:\n return (\n (route.route as MixedRoute).pools.filter((pool) => {\n return poolIsInExcludedProtocols(\n pool,\n routingConfig?.excludedProtocolsFromMixed\n );\n }).length > 0\n );\n default:\n return false;\n }\n });\n\n return containsExcludedProtocolPools !== undefined;\n}\n\nfunction poolIsInExcludedProtocols(\n pool: TPool,\n excludedProtocolsFromMixed?: Protocol[]\n): boolean {\n if (pool instanceof V4Pool) {\n return excludedProtocolsFromMixed?.includes(Protocol.V4) ?? false;\n } else if (pool instanceof V3Pool) {\n return excludedProtocolsFromMixed?.includes(Protocol.V3) ?? false;\n } else if (pool instanceof Pair) {\n return excludedProtocolsFromMixed?.includes(Protocol.V2) ?? false;\n } else {\n return false;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializeRouteIds.js","sourceRoot":"","sources":["../../../src/util/serializeRouteIds.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,QAAkB;IAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;AAFD,8CAEC;AAED,SAAgB,mBAAmB,CAAC,QAAgB;IAClD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAFD,kDAEC","sourcesContent":["export function serializeRouteIds(routeIds: number[]): string {\n return routeIds.join(':');\n}\n\nexport function deserializeRouteIds(routeIds: string): number[] {\n return routeIds.split(':').map(Number);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-perf-tracker.js","sourceRoot":"","sources":["../../../src/util/simple-perf-tracker.ts"],"names":[],"mappings":";;;AAAA,qCAAoD;AACpD,+BAA4B;AAE5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,CAAC;AAW3G,WAAW;AACX,MAAa,iBAAiB;IAA9B;QAEY,YAAO,GAAgB,EAAE,CAAC;QAC1B,iBAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;IAsI1D,CAAC;IApIG,MAAM,CAAC,WAAW;QACd,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC7B,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,EAAE,CAAC;SACxD;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,OAAO;IACP,KAAK,CAAC,IAAY,EAAE,QAAc;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEvC,IAAI,QAAQ,EAAE;YACV,SAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;SACjD;IACL,CAAC;IAED,OAAO;IACP,GAAG,CAAC,IAAY;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE;YACZ,SAAG,CAAC,IAAI,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;SACZ;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACd,IAAI;YACJ,SAAS;YACT,OAAO;YACP,QAAQ;SACX,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE/B,gBAAgB;QAChB,eAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,QAAQ,EAAE,yBAAgB,CAAC,YAAY,CAAC,CAAC;QAE1E,SAAG,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC;QAC1C,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,SAAS;IACT,KAAK,CAAC,YAAY,CAAI,IAAY,EAAE,EAAoB,EAAE,QAAc;QACpE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3B,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,SAAG,CAAC,KAAK,CAAC,UAAU,IAAI,iBAAiB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvF,MAAM,KAAK,CAAC;SACf;IACL,CAAC;IAED,SAAS;IACT,OAAO,CAAI,IAAY,EAAE,EAAW,EAAE,QAAc;QAChD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3B,IAAI;YACA,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,MAAM,CAAC;SACjB;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,SAAG,CAAC,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC;SACf;IACL,CAAC;IAED,OAAO;IACP,SAAS;QACL,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,OAAO,+BAA+B,CAAC;SAC1C;QAED,MAAM,MAAM,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAE9C,QAAQ;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAClB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACxB;YACD,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAiC,CAAC,CAAC;QAEtC,OAAO;QACP,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YAEnC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,QAAQ;QACR,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI;YACJ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACtD,KAAK,EAAE,OAAO,CAAC,MAAM;SACxB,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,SAAS,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;IACP,KAAK;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,SAAS;IACT,UAAU;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACJ;AAzID,8CAyIC;AAED,SAAS;AACI,QAAA,WAAW,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;AAE3D,OAAO;AACP,SAAgB,UAAU,CAAC,IAAY,EAAE,QAAc;IACnD,IAAI,CAAC,YAAY;QAAE,OAAO;IAC1B,mBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAHD,gCAGC;AAED,SAAgB,QAAQ,CAAC,IAAY;IACjC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,mBAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAHD,4BAGC;AAEM,KAAK,UAAU,YAAY,CAAI,IAAY,EAAE,EAAoB,EAAE,QAAc;IACpF,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,EAAE,CAAC;IAC/B,OAAO,mBAAW,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAHD,oCAGC;AAED,SAAgB,OAAO,CAAI,IAAY,EAAE,EAAW,EAAE,QAAc;IAChE,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,EAAE,CAAC;IAC/B,OAAO,mBAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAHD,0BAGC;AAED,SAAgB,aAAa;IACzB,IAAI,CAAC,YAAY,EAAE;QACf,OAAO;KACV;IAED,0BAA0B;IAC1B,aAAa,EAAE,CAAC;AACpB,CAAC;AAPD,sCAOC;AAED,SAAgB,aAAa;IACzB,IAAI,CAAC,YAAY,EAAE;QACf,OAAO;KACV;IACD,mBAAW,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AALD,sCAKC","sourcesContent":["import { metric, MetricLoggerUnit } from './metric';\nimport { log } from './log';\n\nconst perf_enabled = process.env.ENABLE_PERF_TRACKER === 'true' || process.env.ENABLE_PERF_TRACKER === '1';\n\n// 性能追踪条目\nexport interface PerfEntry {\n name: string;\n startTime: number;\n endTime: number;\n duration: number;\n metadata?: any;\n}\n\n// 简单的性能追踪器\nexport class SimplePerfTracker {\n private static instance: SimplePerfTracker;\n private entries: PerfEntry[] = [];\n private activeTimers: Map<string, number> = new Map();\n\n static getInstance(): SimplePerfTracker {\n if (!SimplePerfTracker.instance) {\n SimplePerfTracker.instance = new SimplePerfTracker();\n }\n return SimplePerfTracker.instance;\n }\n\n // 开始计时\n start(name: string, metadata?: any): void {\n const startTime = Date.now();\n this.activeTimers.set(name, startTime);\n\n if (metadata) {\n log.info(`[PERF] Starting ${name}`, metadata);\n }\n }\n\n // 结束计时\n end(name: string): number {\n const startTime = this.activeTimers.get(name);\n if (!startTime) {\n log.warn(`[PERF] No start time found for ${name}`);\n return 0;\n }\n\n const endTime = Date.now();\n const duration = endTime - startTime;\n\n this.entries.push({\n name,\n startTime,\n endTime,\n duration\n });\n\n this.activeTimers.delete(name);\n\n // 记录到 metric 系统\n metric.putMetric(`Perf_${name}`, duration, MetricLoggerUnit.Milliseconds);\n\n log.info(`[PERF] ${name}: ${duration}ms`);\n return duration;\n }\n\n // 包装异步函数\n async measureAsync<T>(name: string, fn: () => Promise<T>, metadata?: any): Promise<T> {\n this.start(name, metadata);\n try {\n const result = await fn();\n this.end(name);\n return result;\n } catch (error) {\n this.end(name);\n log.error(`[PERF] ${name} failed after ${this.activeTimers.get(name) || 0}ms:`, error);\n throw error;\n }\n }\n\n // 包装同步函数\n measure<T>(name: string, fn: () => T, metadata?: any): T {\n this.start(name, metadata);\n try {\n const result = fn();\n this.end(name);\n return result;\n } catch (error) {\n this.end(name);\n log.error(`[PERF] ${name} failed:`, error);\n throw error;\n }\n }\n\n // 获取报告\n getReport(): string {\n if (this.entries.length === 0) {\n return 'No performance data collected';\n }\n\n const report = ['=== Performance Report ==='];\n\n // 按名称分组\n const grouped = this.entries.reduce((acc, entry) => {\n if (!acc[entry.name]) {\n acc[entry.name] = [];\n }\n acc[entry.name]!.push(entry);\n return acc;\n }, {} as Record<string, PerfEntry[]>);\n\n // 生成统计\n Object.entries(grouped).forEach(([name, entries]) => {\n const durations = entries.map(e => e.duration);\n const total = durations.reduce((a, b) => a + b, 0);\n const avg = total / durations.length;\n const min = Math.min(...durations);\n const max = Math.max(...durations);\n\n report.push(`\\n${name}:`);\n report.push(` Calls: ${entries.length}`);\n report.push(` Total: ${total.toFixed(2)}ms`);\n report.push(` Average: ${avg.toFixed(2)}ms`);\n report.push(` Min: ${min.toFixed(2)}ms`);\n report.push(` Max: ${max.toFixed(2)}ms`);\n });\n\n // 最慢的操作\n const sortedByTotal = Object.entries(grouped)\n .map(([name, entries]) => ({\n name,\n total: entries.reduce((sum, e) => sum + e.duration, 0),\n count: entries.length\n }))\n .sort((a, b) => b.total - a.total);\n\n report.push('\\n=== Slowest Operations ===');\n sortedByTotal.slice(0, 5).forEach((op, i) => {\n report.push(`${i + 1}. ${op.name}: ${op.total.toFixed(2)}ms total (${op.count} calls)`);\n });\n\n return report.join('\\n');\n }\n\n // 清空数据\n clear(): void {\n this.entries = [];\n this.activeTimers.clear();\n }\n\n // 获取所有条目\n getEntries(): PerfEntry[] {\n return [...this.entries];\n }\n}\n\n// 创建全局实例\nexport const perfTracker = SimplePerfTracker.getInstance();\n\n// 便捷函数\nexport function startTimer(name: string, metadata?: any): void {\n if (!perf_enabled) return;\n perfTracker.start(name, metadata);\n}\n\nexport function endTimer(name: string): number {\n if (!perf_enabled) return 0;\n return perfTracker.end(name);\n}\n\nexport async function measureAsync<T>(name: string, fn: () => Promise<T>, metadata?: any): Promise<T> {\n if (!perf_enabled) return fn();\n return perfTracker.measureAsync(name, fn, metadata);\n}\n\nexport function measure<T>(name: string, fn: () => T, metadata?: any): T {\n if (!perf_enabled) return fn();\n return perfTracker.measure(name, fn, metadata);\n}\n\nexport function getPerfReport(): void {\n if (!perf_enabled) {\n return;\n }\n\n //auto clear after report.\n clearPerfData();\n}\n\nexport function clearPerfData(): void {\n if (!perf_enabled) {\n return;\n }\n perfTracker.clear();\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenderlySimulationErrorBreakDown.js","sourceRoot":"","sources":["../../../src/util/tenderlySimulationErrorBreakDown.ts"],"names":[],"mappings":";;;AACA,4CAA8D;AAE9D,SAAgB,gCAAgC,CAC9C,OAAc,EACd,QAAe,EACf,IAAa;IAEb,IAAI,IAAI,EAAE;QACR,QAAQ,IAAI,EAAE;YACZ,KAAK,YAAY,CAAC,CAAC,qBAAqB;YACxC,KAAK,YAAY,CAAC,CAAC,sBAAsB;YACzC,KAAK,YAAY,CAAC,CAAC,sBAAsB;YACzC,KAAK,YAAY,CAAC,CAAC,qBAAqB;YACxC,KAAK,4QAA4Q,CAAC,CAAC,6BAA6B;YAChT,KAAK,4MAA4M,EAAE,MAAM;gBACvN,OAAO,4BAAgB,CAAC,cAAc,CAAC;YACzC,KAAK,4MAA4M,EAAE,uBAAuB;gBACxO,OAAO,4BAAgB,CAAC,kBAAkB,CAAC;YAC7C,KAAK,YAAY,EAAE,oBAAoB;gBACrC,IACE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;oBAC3B,wBAAY,CAAC,OAAO,CAAC,WAAW,EAAE;oBACpC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,wBAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EACrE;oBACA,+GAA+G;oBAC/G,OAAO,4BAAgB,CAAC,cAAc,CAAC;iBACxC;gBAED,8DAA8D;gBAC9D,OAAO,4BAAgB,CAAC,MAAM,CAAC;YACjC,SAAS,4EAA4E;gBACnF,OAAO,4BAAgB,CAAC,MAAM,CAAC;SAClC;KACF;IAED,OAAO,4BAAgB,CAAC,MAAM,CAAC;AACjC,CAAC;AAlCD,4EAkCC","sourcesContent":["import { Token } from '@fewprotocol/sdk-core';\nimport { SimulationStatus, VIRTUAL_BASE } from '../providers';\n\nexport function breakDownTenderlySimulationError(\n tokenIn: Token,\n tokenOut: Token,\n data?: string\n): SimulationStatus {\n if (data) {\n switch (data) {\n case '0x739dbe52': // V3TooMuchRequested\n case '0x39d35496': // V3TooLittleReceived\n case '0x849eaf98': // V2TooLittleReceived\n case '0x8ab0bc16': // V2TooMuchRequested\n case '0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000025556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54000000000000000000000000000000000000000000000000000000': // INSUFFICIENT_OUTPUT_AMOUNT\n case '0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000034949410000000000000000000000000000000000000000000000000000000000': // IIA\n return SimulationStatus.SlippageTooLow;\n case '0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000145452414e534645525f46524f4d5f4641494c4544000000000000000000000000': // TRANSFER_FROM_FAILED\n return SimulationStatus.TransferFromFailed;\n case '0x675cae38': // InsufficientToken\n if (\n tokenIn.address.toLowerCase() ===\n VIRTUAL_BASE.address.toLowerCase() ||\n tokenOut.address.toLowerCase() === VIRTUAL_BASE.address.toLowerCase()\n ) {\n // if this is from virtual, we'd guess it's due to slippage too low, although it might be due to something else\n return SimulationStatus.SlippageTooLow;\n }\n\n // Otherwise we don't wanna guess, just return generic failed.\n return SimulationStatus.Failed;\n default: // we don't know why onchain execution reverted, just return generic failed.\n return SimulationStatus.Failed;\n }\n }\n\n return SimulationStatus.Failed;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsupported-tokens.js","sourceRoot":"","sources":["../../../src/util/unsupported-tokens.ts"],"names":[],"mappings":"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","sourcesContent":["export const UNSUPPORTED_TOKENS = {\n name: 'Unsupported Token List',\n timestamp: '2021-01-05T20:47:02.923Z',\n version: {\n major: 1,\n minor: 0,\n patch: 0,\n },\n tags: {},\n logoURI: 'ipfs://QmNa8mQkrNKp1WEEeGjFezDmDeodkWRevGFN8JCV7b4Xir',\n keywords: ['uniswap', 'unsupported', 'broken'],\n tokens: [\n {\n name: 'USD Token',\n address: '0xd233d1f6fd11640081abb8db125f722b5dc729dc',\n symbol: 'USD',\n decimals: 9,\n chainId: 1,\n logoURI: '',\n },\n {\n name: 'UNI HODL',\n address: '0x4bf5dc91E2555449293D7824028Eb8Fe5879B689',\n symbol: 'UniH',\n decimals: 18,\n chainId: 1,\n logoURI: '',\n },\n {\n name: 'Gold Tether',\n address: '0x4922a015c4407F87432B179bb209e125432E4a2A',\n symbol: 'XAUt',\n decimals: 6,\n chainId: 1,\n logoURI:\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png',\n },\n {\n name: 'Grump Cat',\n address: '0x93B2FfF814FCaEFFB01406e80B4Ecd89Ca6A021b',\n symbol: 'GRUMPY',\n decimals: 9,\n chainId: 1,\n logoURI:\n 'https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x4922a015c4407F87432B179bb209e125432E4a2A/logo.png',\n },\n {\n name: 'apeUSD-UMA Synthetic USD (Dec 2021)',\n address: '0xfA5e27893aee4805283D86e4283Da64F8c72dd56',\n symbol: 'apeUSD-UMA-DEC21',\n decimals: 18,\n chainId: 1,\n logoURI: '',\n },\n {\n chainId: 1,\n address: '0xc6b11850241c5127eab73af4b6c68bc267cbbff4',\n name: 'oWETHp Put 360 DEC2520',\n symbol: 'oWETH-360P-12/25/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oYFIp Put 25000 OCT0220',\n address: '0x452b421be5b30f0c6ad8c3f03c06bdaab4f5c56c',\n symbol: 'oYFI-25000P-10/02/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oWETHp Put 360 OCT3020',\n address: '0x0578779e746d7186253a36cf651ea786acfcf087',\n symbol: 'oWETH-360P-10/30/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'ETHc Call 500 OCT3020',\n address: '0xf9aba2e43fb19184408ea3b572a0fd672946f87b',\n symbol: 'oETH-500C-10/30/20',\n decimals: 6,\n },\n {\n chainId: 1,\n name: 'oBALp Put 22 OCT0220',\n address: '0xdb0991dfc7e828b5a2837dc82d68e16490562c8d',\n symbol: 'oBAL-22P-10/02/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oCOMPp Put 150 SEP2520',\n address: '0xe951ebe6b4420ab3f4844cf36dedd263d095b416',\n symbol: 'oCOMP-150P-09/25/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oCRVp Put 3 SEP252020',\n address: '0x9215bd49b59748419eac6bad9dbe247df06ebdb9',\n symbol: 'oCRV-3P-09/25/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oETHp Put 180 SEP2520',\n address: '0xE3A2c34Fa2F59ffa95C4ACd1E5663633d45Bc3AD',\n symbol: 'oETH-180P-09/25/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oETHc Call 400 SEP2520',\n address: '0x05977EBC26825C0CD6097E0Ad7204721516711Eb',\n symbol: 'oETH-400C-09/25/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oWETHp Put 380 SEP1820',\n address: '0x31f88266301b08631f9f0e33fd5c43c2a5d1e5b2',\n symbol: 'oWETH-380P-09/18/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oYFIp Put 8500 SEP1820',\n address: '0xd1cec2f67fdc4c60e0963515dfc3343f31e32e47',\n symbol: 'oYFI-8500P-09/18/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oWETHp Put 370 SEP1120',\n address: '0x15844029b2c2bf24506e9937739a9a912f1e4354',\n symbol: 'oWETH-370P-09/11/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oWETHp Put 400 SEP0420',\n address: '0x5562c33c383f6386be4f6dcdbd35a3a99bbcfde6',\n symbol: 'oWETH-400P-09/04/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'oETHp Put 200 AUG2820',\n address: '0x3CBFC1397deF0602c2d211c70A1c0c38CEDB5448',\n symbol: 'oWETH-400P-09/04/20',\n decimals: 7,\n },\n {\n chainId: 1,\n name: 'Opyn cDai Insurance',\n symbol: 'ocDai',\n address: '0x98cc3bd6af1880fcfda17ac477b2f612980e5e33',\n decimals: 8,\n },\n {\n chainId: 1,\n name: 'Opyn cUSDC Insurance',\n symbol: 'ocUSDC',\n address: '0x8ED9f862363fFdFD3a07546e618214b6D59F03d4',\n decimals: 8,\n },\n {\n chainId: 1,\n address: '0x176C674Ee533C6139B0dc8b458D72A93dCB3e705',\n symbol: 'iAAVE',\n name: 'Synth Inverse Aave',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iAAVE.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x8A8079c7149B8A1611e5C5d978DCA3bE16545F83',\n symbol: 'iADA',\n name: 'Synth Inverse Cardano',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iADA.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xAFD870F32CE54EfdBF677466B612bf8ad164454B',\n symbol: 'iBNB',\n name: 'Synth Inverse Binance Coin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iBNB.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xD6014EA05BDe904448B743833dDF07c3C7837481',\n symbol: 'iBTC',\n name: 'Synth Inverse Bitcoin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iBTC.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x336213e1DDFC69f4701Fc3F86F4ef4A160c1159d',\n symbol: 'iCEX',\n name: 'Synth Inverse Centralised Exchange Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iCEX.svg',\n tags: ['index', 'inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x6345728B1ccE16E6f8C509950b5c84FFF88530d9',\n symbol: 'iCOMP',\n name: 'Synth Inverse Compound',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iCOMP.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xCB98f42221b2C251A4E74A1609722eE09f0cc08E',\n symbol: 'iDASH',\n name: 'Synth Inverse Dash',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iDASH.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x14d10003807AC60d07BB0ba82cAeaC8d2087c157',\n symbol: 'iDEFI',\n name: 'Synth Inverse DeFi Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iDEFI.svg',\n tags: ['index', 'inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x46a97629C9C1F58De6EC18C7F536e7E6d6A6ecDe',\n symbol: 'iDOT',\n name: 'Synth Inverse Polkadot',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iDOT.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xF4EebDD0704021eF2a6Bbe993fdf93030Cd784b4',\n symbol: 'iEOS',\n name: 'Synth Inverse EOS',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iEOS.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xd50c1746D835d2770dDA3703B69187bFfeB14126',\n symbol: 'iETC',\n name: 'Synth Inverse Ethereum Classic',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iETC.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xA9859874e1743A32409f75bB11549892138BBA1E',\n symbol: 'iETH',\n name: 'Synth Inverse Ether',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iETH.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x2d7aC061fc3db53c39fe1607fB8cec1B2C162B01',\n symbol: 'iLINK',\n name: 'Synth Inverse Chainlink',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iLINK.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x79da1431150C9b82D2E5dfc1C68B33216846851e',\n symbol: 'iLTC',\n name: 'Synth Inverse Litecoin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iLTC.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xA5a5DF41883Cdc00c4cCC6E8097130535399d9a3',\n symbol: 'iOIL',\n name: 'Synth Inverse Perpetual Oil Futures',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iOIL.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x0fEd38108bdb8e62ef7b5680E8E0726E2F29e0De',\n symbol: 'iREN',\n name: 'Synth Inverse Ren',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iREN.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xC5807183a9661A533CB08CbC297594a0B864dc12',\n symbol: 'iTRX',\n name: 'Synth Inverse TRON',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iTRX.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x36A00FF9072570eF4B9292117850B8FE08d96cce',\n symbol: 'iUNI',\n name: 'Synth Inverse Uniswap',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iUNI.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x4AdF728E2Df4945082cDD6053869f51278fae196',\n symbol: 'iXMR',\n name: 'Synth Inverse Monero',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iXMR.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x27269b3e45A4D3E79A3D6BFeE0C8fB13d0D711A6',\n symbol: 'iXRP',\n name: 'Synth Inverse Ripple',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iXRP.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x8deef89058090ac5655A99EEB451a4f9183D1678',\n symbol: 'iXTZ',\n name: 'Synth Inverse Tezos',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iXTZ.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0x592244301CeA952d6daB2fdC1fE6bd9E53917306',\n symbol: 'iYFI',\n name: 'Synth Inverse yearn.finance',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/iYFI.svg',\n tags: ['inverse', 'synth'],\n },\n {\n chainId: 1,\n address: '0xcD39b5434a0A92cf47D1F567a7dF84bE356814F0',\n symbol: 's1INCH',\n name: 'Synth 1inch',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/s1INCH.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x7537AAe01f3B218DAE75e10d952473823F961B87',\n symbol: 'sAAPL',\n name: 'Synth Apple',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sAAPL.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xd2dF355C19471c8bd7D8A3aa27Ff4e26A21b4076',\n symbol: 'sAAVE',\n name: 'Synth Aave',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sAAVE.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xe36E2D3c7c34281FA3bC737950a68571736880A1',\n symbol: 'sADA',\n name: 'Synth Cardano',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sADA.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x9CF7E61853ea30A41b02169391b393B901eac457',\n symbol: 'sAMZN',\n name: 'Synth Amazon',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sAMZN.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xF48e200EAF9906362BB1442fca31e0835773b8B4',\n symbol: 'sAUD',\n name: 'Synth Australian Dollars',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sAUD.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x617aeCB6137B5108D1E7D4918e3725C8cEbdB848',\n symbol: 'sBNB',\n name: 'Synth Binance Coin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sBNB.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6',\n symbol: 'sBTC',\n name: 'Synth Bitcoin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sBTC.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xeABACD844A196D7Faf3CE596edeBF9900341B420',\n symbol: 'sCEX',\n name: 'Synth Centralised Exchange Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sCEX.svg',\n tags: ['index', 'synth'],\n },\n {\n chainId: 1,\n address: '0x0F83287FF768D1c1e17a42F44d644D7F22e8ee1d',\n symbol: 'sCHF',\n name: 'Synth Swiss Franc',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sCHF.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x9EeF4CA7aB9fa8bc0650127341C2d3F707a40f8A',\n symbol: 'sCOIN',\n name: 'Synth Coinbase',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sCOIN.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xEb029507d3e043DD6C87F2917C4E82B902c35618',\n symbol: 'sCOMP',\n name: 'Synth Compound',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sCOMP.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xD38aEb759891882e78E957c80656572503D8c1B1',\n symbol: 'sCRV',\n name: 'Synth Curve DAO Token',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sCRV.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xfE33ae95A9f0DA8A845aF33516EDc240DCD711d6',\n symbol: 'sDASH',\n name: 'Synth Dash',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sDASH.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xe1aFe1Fd76Fd88f78cBf599ea1846231B8bA3B6B',\n symbol: 'sDEFI',\n name: 'Synth DeFi Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sDEFI.svg',\n tags: ['index', 'synth'],\n },\n {\n chainId: 1,\n address: '0x1715AC0743102BF5Cd58EfBB6Cf2dC2685d967b6',\n symbol: 'sDOT',\n name: 'Synth Polkadot',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sDOT.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x88C8Cf3A212c0369698D13FE98Fcb76620389841',\n symbol: 'sEOS',\n name: 'Synth EOS',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sEOS.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x22602469d704BfFb0936c7A7cfcD18f7aA269375',\n symbol: 'sETC',\n name: 'Synth Ethereum Classic',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sETC.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb',\n symbol: 'sETH',\n name: 'Synth Ether',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sETH.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xD71eCFF9342A5Ced620049e616c5035F1dB98620',\n symbol: 'sEUR',\n name: 'Synth Euros',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sEUR.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xf50B5e535F62a56A9BD2d8e2434204E726c027Fa',\n symbol: 'sFB',\n name: 'Synth Facebook',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sFB.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x23348160D7f5aca21195dF2b70f28Fce2B0be9fC',\n symbol: 'sFTSE',\n name: 'Synth FTSE 100 Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sFTSE.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x97fe22E7341a0Cd8Db6F6C021A24Dc8f4DAD855F',\n symbol: 'sGBP',\n name: 'Synth Pound Sterling',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sGBP.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xC63B8ECCE56aB9C46184eC6aB85e4771fEa4c8AD',\n symbol: 'sGOOG',\n name: 'Synth Alphabet',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sGOOG.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xF6b1C627e95BFc3c1b4c9B825a032Ff0fBf3e07d',\n symbol: 'sJPY',\n name: 'Synth Japanese Yen',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sJPY.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x269895a3dF4D73b077Fc823dD6dA1B95f72Aaf9B',\n symbol: 'sKRW',\n name: 'Synth South Korean Won',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sKRW.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xbBC455cb4F1B9e4bFC4B73970d360c8f032EfEE6',\n symbol: 'sLINK',\n name: 'Synth Chainlink',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sLINK.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xC14103C2141E842e228FBaC594579e798616ce7A',\n symbol: 'sLTC',\n name: 'Synth Litecoin',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sLTC.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x745a824D6aBBD236AA794b5530062778A6Ad7523',\n symbol: 'sMSFT',\n name: 'Synth Microsoft',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sMSFT.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x5A7E3c07604EB515C16b36cd51906a65f021F609',\n symbol: 'sNFLX',\n name: 'Synth Netflix',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sNFLX.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x757de3ac6B830a931eF178C6634c5C551773155c',\n symbol: 'sNIKKEI',\n name: 'Synth Nikkei 225 Index',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sNIKKEI.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x6d16cF3EC5F763d4d99cB0B0b110eefD93B11B56',\n symbol: 'sOIL',\n name: 'Synth Perpetual Oil Futures',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sOIL.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xD31533E8d0f3DF62060e94B3F1318137bB6E3525',\n symbol: 'sREN',\n name: 'Synth Ren',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sREN.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x0352557B007A4Aae1511C114409b932F06F9E2f4',\n symbol: 'sRUNE',\n name: 'Synth THORChain',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sRUNE.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xf2E08356588EC5cd9E437552Da87C0076b4970B0',\n symbol: 'sTRX',\n name: 'Synth TRON',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sTRX.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x918dA91Ccbc32B7a6A0cc4eCd5987bbab6E31e6D',\n symbol: 'sTSLA',\n name: 'Synth Tesla',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sTSLA.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x30635297E450b930f8693297eBa160D9e6c8eBcf',\n symbol: 'sUNI',\n name: 'Synth Uniswap',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sUNI.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x6A22e5e94388464181578Aa7A6B869e00fE27846',\n symbol: 'sXAG',\n name: 'Synth Silver Ounce',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sXAG.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x261EfCdD24CeA98652B9700800a13DfBca4103fF',\n symbol: 'sXAU',\n name: 'Synth Gold Ounce',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sXAU.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x5299d6F7472DCc137D7f3C4BcfBBB514BaBF341A',\n symbol: 'sXMR',\n name: 'Synth Monero',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sXMR.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0xa2B0fDe6D710e201d0d608e924A484d1A5fEd57c',\n symbol: 'sXRP',\n name: 'Synth Ripple',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sXRP.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x2e59005c5c0f0a4D77CcA82653d48b46322EE5Cd',\n symbol: 'sXTZ',\n name: 'Synth Tezos',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sXTZ.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x992058B7DB08F9734d84485bfbC243C4ee6954A7',\n symbol: 'sYFI',\n name: 'Synth yearn.finance',\n decimals: 18,\n logoURI:\n 'https://raw.githubusercontent.com/Synthetixio/synthetix-assets/v2.0.10/synths/sYFI.svg',\n tags: ['synth'],\n },\n {\n chainId: 1,\n address: '0x81ab848898b5ffD3354dbbEfb333D5D183eEDcB5',\n name: 'yUSD Synthetic Expiring 1 September 2020',\n symbol: 'yUSDSEP20',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xB2FdD60AD80ca7bA89B9BAb3b5336c2601C020b4',\n name: 'yUSD Synthetic Expiring 1 October 2020',\n symbol: 'yUSDOCT20',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x208d174775dc39fe18b1b374972f77ddec6c0f73',\n name: 'uUSDrBTC Synthetic Expiring 1 Oct 2020',\n symbol: 'uUSDrBTC-OCT',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xf06ddacf71e2992e2122a1a0168c6967afdf63ce',\n name: 'uUSDrBTC Synthetic Expiring 31 Dec 2020',\n symbol: 'uUSDrBTC-DEC',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xd16c79c8a39d44b2f3eb45d2019cd6a42b03e2a9',\n name: 'uUSDwETH Synthetic Expiring 31 Dec 2020',\n symbol: 'uUSDwETH-DEC',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x3d995510f8d82c2ea341845932b5ddde0bead9a3',\n name: 'uGAS-JAN21 Token Expiring 31 Jan 2021',\n symbol: 'uGAS-JAN21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x90f802c7e8fb5d40b0de583e34c065a3bd2020d8',\n name: 'YD-ETH-MAR21 Token Expiring 31 Mar 2021',\n symbol: 'YD-ETH-MAR21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x002f0b1a71c5730cf2f4da1970a889207bdb6d0d',\n name: 'YD-BTC-MAR21 Token Expiring 31 Mar 2021',\n symbol: 'YD-BTC-MAR21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x1062ad0e59fa67fa0b27369113098cc941dd0d5f',\n name: 'UMA 35 Call Expirying 30 Apr 2021',\n symbol: 'UMAc35-0421',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xf93340b1a3adf7eedcaec25fae8171d4b736e89f',\n name: 'pxUSD Synthetic USD Expiring 1 April 2021',\n symbol: 'pxUSD_MAR2021',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x84bd083b1c8bf929f39c98bc17cf518f40154f58',\n name: 'Mario Cash Synthetic Token Expiring 15 January 2021',\n symbol: 'Mario Cash-JAN-2021',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x81fab276aec924fbde190cf379783526d413cf70',\n name: 'uGAS-FEB21 Token Expiring 28 Feb 2021',\n symbol: 'uGAS-FEB21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x4e110603e70b0b5f1c403ee543b37e1f1244cf28',\n name: 'uGAS-MAR21 Token Expiring 31 Mar 2021',\n symbol: 'uGAS-MAR21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xcf55a7f92d5e0c6683debbc1fc20c0a6e056df13',\n name: 'Zelda Elastic Cash',\n symbol: 'Zelda Elastic Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x654eebac62240e6c56bab5f6adf7cfa74a894510',\n name: 'Zelda Spring Nuts Cash',\n symbol: 'Zelda Spring Nuts Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xa48920cc1ad85d8ea13af5d7be180c0338c306dd',\n name: 'Zelda Summer Nuts Cash',\n symbol: 'Zelda Summer Nuts Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x249a198d59b57fda5dda90630febc86fd8c7594c',\n name: 'Zelda Whirlwind Cash',\n symbol: 'Zelda Whirlwind Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x5ed1406873c9eb91f6f9a67ac4e152387c1132e7',\n name: 'Zelda Reinforced Cash',\n symbol: 'Zelda Reinforced Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x8104c9f13118320eefe5fbea8a44d600b85981ef',\n name: 'Mini Mario Summer Cash',\n symbol: 'Mini Mario Summer Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x69746c719e59674b147df25f50e7cfa0673cb625',\n name: 'Mini Mario Spring Cash',\n symbol: 'Mini Mario Spring Cash',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x6b1257641d18791141f025eab36fb567c4b564ff',\n name: 'Bitcoin Dominance Token 31 March 2021',\n symbol: 'BTCDOM-MAR2021',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x4e83b6287588a96321b2661c5e041845ff7814af',\n name: 'Altcoin Dominance Token 31 March 2021',\n symbol: 'ALTDOM-MAR2021',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x59fec83ec709c893aedd1a144cf1828eb04127cd',\n name: 'pxGOLD Synthetic GOLD Expiring 31 May 2021',\n symbol: 'pxGOLD_MAY2021',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x89337BFb7938804c3776C9FB921EccAf5ab76758',\n name: 'Compound Annualized Rate Future Expiring 28 March 2021',\n symbol: 'CAR-USDC-MAR21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xec58d3aefc9aaa2e0036fa65f70d569f49d9d1ed',\n name: 'uSTONKS Index Token April 2021',\n symbol: 'uSTONKS_APR21',\n decimals: 6,\n },\n {\n chainId: 1,\n address: '0xa6B9d7E3d76cF23549293Fb22c488E0Ea591A44e',\n name: 'uGAS-JUN21 Token Expiring 30 Jun 2021',\n symbol: 'uGAS-JUN21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xe813b65da6c38a04591aed3f082d32db7d53c382',\n name: 'Yield Dollar [WETH Dec 2021]',\n symbol: 'YD-ETH-DEC21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x4b606e9eb2228c70f44453afe5a73e1fea258ce1',\n name: 'pxUSD Synthetic USD Expiring 31 Mar 2022',\n symbol: 'pxUSD_MAR2022',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x5247c0db4044fb6f97f32c7e1b48758019a5a912',\n name: 'pxGOLD Synthetic Gold Expiring 31 Mar 2022',\n symbol: 'pxGOLD_MAR2022',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x56fb1acaff95c0b6ebcd17c8361a63d98b1a5a11',\n name: 'uForex CNYUSD Synthetic Token April 2021',\n symbol: 'uCNYUSD-APR',\n decimals: 6,\n },\n {\n chainId: 1,\n address: '0xd49fa405dce086c65d66ca1ca41f8e98583812b4',\n name: 'uForex EURUSD Synthetic Token April 2021',\n symbol: 'uEURUSD-APR',\n decimals: 6,\n },\n {\n chainId: 1,\n address: '0x29dddacba3b231ee8d673dd0f0fa759ea145561b',\n name: 'DEFI_PULSE_TOTAL_TVL Synthetic Token Expiring 15 April 2021',\n symbol: 'TVL_ALL_APRIL15',\n decimals: 6,\n },\n {\n chainId: 1,\n address: '0xcbe430927370e95b4b10cfc702c6017ec7abefc3',\n name: 'Yield Dollar [WETH Jun 2021]',\n symbol: 'YD-ETH-JUN21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x4b7fb448df91c8ed973494f8c8c4f12daf3a8521',\n name: 'Yield Dollar [renBTC Jun 2021]',\n symbol: 'YD-BTC-JUN21',\n decimals: 8,\n },\n {\n chainId: 1,\n address: '0x3108c33b6fb38efedaefd8b5f7ca01d5f5c7372d',\n name: 'Yield Dollar UMA 21',\n symbol: 'yUMA21',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x0cae9e4d663793c2a2A0b211c1Cf4bBca2B9cAa7',\n name: 'Mirrored Amazon',\n symbol: 'MAMZN',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x31c63146a635EB7465e5853020b39713AC356991',\n name: 'M US Oil',\n symbol: 'MUSO',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x59A921Db27Dd6d4d974745B7FfC5c33932653442',\n name: 'M Google',\n symbol: 'MGOOGL',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xf72FCd9DCF0190923Fadd44811E240Ef4533fc86',\n name: 'Mirrored ProShares',\n symbol: 'MVIXY',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x56aA298a19C93c6801FDde870fA63EF75Cc0aF72',\n name: 'Mirrored Alibaba',\n symbol: 'MBABA',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x0e99cC0535BB6251F6679Fa6E65d6d3b430e840B',\n name: 'Mirrored Facebook',\n symbol: 'MFB',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x13B02c8dE71680e71F0820c996E4bE43c2F57d15',\n name: 'Mirrored Invesco QQ',\n symbol: 'MQQQ',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x41BbEDd7286dAab5910a1f15d12CBda839852BD7',\n name: 'Mirrored Microsoft',\n symbol: 'MMSFT',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x9d1555d8cB3C846Bb4f7D5B1B1080872c3166676',\n name: 'Mirrored iShares Si',\n symbol: 'MSLV',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x21cA39943E91d704678F5D00b6616650F066fD63',\n name: 'Mirrored Tesla',\n symbol: 'MTSLA',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0xe82bbB62fA81d0701643d1675FB50ec52fD3Df92',\n name: 'DYDX Token',\n symbol: 'DYDX',\n decimals: 18,\n },\n {\n chainId: 10,\n address: '0xE405de8F52ba7559f9df3C368500B6E6ae6Cee49',\n name: 'sETH',\n symbol: 'Synth Ether',\n decimals: 18,\n },\n {\n chainId: 10,\n address: '0x298B9B95708152ff6968aafd889c6586e9169f1D',\n name: 'sBTC',\n symbol: 'Synth Bitcoin',\n decimals: 18,\n },\n {\n chainId: 10,\n address: '0xc5Db22719A06418028A40A9B5E9A7c02959D0d08',\n name: 'sLINK',\n symbol: 'Synth Link',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x6B60eE11b73230045cF9095E6e43AE9Ea638e172',\n name: 'Shatner',\n symbol: 'SHAT',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x7277a44D1325D81Ac58893002a1B40a41bea43fe',\n name: 'FAANG Index',\n symbol: 'FAANG',\n decimals: 18,\n },\n {\n chainId: 1,\n address: '0x76175599887730786bdA1545D0D7AcE8737fEBB1',\n name: 'ENS DAO',\n symbol: 'ENS',\n decimals: 18,\n },\n ],\n};\n"]}
|