@ring-protocol/smart-order-router 0.5.1 → 0.5.2

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 (156) hide show
  1. package/build/main/routers/alpha-router/alpha-router.js +1 -4
  2. package/build/main/tsconfig.tsbuildinfo +1 -1
  3. package/build/main/util/methodParameters.js +1 -3
  4. package/build/module/routers/alpha-router/alpha-router.js +1 -4
  5. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  6. package/build/module/util/methodParameters.js +1 -3
  7. package/package.json +5 -5
  8. package/build/main/index.js.map +0 -1
  9. package/build/main/providers/cache-node.js.map +0 -1
  10. package/build/main/providers/cache.js.map +0 -1
  11. package/build/main/providers/caching/route/index.js.map +0 -1
  12. package/build/main/providers/caching/route/model/cache-mode.js.map +0 -1
  13. package/build/main/providers/caching/route/model/cached-route.js.map +0 -1
  14. package/build/main/providers/caching/route/model/cached-routes.js.map +0 -1
  15. package/build/main/providers/caching/route/model/index.js.map +0 -1
  16. package/build/main/providers/caching/route/route-caching-provider.js.map +0 -1
  17. package/build/main/providers/caching-gas-provider.js.map +0 -1
  18. package/build/main/providers/caching-subgraph-provider.js.map +0 -1
  19. package/build/main/providers/caching-token-list-provider.js.map +0 -1
  20. package/build/main/providers/caching-token-provider.js.map +0 -1
  21. package/build/main/providers/eip-1559-gas-price-provider.js.map +0 -1
  22. package/build/main/providers/eth-estimate-gas-provider.js.map +0 -1
  23. package/build/main/providers/eth-gas-station-info-gas-price-provider.js.map +0 -1
  24. package/build/main/providers/fewV2/ring-caching-pool-provider.js.map +0 -1
  25. package/build/main/providers/fewV2/ring-caching-subgraph-provider.js.map +0 -1
  26. package/build/main/providers/fewV2/ring-pool-provider.js.map +0 -1
  27. package/build/main/providers/fewV2/ring-quote-provider.js.map +0 -1
  28. package/build/main/providers/fewV2/ring-static-subgraph-provider.js.map +0 -1
  29. package/build/main/providers/fewV2/ring-subgraph-provider-with-fallback.js.map +0 -1
  30. package/build/main/providers/fewV2/ring-subgraph-provider.js.map +0 -1
  31. package/build/main/providers/fewV2/ring-uri-subgraph-provider.js.map +0 -1
  32. package/build/main/providers/gas-price-provider.js.map +0 -1
  33. package/build/main/providers/index.js.map +0 -1
  34. package/build/main/providers/legacy-gas-price-provider.js.map +0 -1
  35. package/build/main/providers/multicall-provider.js.map +0 -1
  36. package/build/main/providers/multicall-ringswap-provider.js.map +0 -1
  37. package/build/main/providers/multicall-uniswap-provider.js.map +0 -1
  38. package/build/main/providers/on-chain-gas-price-provider.js.map +0 -1
  39. package/build/main/providers/on-chain-quote-provider.js.map +0 -1
  40. package/build/main/providers/pool-provider.js.map +0 -1
  41. package/build/main/providers/portion-provider.js.map +0 -1
  42. package/build/main/providers/provider.js.map +0 -1
  43. package/build/main/providers/simulation-provider.js.map +0 -1
  44. package/build/main/providers/static-gas-price-provider.js.map +0 -1
  45. package/build/main/providers/subgraph-provider-with-fallback.js.map +0 -1
  46. package/build/main/providers/subgraph-provider.js.map +0 -1
  47. package/build/main/providers/swap-router-provider.js.map +0 -1
  48. package/build/main/providers/tenderly-simulation-provider.js.map +0 -1
  49. package/build/main/providers/token-fee-fetcher.js.map +0 -1
  50. package/build/main/providers/token-properties-provider.js.map +0 -1
  51. package/build/main/providers/token-provider.js.map +0 -1
  52. package/build/main/providers/token-validator-provider.js.map +0 -1
  53. package/build/main/providers/uri-subgraph-provider.js.map +0 -1
  54. package/build/main/providers/v2/caching-pool-provider.js.map +0 -1
  55. package/build/main/providers/v2/caching-subgraph-provider.js.map +0 -1
  56. package/build/main/providers/v2/pool-provider.js.map +0 -1
  57. package/build/main/providers/v2/quote-provider.js.map +0 -1
  58. package/build/main/providers/v2/static-subgraph-provider.js.map +0 -1
  59. package/build/main/providers/v2/subgraph-provider-with-fallback.js.map +0 -1
  60. package/build/main/providers/v2/subgraph-provider.js.map +0 -1
  61. package/build/main/providers/v2/uri-subgraph-provider.js.map +0 -1
  62. package/build/main/providers/v3/caching-pool-provider.js.map +0 -1
  63. package/build/main/providers/v3/caching-subgraph-provider.js.map +0 -1
  64. package/build/main/providers/v3/gas-data-provider.js.map +0 -1
  65. package/build/main/providers/v3/pool-provider.js.map +0 -1
  66. package/build/main/providers/v3/static-subgraph-provider.js.map +0 -1
  67. package/build/main/providers/v3/subgraph-provider-with-fallback.js.map +0 -1
  68. package/build/main/providers/v3/subgraph-provider.js.map +0 -1
  69. package/build/main/providers/v3/uri-subgraph-provider.js.map +0 -1
  70. package/build/main/providers/v4/caching-pool-provider.js.map +0 -1
  71. package/build/main/providers/v4/caching-subgraph-provider.js.map +0 -1
  72. package/build/main/providers/v4/pool-provider.js.map +0 -1
  73. package/build/main/providers/v4/static-subgraph-provider.js.map +0 -1
  74. package/build/main/providers/v4/subgraph-provider-with-fallback.js.map +0 -1
  75. package/build/main/providers/v4/subgraph-provider.js.map +0 -1
  76. package/build/main/providers/v4/uri-subgraph-provider.js.map +0 -1
  77. package/build/main/routers/alpha-router/alpha-router.js.map +0 -1
  78. package/build/main/routers/alpha-router/config.js.map +0 -1
  79. package/build/main/routers/alpha-router/entities/index.js.map +0 -1
  80. package/build/main/routers/alpha-router/entities/route-with-valid-quote.js.map +0 -1
  81. package/build/main/routers/alpha-router/functions/best-swap-route.js.map +0 -1
  82. package/build/main/routers/alpha-router/functions/calculate-ratio-amount-in.js.map +0 -1
  83. package/build/main/routers/alpha-router/functions/compute-all-routes.js.map +0 -1
  84. package/build/main/routers/alpha-router/functions/get-candidate-pools.js.map +0 -1
  85. package/build/main/routers/alpha-router/gas-models/fewV2/v2-heuristic-gas-model.js.map +0 -1
  86. package/build/main/routers/alpha-router/gas-models/gas-costs.js.map +0 -1
  87. package/build/main/routers/alpha-router/gas-models/gas-model.js.map +0 -1
  88. package/build/main/routers/alpha-router/gas-models/index.js.map +0 -1
  89. package/build/main/routers/alpha-router/gas-models/mixedRoute/mixed-route-heuristic-gas-model.js.map +0 -1
  90. package/build/main/routers/alpha-router/gas-models/ring-gas-model.js.map +0 -1
  91. package/build/main/routers/alpha-router/gas-models/tick-based-heuristic-gas-model.js.map +0 -1
  92. package/build/main/routers/alpha-router/gas-models/uniswapFewV3/v3-heuristic-gas-model.js.map +0 -1
  93. package/build/main/routers/alpha-router/gas-models/uniswapFewV4/v4-heuristic-gas-model.js.map +0 -1
  94. package/build/main/routers/alpha-router/gas-models/v2/v2-heuristic-gas-model.js.map +0 -1
  95. package/build/main/routers/alpha-router/gas-models/v3/v3-heuristic-gas-model.js.map +0 -1
  96. package/build/main/routers/alpha-router/gas-models/v4/v4-heuristic-gas-model.js.map +0 -1
  97. package/build/main/routers/alpha-router/index.js.map +0 -1
  98. package/build/main/routers/alpha-router/quoters/base-quoter.js.map +0 -1
  99. package/build/main/routers/alpha-router/quoters/few-v2-quoter.js.map +0 -1
  100. package/build/main/routers/alpha-router/quoters/index.js.map +0 -1
  101. package/build/main/routers/alpha-router/quoters/mixed-quoter.js.map +0 -1
  102. package/build/main/routers/alpha-router/quoters/model/index.js.map +0 -1
  103. package/build/main/routers/alpha-router/quoters/model/results/get-quotes-result.js.map +0 -1
  104. package/build/main/routers/alpha-router/quoters/model/results/get-routes-result.js.map +0 -1
  105. package/build/main/routers/alpha-router/quoters/model/results/index.js.map +0 -1
  106. package/build/main/routers/alpha-router/quoters/uniswap-few-v3-quoter.js.map +0 -1
  107. package/build/main/routers/alpha-router/quoters/uniswap-few-v4-quoter.js.map +0 -1
  108. package/build/main/routers/alpha-router/quoters/v2-quoter.js.map +0 -1
  109. package/build/main/routers/alpha-router/quoters/v3-quoter.js.map +0 -1
  110. package/build/main/routers/alpha-router/quoters/v4-quoter.js.map +0 -1
  111. package/build/main/routers/index.js.map +0 -1
  112. package/build/main/routers/legacy-router/bases.js.map +0 -1
  113. package/build/main/routers/legacy-router/index.js.map +0 -1
  114. package/build/main/routers/legacy-router/legacy-router.js.map +0 -1
  115. package/build/main/routers/router.js.map +0 -1
  116. package/build/main/types/other/commons.js.map +0 -1
  117. package/build/main/types/other/factories/Erc20__factory.js.map +0 -1
  118. package/build/main/types/other/factories/GasDataArbitrum__factory.js.map +0 -1
  119. package/build/main/types/other/factories/IMixedRouteQuoterV1__factory.js.map +0 -1
  120. package/build/main/types/other/factories/ITokenValidator__factory.js.map +0 -1
  121. package/build/main/types/other/factories/MixedRouteQuoterV2__factory.js.map +0 -1
  122. package/build/main/types/other/factories/Permit2__factory.js.map +0 -1
  123. package/build/main/types/other/factories/StateView__factory.js.map +0 -1
  124. package/build/main/types/other/factories/SwapRouter02__factory.js.map +0 -1
  125. package/build/main/types/other/factories/TokenFeeDetector__factory.js.map +0 -1
  126. package/build/main/types/other/factories/V4Quoter__factory.js.map +0 -1
  127. package/build/main/types/v2/commons.js.map +0 -1
  128. package/build/main/types/v2/factories/IUniswapV2Pair__factory.js.map +0 -1
  129. package/build/main/types/v3/commons.js.map +0 -1
  130. package/build/main/types/v3/factories/IERC20Metadata__factory.js.map +0 -1
  131. package/build/main/types/v3/factories/IQuoterV2__factory.js.map +0 -1
  132. package/build/main/types/v3/factories/IUniswapV3PoolState__factory.js.map +0 -1
  133. package/build/main/types/v3/factories/UniswapInterfaceMulticall__factory.js.map +0 -1
  134. package/build/main/util/addresses.js.map +0 -1
  135. package/build/main/util/amounts.js.map +0 -1
  136. package/build/main/util/callData.js.map +0 -1
  137. package/build/main/util/chains.js.map +0 -1
  138. package/build/main/util/defaultBlocksToLive.js.map +0 -1
  139. package/build/main/util/fewAddress.js.map +0 -1
  140. package/build/main/util/gas-factory-helpers.js.map +0 -1
  141. package/build/main/util/hooksOptions.js.map +0 -1
  142. package/build/main/util/index.js.map +0 -1
  143. package/build/main/util/intent.js.map +0 -1
  144. package/build/main/util/l2FeeChains.js.map +0 -1
  145. package/build/main/util/log.js.map +0 -1
  146. package/build/main/util/methodParameters.js.map +0 -1
  147. package/build/main/util/metric.js.map +0 -1
  148. package/build/main/util/mixedRouteFilterOutV4Pools.js.map +0 -1
  149. package/build/main/util/onchainQuoteProviderConfigs.js.map +0 -1
  150. package/build/main/util/pool.js.map +0 -1
  151. package/build/main/util/protocols.js.map +0 -1
  152. package/build/main/util/routes.js.map +0 -1
  153. package/build/main/util/serializeRouteIds.js.map +0 -1
  154. package/build/main/util/simple-perf-tracker.js.map +0 -1
  155. package/build/main/util/tenderlySimulationErrorBreakDown.js.map +0 -1
  156. package/build/main/util/unsupported-tokens.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/util/routes.ts"],"names":[],"mappings":"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","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"]}
@@ -1 +0,0 @@
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"]}
@@ -1 +0,0 @@
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"]}
@@ -1 +0,0 @@
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"]}
@@ -1 +0,0 @@
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"]}