@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.
Files changed (162) hide show
  1. package/build/main/index.js.map +1 -0
  2. package/build/main/providers/cache-node.js.map +1 -0
  3. package/build/main/providers/cache.js.map +1 -0
  4. package/build/main/providers/caching/route/index.js.map +1 -0
  5. package/build/main/providers/caching/route/model/cache-mode.js.map +1 -0
  6. package/build/main/providers/caching/route/model/cached-route.js.map +1 -0
  7. package/build/main/providers/caching/route/model/cached-routes.js.map +1 -0
  8. package/build/main/providers/caching/route/model/index.js.map +1 -0
  9. package/build/main/providers/caching/route/route-caching-provider.js.map +1 -0
  10. package/build/main/providers/caching-gas-provider.js.map +1 -0
  11. package/build/main/providers/caching-subgraph-provider.js.map +1 -0
  12. package/build/main/providers/caching-token-list-provider.js.map +1 -0
  13. package/build/main/providers/caching-token-provider.js.map +1 -0
  14. package/build/main/providers/eip-1559-gas-price-provider.js.map +1 -0
  15. package/build/main/providers/eth-estimate-gas-provider.js.map +1 -0
  16. package/build/main/providers/eth-gas-station-info-gas-price-provider.js.map +1 -0
  17. package/build/main/providers/fewV2/ring-caching-pool-provider.js.map +1 -0
  18. package/build/main/providers/fewV2/ring-caching-subgraph-provider.js.map +1 -0
  19. package/build/main/providers/fewV2/ring-pool-provider.js.map +1 -0
  20. package/build/main/providers/fewV2/ring-quote-provider.js.map +1 -0
  21. package/build/main/providers/fewV2/ring-static-subgraph-provider.js.map +1 -0
  22. package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.js.map +1 -0
  23. package/build/main/providers/fewV2/ring-subgraph-provider.js.map +1 -0
  24. package/build/main/providers/fewV2/ring-uri-subgraph-provider.js.map +1 -0
  25. package/build/main/providers/gas-price-provider.js.map +1 -0
  26. package/build/main/providers/index.js.map +1 -0
  27. package/build/main/providers/legacy-gas-price-provider.js.map +1 -0
  28. package/build/main/providers/multicall-provider.js.map +1 -0
  29. package/build/main/providers/multicall-ringswap-provider.js.map +1 -0
  30. package/build/main/providers/multicall-uniswap-provider.js.map +1 -0
  31. package/build/main/providers/on-chain-gas-price-provider.js.map +1 -0
  32. package/build/main/providers/on-chain-quote-provider.d.ts +4 -4
  33. package/build/main/providers/on-chain-quote-provider.js +35 -37
  34. package/build/main/providers/on-chain-quote-provider.js.map +1 -0
  35. package/build/main/providers/pool-provider.js.map +1 -0
  36. package/build/main/providers/portion-provider.js.map +1 -0
  37. package/build/main/providers/provider.js.map +1 -0
  38. package/build/main/providers/simulation-provider.js.map +1 -0
  39. package/build/main/providers/static-gas-price-provider.js.map +1 -0
  40. package/build/main/providers/subgraph-provider-with-fallback.js.map +1 -0
  41. package/build/main/providers/subgraph-provider.js.map +1 -0
  42. package/build/main/providers/swap-router-provider.js.map +1 -0
  43. package/build/main/providers/tenderly-simulation-provider.js.map +1 -0
  44. package/build/main/providers/token-fee-fetcher.js.map +1 -0
  45. package/build/main/providers/token-properties-provider.js.map +1 -0
  46. package/build/main/providers/token-provider.js.map +1 -0
  47. package/build/main/providers/token-validator-provider.js.map +1 -0
  48. package/build/main/providers/uri-subgraph-provider.js.map +1 -0
  49. package/build/main/providers/v2/caching-pool-provider.js.map +1 -0
  50. package/build/main/providers/v2/caching-subgraph-provider.js.map +1 -0
  51. package/build/main/providers/v2/pool-provider.js.map +1 -0
  52. package/build/main/providers/v2/quote-provider.js.map +1 -0
  53. package/build/main/providers/v2/static-subgraph-provider.js.map +1 -0
  54. package/build/main/providers/v2/subgraph-provider-with-fallback.js.map +1 -0
  55. package/build/main/providers/v2/subgraph-provider.js.map +1 -0
  56. package/build/main/providers/v2/uri-subgraph-provider.js.map +1 -0
  57. package/build/main/providers/v3/caching-pool-provider.js.map +1 -0
  58. package/build/main/providers/v3/caching-subgraph-provider.js.map +1 -0
  59. package/build/main/providers/v3/gas-data-provider.js.map +1 -0
  60. package/build/main/providers/v3/pool-provider.js.map +1 -0
  61. package/build/main/providers/v3/static-subgraph-provider.js.map +1 -0
  62. package/build/main/providers/v3/subgraph-provider-with-fallback.js.map +1 -0
  63. package/build/main/providers/v3/subgraph-provider.js.map +1 -0
  64. package/build/main/providers/v3/uri-subgraph-provider.js.map +1 -0
  65. package/build/main/providers/v4/caching-pool-provider.js.map +1 -0
  66. package/build/main/providers/v4/caching-subgraph-provider.js.map +1 -0
  67. package/build/main/providers/v4/pool-provider.js.map +1 -0
  68. package/build/main/providers/v4/static-subgraph-provider.js.map +1 -0
  69. package/build/main/providers/v4/subgraph-provider-with-fallback.js.map +1 -0
  70. package/build/main/providers/v4/subgraph-provider.js.map +1 -0
  71. package/build/main/providers/v4/uri-subgraph-provider.js.map +1 -0
  72. package/build/main/routers/alpha-router/alpha-router.d.ts +9 -0
  73. package/build/main/routers/alpha-router/alpha-router.js +4 -1
  74. package/build/main/routers/alpha-router/alpha-router.js.map +1 -0
  75. package/build/main/routers/alpha-router/config.js.map +1 -0
  76. package/build/main/routers/alpha-router/entities/index.js.map +1 -0
  77. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js.map +1 -0
  78. package/build/main/routers/alpha-router/functions/best-swap-route.js.map +1 -0
  79. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js.map +1 -0
  80. package/build/main/routers/alpha-router/functions/compute-all-routes.js.map +1 -0
  81. package/build/main/routers/alpha-router/functions/get-candidate-pools.js.map +1 -0
  82. package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js.map +1 -0
  83. package/build/main/routers/alpha-router/gas-models/gas-costs.js.map +1 -0
  84. package/build/main/routers/alpha-router/gas-models/gas-model.js.map +1 -0
  85. package/build/main/routers/alpha-router/gas-models/index.js.map +1 -0
  86. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js.map +1 -0
  87. package/build/main/routers/alpha-router/gas-models/ring-gas-model.js.map +1 -0
  88. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js.map +1 -0
  89. package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js.map +1 -0
  90. package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js.map +1 -0
  91. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js.map +1 -0
  92. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js.map +1 -0
  93. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js.map +1 -0
  94. package/build/main/routers/alpha-router/index.js.map +1 -0
  95. package/build/main/routers/alpha-router/quoters/base-quoter.js.map +1 -0
  96. package/build/main/routers/alpha-router/quoters/few-v2-quoter.js.map +1 -0
  97. package/build/main/routers/alpha-router/quoters/index.js.map +1 -0
  98. package/build/main/routers/alpha-router/quoters/mixed-quoter.js.map +1 -0
  99. package/build/main/routers/alpha-router/quoters/model/index.js.map +1 -0
  100. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js.map +1 -0
  101. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js.map +1 -0
  102. package/build/main/routers/alpha-router/quoters/model/results/index.js.map +1 -0
  103. package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.js.map +1 -0
  104. package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.js.map +1 -0
  105. package/build/main/routers/alpha-router/quoters/v2-quoter.js.map +1 -0
  106. package/build/main/routers/alpha-router/quoters/v3-quoter.js.map +1 -0
  107. package/build/main/routers/alpha-router/quoters/v4-quoter.js.map +1 -0
  108. package/build/main/routers/index.js.map +1 -0
  109. package/build/main/routers/legacy-router/bases.js.map +1 -0
  110. package/build/main/routers/legacy-router/index.js.map +1 -0
  111. package/build/main/routers/legacy-router/legacy-router.js.map +1 -0
  112. package/build/main/routers/router.js.map +1 -0
  113. package/build/main/tsconfig.tsbuildinfo +1 -1
  114. package/build/main/types/other/commons.js.map +1 -0
  115. package/build/main/types/other/factories/Erc20__factory.js.map +1 -0
  116. package/build/main/types/other/factories/GasDataArbitrum__factory.js.map +1 -0
  117. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js.map +1 -0
  118. package/build/main/types/other/factories/ITokenValidator__factory.js.map +1 -0
  119. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js.map +1 -0
  120. package/build/main/types/other/factories/Permit2__factory.js.map +1 -0
  121. package/build/main/types/other/factories/StateView__factory.js.map +1 -0
  122. package/build/main/types/other/factories/SwapRouter02__factory.js.map +1 -0
  123. package/build/main/types/other/factories/TokenFeeDetector__factory.js.map +1 -0
  124. package/build/main/types/other/factories/V4Quoter__factory.js.map +1 -0
  125. package/build/main/types/v2/commons.js.map +1 -0
  126. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js.map +1 -0
  127. package/build/main/types/v3/commons.js.map +1 -0
  128. package/build/main/types/v3/factories/IERC20Metadata__factory.js.map +1 -0
  129. package/build/main/types/v3/factories/IQuoterV2__factory.js.map +1 -0
  130. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js.map +1 -0
  131. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js.map +1 -0
  132. package/build/main/util/addresses.js.map +1 -0
  133. package/build/main/util/amounts.js.map +1 -0
  134. package/build/main/util/callData.js.map +1 -0
  135. package/build/main/util/chains.js.map +1 -0
  136. package/build/main/util/defaultBlocksToLive.js.map +1 -0
  137. package/build/main/util/fewAddress.js.map +1 -0
  138. package/build/main/util/gas-factory-helpers.js.map +1 -0
  139. package/build/main/util/hooksOptions.js.map +1 -0
  140. package/build/main/util/index.js.map +1 -0
  141. package/build/main/util/intent.js.map +1 -0
  142. package/build/main/util/l2FeeChains.js.map +1 -0
  143. package/build/main/util/log.js.map +1 -0
  144. package/build/main/util/methodParameters.js +3 -1
  145. package/build/main/util/methodParameters.js.map +1 -0
  146. package/build/main/util/metric.js.map +1 -0
  147. package/build/main/util/mixedRouteFilterOutV4Pools.js.map +1 -0
  148. package/build/main/util/onchainQuoteProviderConfigs.js.map +1 -0
  149. package/build/main/util/pool.js.map +1 -0
  150. package/build/main/util/protocols.js.map +1 -0
  151. package/build/main/util/routes.js.map +1 -0
  152. package/build/main/util/serializeRouteIds.js.map +1 -0
  153. package/build/main/util/simple-perf-tracker.js.map +1 -0
  154. package/build/main/util/tenderlySimulationErrorBreakDown.js.map +1 -0
  155. package/build/main/util/unsupported-tokens.js.map +1 -0
  156. package/build/module/providers/on-chain-quote-provider.d.ts +4 -4
  157. package/build/module/providers/on-chain-quote-provider.js +35 -37
  158. package/build/module/routers/alpha-router/alpha-router.d.ts +9 -0
  159. package/build/module/routers/alpha-router/alpha-router.js +4 -1
  160. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  161. package/build/module/util/methodParameters.js +3 -1
  162. 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":";AAAA,oBAAoB;;;AAIpB,MAAM,UAAU;IAAhB;QACU,kBAAa,GACnB,iFAAiF,CAAC;QAyBpF,QAAG,GAAG,IAAI,CAAC;IAoGb,CAAC;IA5HC,SAAS,CAAC,OAAsB;QAC9B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,cAAc,CAAC,YAAgC;QAC7C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,KAAK,CAAC,QAAgB,EAAE,OAAiB;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,iBAAiB;QACf,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IAGD,KAAK,CAAC,MAAY;QAChB,OAAO;IACT,CAAC;IAID,MAAM,CAAC,KAAW,EAAE,MAAY;QAC9B,OAAO;IACT,CAAC;IAOD,KAAK,CAAC,GAAG,KAAU;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,GAAG,KAAU;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,IAAI,CAAC,GAAG,KAAU;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,IAAI,CAAC,GAAG,KAAU;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,GAAG,KAAU;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,KAAK,CAAC,GAAG,KAAU;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,WAAW,CACT,MAAuB,EACvB,SAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,EAAE,CAAC,MAAuB,EAAE,SAAmC;QAC7D,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,MAAuB,EAAE,SAAmC;QAC/D,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,cAAc,CACZ,MAAuB,EACvB,SAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,GAAG,CAAC,MAAuB,EAAE,SAAmC;QAC9D,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,kBAAkB,CAAC,MAAwB;QACzC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,eAAe,CAAC,EAAU;QACxB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,eAAe;QACb,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,SAAS,CAAC,MAAuB;QAC/B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,YAAY,CAAC,MAAuB;QAClC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,MAAuB,EAAE,GAAG,KAAY;QAC3C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,aAAa,CAAC,MAAuB;QACnC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,eAAe,CACb,MAAuB,EACvB,SAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,mBAAmB,CACjB,MAAuB,EACvB,SAAmC;QAEnC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;IACD,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACF;AAEU,QAAA,GAAG,GAAW,IAAI,UAAU,EAAE,CAAC;AAEnC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE;IAC9C,WAAG,GAAG,IAAI,CAAC;AACb,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B","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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kUGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL21ldGhvZFBhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMERBS21DO0FBQ25DLHNEQUE4RTtBQUM5RSw4RUFJNkM7QUFDN0MsMERBQXVFO0FBQ3ZFLGtEQUE0RDtBQUM1RCxrREFBNEQ7QUFDNUQsa0RBQTREO0FBQzVELG9EQUF1QjtBQUV2QiwwQkFZWTtBQUVaLFNBQWdCLFVBQVUsQ0FDeEIsZUFBeUIsRUFDekIsZUFBc0IsRUFDdEIsZ0JBQTBCLEVBQzFCLGdCQUF1QixFQUN2QixTQUFxQixFQUNyQixZQUFtQztJQUVuQyxnREFBZ0Q7SUFDaEQsTUFBTSxjQUFjLEdBQUcsZ0JBQUMsQ0FBQyxNQUFNLENBQzdCLFlBQVksRUFDWixDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsS0FBSyxxQkFBUSxDQUFDLEVBQUUsQ0FDdEQsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLGdCQUFDLENBQUMsTUFBTSxDQUM3QixZQUFZLEVBQ1osQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUsscUJBQVEsQ0FBQyxFQUFFLENBQ3RELENBQUM7SUFDRixNQUFNLGNBQWMsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDN0IsWUFBWSxFQUNaLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFRLENBQUMsRUFBRSxDQUN0RCxDQUFDO0lBQ0YsTUFBTSxxQkFBcUIsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDcEMsWUFBWSxFQUNaLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLHFCQUFRLENBQUMsS0FBSyxDQUN6RCxDQUFDO0lBQ0YsTUFBTSxpQkFBaUIsR0FBRyxnQkFBQyxDQUFDLE1BQU0sQ0FDaEMs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
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":"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","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"]}