From 556928298840006c0e9f9017b37d890fa48c03fe Mon Sep 17 00:00:00 2001 From: Cela Pablo Date: Fri, 7 Nov 2025 15:13:07 -0300 Subject: [PATCH 1/2] feat(sdk-core): blockdag awakening add v3 addresses --- sdks/sdk-core/.gitignore | 2 +- sdks/sdk-core/dist/addresses.d.ts | 58 + sdks/sdk-core/dist/chains.d.ts | 45 + sdks/sdk-core/dist/constants.d.ts | 12 + sdks/sdk-core/dist/entities/baseCurrency.d.ts | 49 + sdks/sdk-core/dist/entities/currency.d.ts | 3 + sdks/sdk-core/dist/entities/ether.d.ts | 13 + .../entities/fractions/currencyAmount.d.ts | 31 + .../dist/entities/fractions/fraction.d.ts | 24 + .../dist/entities/fractions/index.d.ts | 4 + .../dist/entities/fractions/percent.d.ts | 14 + .../dist/entities/fractions/price.d.ts | 38 + sdks/sdk-core/dist/entities/index.d.ts | 6 + .../dist/entities/nativeCurrency.d.ts | 8 + sdks/sdk-core/dist/entities/token.d.ts | 48 + sdks/sdk-core/dist/entities/weth9.d.ts | 7 + sdks/sdk-core/dist/index.d.ts | 5 + sdks/sdk-core/dist/index.js | 8 + .../sdk-core/dist/sdk-core.cjs.development.js | 1138 +++++++++++++++++ .../dist/sdk-core.cjs.development.js.map | 1 + .../dist/sdk-core.cjs.production.min.js | 2 + .../dist/sdk-core.cjs.production.min.js.map | 1 + sdks/sdk-core/dist/sdk-core.esm.js | 1099 ++++++++++++++++ sdks/sdk-core/dist/sdk-core.esm.js.map | 1 + .../dist/utils/computePriceImpact.d.ts | 8 + .../utils/computeZksyncCreate2Address.d.ts | 2 + sdks/sdk-core/dist/utils/index.d.ts | 5 + sdks/sdk-core/dist/utils/sortedInsert.d.ts | 1 + sdks/sdk-core/dist/utils/sqrt.d.ts | 7 + .../dist/utils/validateAndParseAddress.d.ts | 10 + sdks/sdk-core/src/addresses.ts | 11 + sdks/sdk-core/src/chains.ts | 2 + 32 files changed, 2662 insertions(+), 1 deletion(-) create mode 100644 sdks/sdk-core/dist/addresses.d.ts create mode 100644 sdks/sdk-core/dist/chains.d.ts create mode 100644 sdks/sdk-core/dist/constants.d.ts create mode 100644 sdks/sdk-core/dist/entities/baseCurrency.d.ts create mode 100644 sdks/sdk-core/dist/entities/currency.d.ts create mode 100644 sdks/sdk-core/dist/entities/ether.d.ts create mode 100644 sdks/sdk-core/dist/entities/fractions/currencyAmount.d.ts create mode 100644 sdks/sdk-core/dist/entities/fractions/fraction.d.ts create mode 100644 sdks/sdk-core/dist/entities/fractions/index.d.ts create mode 100644 sdks/sdk-core/dist/entities/fractions/percent.d.ts create mode 100644 sdks/sdk-core/dist/entities/fractions/price.d.ts create mode 100644 sdks/sdk-core/dist/entities/index.d.ts create mode 100644 sdks/sdk-core/dist/entities/nativeCurrency.d.ts create mode 100644 sdks/sdk-core/dist/entities/token.d.ts create mode 100644 sdks/sdk-core/dist/entities/weth9.d.ts create mode 100644 sdks/sdk-core/dist/index.d.ts create mode 100644 sdks/sdk-core/dist/index.js create mode 100644 sdks/sdk-core/dist/sdk-core.cjs.development.js create mode 100644 sdks/sdk-core/dist/sdk-core.cjs.development.js.map create mode 100644 sdks/sdk-core/dist/sdk-core.cjs.production.min.js create mode 100644 sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map create mode 100644 sdks/sdk-core/dist/sdk-core.esm.js create mode 100644 sdks/sdk-core/dist/sdk-core.esm.js.map create mode 100644 sdks/sdk-core/dist/utils/computePriceImpact.d.ts create mode 100644 sdks/sdk-core/dist/utils/computeZksyncCreate2Address.d.ts create mode 100644 sdks/sdk-core/dist/utils/index.d.ts create mode 100644 sdks/sdk-core/dist/utils/sortedInsert.d.ts create mode 100644 sdks/sdk-core/dist/utils/sqrt.d.ts create mode 100644 sdks/sdk-core/dist/utils/validateAndParseAddress.d.ts diff --git a/sdks/sdk-core/.gitignore b/sdks/sdk-core/.gitignore index de4d1f007..e2125946d 100644 --- a/sdks/sdk-core/.gitignore +++ b/sdks/sdk-core/.gitignore @@ -1,2 +1,2 @@ -dist + node_modules diff --git a/sdks/sdk-core/dist/addresses.d.ts b/sdks/sdk-core/dist/addresses.d.ts new file mode 100644 index 000000000..26f22ebeb --- /dev/null +++ b/sdks/sdk-core/dist/addresses.d.ts @@ -0,0 +1,58 @@ +import { SupportedChainsType } from './chains'; +declare type AddressMap = { + [chainId: number]: string; +}; +declare type ChainAddresses = { + v3CoreFactoryAddress: string; + multicallAddress: string; + quoterAddress: string; + v3MigratorAddress?: string; + nonfungiblePositionManagerAddress?: string; + tickLensAddress?: string; + swapRouter02Address?: string; + mixedRouteQuoterV1Address?: string; + mixedRouteQuoterV2Address?: string; + v4PoolManagerAddress?: string; + v4PositionManagerAddress?: string; + v4StateView?: string; + v4QuoterAddress?: string; +}; +export declare const UNI_ADDRESSES: AddressMap; +export declare const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = "0x8B799381ac40b838BBA4131ffB26197C432AFe78"; +/** + * @deprecated use V2_FACTORY_ADDRESSES instead + */ +export declare const V2_FACTORY_ADDRESS = "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f"; +export declare const V2_FACTORY_ADDRESSES: AddressMap; +/** + * @deprecated use V2_ROUTER_ADDRESSES instead + */ +export declare const V2_ROUTER_ADDRESS = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"; +export declare const V2_ROUTER_ADDRESSES: AddressMap; +export declare const CHAIN_TO_ADDRESSES_MAP: Record; +export declare const V3_CORE_FACTORY_ADDRESSES: AddressMap; +export declare const V3_MIGRATOR_ADDRESSES: AddressMap; +export declare const MULTICALL_ADDRESSES: AddressMap; +/** + * The oldest V0 governance address + */ +export declare const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap; +/** + * The older V1 governance address + */ +export declare const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap; +/** + * The latest governor bravo that is currently admin of timelock + */ +export declare const GOVERNANCE_BRAVO_ADDRESSES: AddressMap; +export declare const TIMELOCK_ADDRESSES: AddressMap; +export declare const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap; +export declare const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap; +export declare const QUOTER_ADDRESSES: AddressMap; +export declare const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap; +export declare const ENS_REGISTRAR_ADDRESSES: AddressMap; +export declare const SOCKS_CONTROLLER_ADDRESSES: AddressMap; +export declare const TICK_LENS_ADDRESSES: AddressMap; +export declare const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap; +export declare const SWAP_ROUTER_02_ADDRESSES: (chainId: number) => string; +export {}; diff --git a/sdks/sdk-core/dist/chains.d.ts b/sdks/sdk-core/dist/chains.d.ts new file mode 100644 index 000000000..c081e235f --- /dev/null +++ b/sdks/sdk-core/dist/chains.d.ts @@ -0,0 +1,45 @@ +export declare enum ChainId { + MAINNET = 1, + GOERLI = 5, + SEPOLIA = 11155111, + OPTIMISM = 10, + OPTIMISM_GOERLI = 420, + OPTIMISM_SEPOLIA = 11155420, + ARBITRUM_ONE = 42161, + ARBITRUM_GOERLI = 421613, + ARBITRUM_SEPOLIA = 421614, + POLYGON = 137, + POLYGON_MUMBAI = 80001, + CELO = 42220, + CELO_ALFAJORES = 44787, + GNOSIS = 100, + MOONBEAM = 1284, + BNB = 56, + AVALANCHE = 43114, + BASE_GOERLI = 84531, + BASE_SEPOLIA = 84532, + BASE = 8453, + ZORA = 7777777, + ZORA_SEPOLIA = 999999999, + ROOTSTOCK = 30, + BLAST = 81457, + ZKSYNC = 324, + WORLDCHAIN = 480, + UNICHAIN_SEPOLIA = 1301, + UNICHAIN = 130, + MONAD_TESTNET = 10143, + SONEIUM = 1868, + MONAD = 143 +} +export declare const SUPPORTED_CHAINS: readonly [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD]; +export declare type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]; +export declare enum NativeCurrencyName { + ETHER = "ETH", + MATIC = "MATIC", + CELO = "CELO", + GNOSIS = "XDAI", + MOONBEAM = "GLMR", + BNB = "BNB", + AVAX = "AVAX", + ROOTSTOCK = "RBTC" +} diff --git a/sdks/sdk-core/dist/constants.d.ts b/sdks/sdk-core/dist/constants.d.ts new file mode 100644 index 000000000..31e9cfc91 --- /dev/null +++ b/sdks/sdk-core/dist/constants.d.ts @@ -0,0 +1,12 @@ +import JSBI from 'jsbi'; +export declare type BigintIsh = JSBI | string | number; +export declare enum TradeType { + EXACT_INPUT = 0, + EXACT_OUTPUT = 1 +} +export declare enum Rounding { + ROUND_DOWN = 0, + ROUND_HALF_UP = 1, + ROUND_UP = 2 +} +export declare const MaxUint256: JSBI; diff --git a/sdks/sdk-core/dist/entities/baseCurrency.d.ts b/sdks/sdk-core/dist/entities/baseCurrency.d.ts new file mode 100644 index 000000000..826628306 --- /dev/null +++ b/sdks/sdk-core/dist/entities/baseCurrency.d.ts @@ -0,0 +1,49 @@ +import { Currency } from './currency'; +import { Token } from './token'; +/** + * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies + */ +export declare abstract class BaseCurrency { + /** + * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether) + */ + abstract readonly isNative: boolean; + /** + * Returns whether the currency is a token that is usable in Uniswap without wrapping + */ + abstract readonly isToken: boolean; + /** + * The chain ID on which this currency resides + */ + readonly chainId: number; + /** + * The decimals used in representing currency amounts + */ + readonly decimals: number; + /** + * The symbol of the currency, i.e. a short textual non-unique identifier + */ + readonly symbol?: string; + /** + * The name of the currency, i.e. a descriptive textual non-unique identifier + */ + readonly name?: string; + /** + * Constructs an instance of the base class `BaseCurrency`. + * @param chainId the chain ID on which this currency resides + * @param decimals decimals of the currency + * @param symbol symbol of the currency + * @param name of the currency + */ + protected constructor(chainId: number, decimals: number, symbol?: string, name?: string); + /** + * Returns whether this currency is functionally equivalent to the other currency + * @param other the other currency + */ + abstract equals(other: Currency): boolean; + /** + * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must + * implement this to be used in Uniswap + */ + abstract get wrapped(): Token; +} diff --git a/sdks/sdk-core/dist/entities/currency.d.ts b/sdks/sdk-core/dist/entities/currency.d.ts new file mode 100644 index 000000000..1853a28bc --- /dev/null +++ b/sdks/sdk-core/dist/entities/currency.d.ts @@ -0,0 +1,3 @@ +import { NativeCurrency } from './nativeCurrency'; +import { Token } from './token'; +export declare type Currency = NativeCurrency | Token; diff --git a/sdks/sdk-core/dist/entities/ether.d.ts b/sdks/sdk-core/dist/entities/ether.d.ts new file mode 100644 index 000000000..e8021e4cb --- /dev/null +++ b/sdks/sdk-core/dist/entities/ether.d.ts @@ -0,0 +1,13 @@ +import { Currency } from './currency'; +import { NativeCurrency } from './nativeCurrency'; +import { Token } from './token'; +/** + * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets + */ +export declare class Ether extends NativeCurrency { + protected constructor(chainId: number); + get wrapped(): Token; + private static _etherCache; + static onChain(chainId: number): Ether; + equals(other: Currency): boolean; +} diff --git a/sdks/sdk-core/dist/entities/fractions/currencyAmount.d.ts b/sdks/sdk-core/dist/entities/fractions/currencyAmount.d.ts new file mode 100644 index 000000000..b59581bce --- /dev/null +++ b/sdks/sdk-core/dist/entities/fractions/currencyAmount.d.ts @@ -0,0 +1,31 @@ +import JSBI from 'jsbi'; +import { Currency } from '../currency'; +import { Token } from '../token'; +import { Fraction } from './fraction'; +import { BigintIsh, Rounding } from '../../constants'; +export declare class CurrencyAmount extends Fraction { + readonly currency: T; + readonly decimalScale: JSBI; + /** + * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount + * @param currency the currency in the amount + * @param rawAmount the raw token or ether amount + */ + static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount; + /** + * Construct a currency amount with a denominator that is not equal to 1 + * @param currency the currency + * @param numerator the numerator of the fractional token amount + * @param denominator the denominator of the fractional token amount + */ + static fromFractionalAmount(currency: T, numerator: BigintIsh, denominator: BigintIsh): CurrencyAmount; + protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh); + add(other: CurrencyAmount): CurrencyAmount; + subtract(other: CurrencyAmount): CurrencyAmount; + multiply(other: Fraction | BigintIsh): CurrencyAmount; + divide(other: Fraction | BigintIsh): CurrencyAmount; + toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string; + toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string; + toExact(format?: object): string; + get wrapped(): CurrencyAmount; +} diff --git a/sdks/sdk-core/dist/entities/fractions/fraction.d.ts b/sdks/sdk-core/dist/entities/fractions/fraction.d.ts new file mode 100644 index 000000000..33e689a8a --- /dev/null +++ b/sdks/sdk-core/dist/entities/fractions/fraction.d.ts @@ -0,0 +1,24 @@ +import JSBI from 'jsbi'; +import { BigintIsh, Rounding } from '../../constants'; +export declare class Fraction { + readonly numerator: JSBI; + readonly denominator: JSBI; + constructor(numerator: BigintIsh, denominator?: BigintIsh); + private static tryParseFraction; + get quotient(): JSBI; + get remainder(): Fraction; + invert(): Fraction; + add(other: Fraction | BigintIsh): Fraction; + subtract(other: Fraction | BigintIsh): Fraction; + lessThan(other: Fraction | BigintIsh): boolean; + equalTo(other: Fraction | BigintIsh): boolean; + greaterThan(other: Fraction | BigintIsh): boolean; + multiply(other: Fraction | BigintIsh): Fraction; + divide(other: Fraction | BigintIsh): Fraction; + toSignificant(significantDigits: number, format?: object, rounding?: Rounding): string; + toFixed(decimalPlaces: number, format?: object, rounding?: Rounding): string; + /** + * Helper method for converting any super class back to a fraction + */ + get asFraction(): Fraction; +} diff --git a/sdks/sdk-core/dist/entities/fractions/index.d.ts b/sdks/sdk-core/dist/entities/fractions/index.d.ts new file mode 100644 index 000000000..15a94ae42 --- /dev/null +++ b/sdks/sdk-core/dist/entities/fractions/index.d.ts @@ -0,0 +1,4 @@ +export { CurrencyAmount } from './currencyAmount'; +export { Fraction } from './fraction'; +export { Percent } from './percent'; +export { Price } from './price'; diff --git a/sdks/sdk-core/dist/entities/fractions/percent.d.ts b/sdks/sdk-core/dist/entities/fractions/percent.d.ts new file mode 100644 index 000000000..aeb68f472 --- /dev/null +++ b/sdks/sdk-core/dist/entities/fractions/percent.d.ts @@ -0,0 +1,14 @@ +import { BigintIsh, Rounding } from '../../constants'; +import { Fraction } from './fraction'; +export declare class Percent extends Fraction { + /** + * This boolean prevents a fraction from being interpreted as a Percent + */ + readonly isPercent: true; + add(other: Fraction | BigintIsh): Percent; + subtract(other: Fraction | BigintIsh): Percent; + multiply(other: Fraction | BigintIsh): Percent; + divide(other: Fraction | BigintIsh): Percent; + toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string; + toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string; +} diff --git a/sdks/sdk-core/dist/entities/fractions/price.d.ts b/sdks/sdk-core/dist/entities/fractions/price.d.ts new file mode 100644 index 000000000..4a8843798 --- /dev/null +++ b/sdks/sdk-core/dist/entities/fractions/price.d.ts @@ -0,0 +1,38 @@ +import { BigintIsh, Rounding } from '../../constants'; +import { Currency } from '../currency'; +import { Fraction } from './fraction'; +import { CurrencyAmount } from './currencyAmount'; +export declare class Price extends Fraction { + readonly baseCurrency: TBase; + readonly quoteCurrency: TQuote; + readonly scalar: Fraction; + /** + * Construct a price, either with the base and quote currency amount, or the + * @param args + */ + constructor(...args: [TBase, TQuote, BigintIsh, BigintIsh] | [{ + baseAmount: CurrencyAmount; + quoteAmount: CurrencyAmount; + }]); + /** + * Flip the price, switching the base and quote currency + */ + invert(): Price; + /** + * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency + * @param other the other price + */ + multiply(other: Price): Price; + /** + * Return the amount of quote currency corresponding to a given amount of the base currency + * @param currencyAmount the amount of base currency to quote against the price + */ + quote(currencyAmount: CurrencyAmount): CurrencyAmount; + /** + * Get the value scaled by decimals for formatting + * @private + */ + private get adjustedForDecimals(); + toSignificant(significantDigits?: number, format?: object, rounding?: Rounding): string; + toFixed(decimalPlaces?: number, format?: object, rounding?: Rounding): string; +} diff --git a/sdks/sdk-core/dist/entities/index.d.ts b/sdks/sdk-core/dist/entities/index.d.ts new file mode 100644 index 000000000..3451cc414 --- /dev/null +++ b/sdks/sdk-core/dist/entities/index.d.ts @@ -0,0 +1,6 @@ +export * from './fractions'; +export * from './currency'; +export * from './ether'; +export * from './nativeCurrency'; +export * from './token'; +export * from './weth9'; diff --git a/sdks/sdk-core/dist/entities/nativeCurrency.d.ts b/sdks/sdk-core/dist/entities/nativeCurrency.d.ts new file mode 100644 index 000000000..eee1b0235 --- /dev/null +++ b/sdks/sdk-core/dist/entities/nativeCurrency.d.ts @@ -0,0 +1,8 @@ +import { BaseCurrency } from './baseCurrency'; +/** + * Represents the native currency of the chain on which it resides, e.g. + */ +export declare abstract class NativeCurrency extends BaseCurrency { + readonly isNative: true; + readonly isToken: false; +} diff --git a/sdks/sdk-core/dist/entities/token.d.ts b/sdks/sdk-core/dist/entities/token.d.ts new file mode 100644 index 000000000..e4cdc15ce --- /dev/null +++ b/sdks/sdk-core/dist/entities/token.d.ts @@ -0,0 +1,48 @@ +import { BigNumber } from '@ethersproject/bignumber'; +import { BaseCurrency } from './baseCurrency'; +import { Currency } from './currency'; +/** + * Represents an ERC20 token with a unique address and some metadata. + */ +export declare class Token extends BaseCurrency { + readonly isNative: false; + readonly isToken: true; + /** + * The contract address on the chain on which this token lives + */ + readonly address: string; + /** + * Relevant for fee-on-transfer (FOT) token taxes, + * Not every ERC20 token is FOT token, so this field is optional + */ + readonly buyFeeBps?: BigNumber; + readonly sellFeeBps?: BigNumber; + /** + * + * @param chainId {@link BaseCurrency#chainId} + * @param address The contract address on the chain on which this token lives + * @param decimals {@link BaseCurrency#decimals} + * @param symbol {@link BaseCurrency#symbol} + * @param name {@link BaseCurrency#name} + * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters + * @param buyFeeBps Buy fee tax for FOT tokens, in basis points + * @param sellFeeBps Sell fee tax for FOT tokens, in basis points + */ + constructor(chainId: number, address: string, decimals: number, symbol?: string, name?: string, bypassChecksum?: boolean, buyFeeBps?: BigNumber, sellFeeBps?: BigNumber); + /** + * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. + * @param other other token to compare + */ + equals(other: Currency): boolean; + /** + * Returns true if the address of this token sorts before the address of the other token + * @param other other token to compare + * @throws if the tokens have the same address + * @throws if the tokens are on different chains + */ + sortsBefore(other: Token): boolean; + /** + * Return this token, which does not need to be wrapped + */ + get wrapped(): Token; +} diff --git a/sdks/sdk-core/dist/entities/weth9.d.ts b/sdks/sdk-core/dist/entities/weth9.d.ts new file mode 100644 index 000000000..439845a2e --- /dev/null +++ b/sdks/sdk-core/dist/entities/weth9.d.ts @@ -0,0 +1,7 @@ +import { Token } from './token'; +/** + * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped + */ +export declare const WETH9: { + [chainId: number]: Token; +}; diff --git a/sdks/sdk-core/dist/index.d.ts b/sdks/sdk-core/dist/index.d.ts new file mode 100644 index 000000000..97240d1a6 --- /dev/null +++ b/sdks/sdk-core/dist/index.d.ts @@ -0,0 +1,5 @@ +export * from './addresses'; +export * from './chains'; +export * from './constants'; +export * from './entities'; +export * from './utils'; diff --git a/sdks/sdk-core/dist/index.js b/sdks/sdk-core/dist/index.js new file mode 100644 index 000000000..c3473ea9b --- /dev/null +++ b/sdks/sdk-core/dist/index.js @@ -0,0 +1,8 @@ + +'use strict' + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./sdk-core.cjs.production.min.js') +} else { + module.exports = require('./sdk-core.cjs.development.js') +} diff --git a/sdks/sdk-core/dist/sdk-core.cjs.development.js b/sdks/sdk-core/dist/sdk-core.cjs.development.js new file mode 100644 index 000000000..7223f7480 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.cjs.development.js @@ -0,0 +1,1138 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var JSBI = _interopDefault(require('jsbi')); +var invariant = _interopDefault(require('tiny-invariant')); +var _Decimal = _interopDefault(require('decimal.js-light')); +var _Big = _interopDefault(require('big.js')); +var toFormat = _interopDefault(require('toformat')); +var bignumber = require('@ethersproject/bignumber'); +var address = require('@ethersproject/address'); +var bytes = require('@ethersproject/bytes'); +var keccak256 = require('@ethersproject/keccak256'); +var strings = require('@ethersproject/strings'); + +function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); + } +} +function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { + writable: !1 + }), e; +} +function _extends() { + return _extends = Object.assign ? Object.assign.bind() : function (n) { + for (var e = 1; e < arguments.length; e++) { + var t = arguments[e]; + for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); + } + return n; + }, _extends.apply(null, arguments); +} +function _inheritsLoose(t, o) { + t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); +} +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} +function _toPrimitive(t, r) { + if ("object" != typeof t || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != typeof i) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} +function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; +} + +(function (ChainId) { + ChainId[ChainId["MAINNET"] = 1] = "MAINNET"; + ChainId[ChainId["GOERLI"] = 5] = "GOERLI"; + ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA"; + ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM"; + ChainId[ChainId["OPTIMISM_GOERLI"] = 420] = "OPTIMISM_GOERLI"; + ChainId[ChainId["OPTIMISM_SEPOLIA"] = 11155420] = "OPTIMISM_SEPOLIA"; + ChainId[ChainId["ARBITRUM_ONE"] = 42161] = "ARBITRUM_ONE"; + ChainId[ChainId["ARBITRUM_GOERLI"] = 421613] = "ARBITRUM_GOERLI"; + ChainId[ChainId["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA"; + ChainId[ChainId["POLYGON"] = 137] = "POLYGON"; + ChainId[ChainId["POLYGON_MUMBAI"] = 80001] = "POLYGON_MUMBAI"; + ChainId[ChainId["CELO"] = 42220] = "CELO"; + ChainId[ChainId["CELO_ALFAJORES"] = 44787] = "CELO_ALFAJORES"; + ChainId[ChainId["GNOSIS"] = 100] = "GNOSIS"; + ChainId[ChainId["MOONBEAM"] = 1284] = "MOONBEAM"; + ChainId[ChainId["BNB"] = 56] = "BNB"; + ChainId[ChainId["AVALANCHE"] = 43114] = "AVALANCHE"; + ChainId[ChainId["BASE_GOERLI"] = 84531] = "BASE_GOERLI"; + ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA"; + ChainId[ChainId["BASE"] = 8453] = "BASE"; + ChainId[ChainId["ZORA"] = 7777777] = "ZORA"; + ChainId[ChainId["ZORA_SEPOLIA"] = 999999999] = "ZORA_SEPOLIA"; + ChainId[ChainId["ROOTSTOCK"] = 30] = "ROOTSTOCK"; + ChainId[ChainId["BLAST"] = 81457] = "BLAST"; + ChainId[ChainId["ZKSYNC"] = 324] = "ZKSYNC"; + ChainId[ChainId["WORLDCHAIN"] = 480] = "WORLDCHAIN"; + ChainId[ChainId["UNICHAIN_SEPOLIA"] = 1301] = "UNICHAIN_SEPOLIA"; + ChainId[ChainId["UNICHAIN"] = 130] = "UNICHAIN"; + ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET"; + ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM"; + ChainId[ChainId["MONAD"] = 143] = "MONAD"; +})(exports.ChainId || (exports.ChainId = {})); +var SUPPORTED_CHAINS = [exports.ChainId.MAINNET, exports.ChainId.OPTIMISM, exports.ChainId.OPTIMISM_GOERLI, exports.ChainId.OPTIMISM_SEPOLIA, exports.ChainId.ARBITRUM_ONE, exports.ChainId.ARBITRUM_GOERLI, exports.ChainId.ARBITRUM_SEPOLIA, exports.ChainId.POLYGON, exports.ChainId.POLYGON_MUMBAI, exports.ChainId.GOERLI, exports.ChainId.SEPOLIA, exports.ChainId.CELO_ALFAJORES, exports.ChainId.CELO, exports.ChainId.BNB, exports.ChainId.AVALANCHE, exports.ChainId.BASE, exports.ChainId.BASE_GOERLI, exports.ChainId.BASE_SEPOLIA, exports.ChainId.ZORA, exports.ChainId.ZORA_SEPOLIA, exports.ChainId.ROOTSTOCK, exports.ChainId.BLAST, exports.ChainId.ZKSYNC, exports.ChainId.WORLDCHAIN, exports.ChainId.UNICHAIN_SEPOLIA, exports.ChainId.UNICHAIN, exports.ChainId.MONAD_TESTNET, exports.ChainId.SONEIUM, exports.ChainId.MONAD]; +(function (NativeCurrencyName) { + // Strings match input for CLI + NativeCurrencyName["ETHER"] = "ETH"; + NativeCurrencyName["MATIC"] = "MATIC"; + NativeCurrencyName["CELO"] = "CELO"; + NativeCurrencyName["GNOSIS"] = "XDAI"; + NativeCurrencyName["MOONBEAM"] = "GLMR"; + NativeCurrencyName["BNB"] = "BNB"; + NativeCurrencyName["AVAX"] = "AVAX"; + NativeCurrencyName["ROOTSTOCK"] = "RBTC"; +})(exports.NativeCurrencyName || (exports.NativeCurrencyName = {})); + +var _V2_FACTORY_ADDRESSES, _V2_ROUTER_ADDRESSES, _CHAIN_TO_ADDRESSES_M, _GOVERNANCE_ALPHA_V1_, _GOVERNANCE_BRAVO_ADD, _MERKLE_DISTRIBUTOR_A, _ARGENT_WALLET_DETECT, _SOCKS_CONTROLLER_ADD; +var DEFAULT_NETWORKS = [exports.ChainId.MAINNET, exports.ChainId.GOERLI, exports.ChainId.SEPOLIA]; +function constructSameAddressMap(address, additionalNetworks) { + if (additionalNetworks === void 0) { + additionalNetworks = []; + } + return DEFAULT_NETWORKS.concat(additionalNetworks).reduce(function (memo, chainId) { + memo[chainId] = address; + return memo; + }, {}); +} +var UNI_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [exports.ChainId.OPTIMISM, exports.ChainId.ARBITRUM_ONE, exports.ChainId.POLYGON, exports.ChainId.POLYGON_MUMBAI, exports.ChainId.SEPOLIA]); +var UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'; +/** + * @deprecated use V2_FACTORY_ADDRESSES instead + */ +var V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'; +var V2_FACTORY_ADDRESSES = (_V2_FACTORY_ADDRESSES = {}, _V2_FACTORY_ADDRESSES[exports.ChainId.MAINNET] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[exports.ChainId.GOERLI] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[exports.ChainId.SEPOLIA] = '0xF62c03E08ada871A0bEb309762E260a7a6a880E6', _V2_FACTORY_ADDRESSES[exports.ChainId.OPTIMISM] = '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf', _V2_FACTORY_ADDRESSES[exports.ChainId.ARBITRUM_ONE] = '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9', _V2_FACTORY_ADDRESSES[exports.ChainId.AVALANCHE] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[exports.ChainId.BASE_SEPOLIA] = '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e', _V2_FACTORY_ADDRESSES[exports.ChainId.BASE] = '0x8909dc15e40173ff4699343b6eb8132c65e18ec6', _V2_FACTORY_ADDRESSES[exports.ChainId.BNB] = '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6', _V2_FACTORY_ADDRESSES[exports.ChainId.POLYGON] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[exports.ChainId.CELO] = '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f', _V2_FACTORY_ADDRESSES[exports.ChainId.BLAST] = '0x5C346464d33F90bABaf70dB6388507CC889C1070', _V2_FACTORY_ADDRESSES[exports.ChainId.WORLDCHAIN] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[exports.ChainId.UNICHAIN_SEPOLIA] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[exports.ChainId.UNICHAIN] = '0x1f98400000000000000000000000000000000002', _V2_FACTORY_ADDRESSES[exports.ChainId.MONAD_TESTNET] = '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0', _V2_FACTORY_ADDRESSES[exports.ChainId.SONEIUM] = '0x97febbc2adbd5644ba22736e962564b23f5828ce', _V2_FACTORY_ADDRESSES[exports.ChainId.MONAD] = '0x182a927119d56008d921126764bf884221b10f59', _V2_FACTORY_ADDRESSES); +/** + * @deprecated use V2_ROUTER_ADDRESSES instead + */ +var V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'; +var V2_ROUTER_ADDRESSES = (_V2_ROUTER_ADDRESSES = {}, _V2_ROUTER_ADDRESSES[exports.ChainId.MAINNET] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[exports.ChainId.GOERLI] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[exports.ChainId.SEPOLIA] = '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3', _V2_ROUTER_ADDRESSES[exports.ChainId.ARBITRUM_ONE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[exports.ChainId.OPTIMISM] = '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2', _V2_ROUTER_ADDRESSES[exports.ChainId.BASE_SEPOLIA] = '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602', _V2_ROUTER_ADDRESSES[exports.ChainId.BASE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[exports.ChainId.AVALANCHE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[exports.ChainId.BNB] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[exports.ChainId.POLYGON] = '0xedf6066a2b290c185783862c7f4776a2c8077ad1', _V2_ROUTER_ADDRESSES[exports.ChainId.BLAST] = '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035', _V2_ROUTER_ADDRESSES[exports.ChainId.WORLDCHAIN] = '0x541aB7c31A119441eF3575F6973277DE0eF460bd', _V2_ROUTER_ADDRESSES[exports.ChainId.UNICHAIN_SEPOLIA] = '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640', _V2_ROUTER_ADDRESSES[exports.ChainId.UNICHAIN] = '0x284f11109359a7e1306c3e447ef14d38400063ff', _V2_ROUTER_ADDRESSES[exports.ChainId.MONAD_TESTNET] = '0xfb8e1c3b833f9e67a71c859a132cf783b645e436', _V2_ROUTER_ADDRESSES[exports.ChainId.SONEIUM] = '0x273f68c234fa55b550b40e563c4a488e0d334320', _V2_ROUTER_ADDRESSES[exports.ChainId.MONAD] = '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804', _V2_ROUTER_ADDRESSES); +// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon +var DEFAULT_ADDRESSES = { + v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984', + multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984', + quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6', + v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34', + nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88' +}; +var MAINNET_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E', + v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90', + v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e', + v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227', + v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203' +}); +var GOERLI_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e' +}); +var OPTIMISM_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3', + v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017', + v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb', + v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7' +}); +var ARBITRUM_ONE_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB', + tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573', + v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32', + v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869', + v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', + v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' +}); +var POLYGON_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6', + v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9', + v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a', + v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9' +}); +// celo v3 and v4 addresses +var CELO_ADDRESSES = { + v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc', + multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204', + quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8', + v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582', + nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A', + tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D', + v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC', + v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9', + v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb', + v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd' +}; +// BNB v3 addresses +var BNB_ADDRESSES = { + v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7', + multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184', + quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077', + v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f', + nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613', + tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C', + swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2', + v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df', + v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b', + v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4', + v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0' +}; +// optimism goerli addresses +var OPTIMISM_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10', + multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd', + quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F', + v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8', + nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6', + tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e' +}; +// optimism sepolia addresses +var OPTIMISM_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF', + multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a', + quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404', + v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07', + nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d', + tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5', + swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4' +}; +// arbitrum goerli v3 addresses +var ARBITRUM_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6', + multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee', + quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA', + v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3', + nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81', + tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8' +}; +// arbitrum sepolia v3 addresses +var ARBITRUM_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e', + multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A', + quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B', + v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D', + nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65', + tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9', + swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E', + v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317', + v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc', + v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb', + v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9' +}; +// sepolia v3 addresses +var SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c', + multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07', + quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3', + v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15', + nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52', + tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07', + swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E', + // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed + mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd', + // TODO: update all below once v4 on sepolia redeployed + v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543', + v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4', + v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c', + v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227' +}; +// Avalanche v3 addresses +var AVALANCHE_ADDRESSES = { + v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD', + multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2', + quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F', + v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97', + nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B', + tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950', + swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE', + v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85', + v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd', + v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286', + v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2' +}; +var BASE_ADDRESSES = { + v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD', + multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693', + quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a', + v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7', + nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1', + tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d', + swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481', + mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776', + v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b', + v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc', + v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71', + v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d' +}; +// Base Goerli v3 addresses +var BASE_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2', + multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439', + quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9', + v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE', + nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30', + tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92', + swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d' +}; +// Base Sepolia v3 addresses +var BASE_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24', + multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1', + quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27', + v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10', + nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2', + tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1', + swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4', + // v4 + v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408', + v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80', + v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4', + v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba' +}; +var ZORA_ADDRESSES = { + v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb', + multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15', + quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df', + v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60', + nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78', + tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044', + swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557', + v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f', + v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63', + v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328', + v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6' +}; +var ZORA_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6', + multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A', + quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0', + v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897', + nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20', + tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064' +}; +var ROOTSTOCK_ADDRESSES = { + v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82', + multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386', + quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31', + v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162', + nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1', + tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC', + swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A' +}; +var BLAST_ADDRESSES = { + v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd', + multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705', + quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77', + v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0', + nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28', + tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274', + swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66', + v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446', + v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad', + v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30', + v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf' +}; +var ZKSYNC_ADDRESSES = { + v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422', + multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C', + quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28', + v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E', + nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86', + tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89', + swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3' +}; +var WORLDCHAIN_ADDRESSES = { + v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a', + multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9', + quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c', + v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3', + nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e', + tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623', + swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6', + v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33', + v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa', + v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb', + v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0' +}; +var UNICHAIN_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984', + multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1', + quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89', + v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2', + nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075', + tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0', + swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166', + v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac', + v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664', + v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222', + v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472' +}; +var UNICHAIN_ADDRESSES = { + v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003', + multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b', + quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c', + v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc', + nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9', + tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443', + swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c', + v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004', + v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf', + v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2', + v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0' +}; +var MONAD_TESTNET_ADDRESSES = { + v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276', + multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44', + quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862', + v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661', + nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7', + tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893', + swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7' +}; +var MONAD_ADDRESSES = { + v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498', + multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343', + quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65', + v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15', + nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53', + tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f', + swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900', + // v4 + v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e', + v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016', + v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64', + v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891' +}; +var SONEIUM_ADDRESSES = { + v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717', + multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2', + quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba', + v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb', + nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c', + tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a', + swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9', + v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32', + v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566', + v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', + v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' +}; +var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M); +/* V3 Contract Addresses */ +var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress; + return memo; +}, {})); +var V3_MIGRATOR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress; + if (v3MigratorAddress) { + memo[chainId] = v3MigratorAddress; + } + return memo; +}, {})); +var MULTICALL_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress; + return memo; +}, {})); +/** + * The oldest V0 governance address + */ +var GOVERNANCE_ALPHA_V0_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'); +/** + * The older V1 governance address + */ +var GOVERNANCE_ALPHA_V1_ADDRESSES = (_GOVERNANCE_ALPHA_V1_ = {}, _GOVERNANCE_ALPHA_V1_[exports.ChainId.MAINNET] = '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6', _GOVERNANCE_ALPHA_V1_); +/** + * The latest governor bravo that is currently admin of timelock + */ +var GOVERNANCE_BRAVO_ADDRESSES = (_GOVERNANCE_BRAVO_ADD = {}, _GOVERNANCE_BRAVO_ADD[exports.ChainId.MAINNET] = '0x408ED6354d4973f66138C91495F2f2FCbd8724C3', _GOVERNANCE_BRAVO_ADD); +var TIMELOCK_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC'); +var MERKLE_DISTRIBUTOR_ADDRESS = (_MERKLE_DISTRIBUTOR_A = {}, _MERKLE_DISTRIBUTOR_A[exports.ChainId.MAINNET] = '0x090D4613473dEE047c3f2706764f49E0821D256e', _MERKLE_DISTRIBUTOR_A); +var ARGENT_WALLET_DETECTOR_ADDRESS = (_ARGENT_WALLET_DETECT = {}, _ARGENT_WALLET_DETECT[exports.ChainId.MAINNET] = '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8', _ARGENT_WALLET_DETECT); +var QUOTER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress; + return memo; +}, {})); +var NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress; + if (nonfungiblePositionManagerAddress) { + memo[chainId] = nonfungiblePositionManagerAddress; + } + return memo; +}, {})); +var ENS_REGISTRAR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e')); +var SOCKS_CONTROLLER_ADDRESSES = (_SOCKS_CONTROLLER_ADD = {}, _SOCKS_CONTROLLER_ADD[exports.ChainId.MAINNET] = '0x65770b5283117639760beA3F867b69b3697a91dd', _SOCKS_CONTROLLER_ADD); +var TICK_LENS_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress; + if (tickLensAddress) { + memo[chainId] = tickLensAddress; + } + return memo; +}, {})); +var MIXED_ROUTE_QUOTER_V1_ADDRESSES = /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address; + if (mixedRouteQuoterV1Address) { + memo[chainId] = mixedRouteQuoterV1Address; + } + return memo; +}, {}); +var SWAP_ROUTER_02_ADDRESSES = function SWAP_ROUTER_02_ADDRESSES(chainId) { + if (SUPPORTED_CHAINS.includes(chainId)) { + var _CHAIN_TO_ADDRESSES_M2; + var id = chainId; + return (_CHAIN_TO_ADDRESSES_M2 = CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address) != null ? _CHAIN_TO_ADDRESSES_M2 : '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'; + } + return ''; +}; + +(function (TradeType) { + TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT"; + TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT"; +})(exports.TradeType || (exports.TradeType = {})); +(function (Rounding) { + Rounding[Rounding["ROUND_DOWN"] = 0] = "ROUND_DOWN"; + Rounding[Rounding["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP"; + Rounding[Rounding["ROUND_UP"] = 2] = "ROUND_UP"; +})(exports.Rounding || (exports.Rounding = {})); +var MaxUint256 = /*#__PURE__*/JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'); + +var _toSignificantRoundin, _toFixedRounding; +var Decimal = /*#__PURE__*/toFormat(_Decimal); +var Big = /*#__PURE__*/toFormat(_Big); +var toSignificantRounding = (_toSignificantRoundin = {}, _toSignificantRoundin[exports.Rounding.ROUND_DOWN] = Decimal.ROUND_DOWN, _toSignificantRoundin[exports.Rounding.ROUND_HALF_UP] = Decimal.ROUND_HALF_UP, _toSignificantRoundin[exports.Rounding.ROUND_UP] = Decimal.ROUND_UP, _toSignificantRoundin); +var toFixedRounding = (_toFixedRounding = {}, _toFixedRounding[exports.Rounding.ROUND_DOWN] = 0, _toFixedRounding[exports.Rounding.ROUND_HALF_UP] = 1, _toFixedRounding[exports.Rounding.ROUND_UP] = 3, _toFixedRounding); +var Fraction = /*#__PURE__*/function () { + function Fraction(numerator, denominator) { + if (denominator === void 0) { + denominator = JSBI.BigInt(1); + } + this.numerator = JSBI.BigInt(numerator); + this.denominator = JSBI.BigInt(denominator); + } + Fraction.tryParseFraction = function tryParseFraction(fractionish) { + if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string') return new Fraction(fractionish); + if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish; + throw new Error('Could not parse fraction'); + } + // performs floor division + ; + var _proto = Fraction.prototype; + _proto.invert = function invert() { + return new Fraction(this.denominator, this.numerator); + }; + _proto.add = function add(other) { + var otherParsed = Fraction.tryParseFraction(other); + if (JSBI.equal(this.denominator, otherParsed.denominator)) { + return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator); + } + return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.subtract = function subtract(other) { + var otherParsed = Fraction.tryParseFraction(other); + if (JSBI.equal(this.denominator, otherParsed.denominator)) { + return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator); + } + return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.lessThan = function lessThan(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.equalTo = function equalTo(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.greaterThan = function greaterThan(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.multiply = function multiply(other) { + var otherParsed = Fraction.tryParseFraction(other); + return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.divide = function divide(other) { + var otherParsed = Fraction.tryParseFraction(other); + return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator)); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + if (rounding === void 0) { + rounding = exports.Rounding.ROUND_HALF_UP; + } + !Number.isInteger(significantDigits) ? invariant(false, significantDigits + " is not an integer.") : void 0; + !(significantDigits > 0) ? invariant(false, significantDigits + " is not positive.") : void 0; + Decimal.set({ + precision: significantDigits + 1, + rounding: toSignificantRounding[rounding] + }); + var quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits); + return quotient.toFormat(quotient.decimalPlaces(), format); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + if (rounding === void 0) { + rounding = exports.Rounding.ROUND_HALF_UP; + } + !Number.isInteger(decimalPlaces) ? invariant(false, decimalPlaces + " is not an integer.") : void 0; + !(decimalPlaces >= 0) ? invariant(false, decimalPlaces + " is negative.") : void 0; + Big.DP = decimalPlaces; + Big.RM = toFixedRounding[rounding]; + return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format); + } + /** + * Helper method for converting any super class back to a fraction + */; + return _createClass(Fraction, [{ + key: "quotient", + get: function get() { + return JSBI.divide(this.numerator, this.denominator); + } + // remainder after floor division + }, { + key: "remainder", + get: function get() { + return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator); + } + }, { + key: "asFraction", + get: function get() { + return new Fraction(this.numerator, this.denominator); + } + }]); +}(); + +var Big$1 = /*#__PURE__*/toFormat(_Big); +var CurrencyAmount = /*#__PURE__*/function (_Fraction) { + function CurrencyAmount(currency, numerator, denominator) { + var _this; + _this = _Fraction.call(this, numerator, denominator) || this; + !JSBI.lessThanOrEqual(_this.quotient, MaxUint256) ? invariant(false, 'AMOUNT') : void 0; + _this.currency = currency; + _this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals)); + return _this; + } + /** + * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount + * @param currency the currency in the amount + * @param rawAmount the raw token or ether amount + */ + _inheritsLoose(CurrencyAmount, _Fraction); + CurrencyAmount.fromRawAmount = function fromRawAmount(currency, rawAmount) { + return new CurrencyAmount(currency, rawAmount); + } + /** + * Construct a currency amount with a denominator that is not equal to 1 + * @param currency the currency + * @param numerator the numerator of the fractional token amount + * @param denominator the denominator of the fractional token amount + */; + CurrencyAmount.fromFractionalAmount = function fromFractionalAmount(currency, numerator, denominator) { + return new CurrencyAmount(currency, numerator, denominator); + }; + var _proto = CurrencyAmount.prototype; + _proto.add = function add(other) { + !this.currency.equals(other.currency) ? invariant(false, 'CURRENCY') : void 0; + var added = _Fraction.prototype.add.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator); + }; + _proto.subtract = function subtract(other) { + !this.currency.equals(other.currency) ? invariant(false, 'CURRENCY') : void 0; + var subtracted = _Fraction.prototype.subtract.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator); + }; + _proto.multiply = function multiply(other) { + var multiplied = _Fraction.prototype.multiply.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator); + }; + _proto.divide = function divide(other) { + var divided = _Fraction.prototype.divide.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 6; + } + if (rounding === void 0) { + rounding = exports.Rounding.ROUND_DOWN; + } + return _Fraction.prototype.divide.call(this, this.decimalScale).toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = this.currency.decimals; + } + if (rounding === void 0) { + rounding = exports.Rounding.ROUND_DOWN; + } + !(decimalPlaces <= this.currency.decimals) ? invariant(false, 'DECIMALS') : void 0; + return _Fraction.prototype.divide.call(this, this.decimalScale).toFixed(decimalPlaces, format, rounding); + }; + _proto.toExact = function toExact(format) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + Big$1.DP = this.currency.decimals; + return new Big$1(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format); + }; + return _createClass(CurrencyAmount, [{ + key: "wrapped", + get: function get() { + if (this.currency.isToken) return this; + return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator); + } + }]); +}(Fraction); + +var ONE_HUNDRED = /*#__PURE__*/new Fraction(/*#__PURE__*/JSBI.BigInt(100)); +/** + * Converts a fraction to a percent + * @param fraction the fraction to convert + */ +function toPercent(fraction) { + return new Percent(fraction.numerator, fraction.denominator); +} +var Percent = /*#__PURE__*/function (_Fraction) { + function Percent() { + var _this; + _this = _Fraction.apply(this, arguments) || this; + /** + * This boolean prevents a fraction from being interpreted as a Percent + */ + _this.isPercent = true; + return _this; + } + _inheritsLoose(Percent, _Fraction); + var _proto = Percent.prototype; + _proto.add = function add(other) { + return toPercent(_Fraction.prototype.add.call(this, other)); + }; + _proto.subtract = function subtract(other) { + return toPercent(_Fraction.prototype.subtract.call(this, other)); + }; + _proto.multiply = function multiply(other) { + return toPercent(_Fraction.prototype.multiply.call(this, other)); + }; + _proto.divide = function divide(other) { + return toPercent(_Fraction.prototype.divide.call(this, other)); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 5; + } + return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = 2; + } + return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toFixed(decimalPlaces, format, rounding); + }; + return Percent; +}(Fraction); + +var Price = /*#__PURE__*/function (_Fraction) { + /** + * Construct a price, either with the base and quote currency amount, or the + * @param args + */ + function Price() { + var _this; + var baseCurrency, quoteCurrency, denominator, numerator; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length === 4) { + baseCurrency = args[0]; + quoteCurrency = args[1]; + denominator = args[2]; + numerator = args[3]; + } else { + var result = args[0].quoteAmount.divide(args[0].baseAmount); + var _ref = [args[0].baseAmount.currency, args[0].quoteAmount.currency, result.denominator, result.numerator]; + baseCurrency = _ref[0]; + quoteCurrency = _ref[1]; + denominator = _ref[2]; + numerator = _ref[3]; + } + _this = _Fraction.call(this, numerator, denominator) || this; + _this.baseCurrency = baseCurrency; + _this.quoteCurrency = quoteCurrency; + _this.scalar = new Fraction(JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))); + return _this; + } + /** + * Flip the price, switching the base and quote currency + */ + _inheritsLoose(Price, _Fraction); + var _proto = Price.prototype; + _proto.invert = function invert() { + return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator); + } + /** + * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency + * @param other the other price + */; + _proto.multiply = function multiply(other) { + !this.quoteCurrency.equals(other.baseCurrency) ? invariant(false, 'TOKEN') : void 0; + var fraction = _Fraction.prototype.multiply.call(this, other); + return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator); + } + /** + * Return the amount of quote currency corresponding to a given amount of the base currency + * @param currencyAmount the amount of base currency to quote against the price + */; + _proto.quote = function quote(currencyAmount) { + !currencyAmount.currency.equals(this.baseCurrency) ? invariant(false, 'TOKEN') : void 0; + var result = _Fraction.prototype.multiply.call(this, currencyAmount); + return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator); + } + /** + * Get the value scaled by decimals for formatting + * @private + */; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 6; + } + return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = 4; + } + return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding); + }; + return _createClass(Price, [{ + key: "adjustedForDecimals", + get: function get() { + return _Fraction.prototype.multiply.call(this, this.scalar); + } + }]); +}(Fraction); + +/** + * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies + */ +var BaseCurrency = +/** + * Constructs an instance of the base class `BaseCurrency`. + * @param chainId the chain ID on which this currency resides + * @param decimals decimals of the currency + * @param symbol symbol of the currency + * @param name of the currency + */ +function BaseCurrency(chainId, decimals, symbol, name) { + !Number.isSafeInteger(chainId) ? invariant(false, 'CHAIN_ID') : void 0; + !(decimals >= 0 && decimals < 255 && Number.isInteger(decimals)) ? invariant(false, 'DECIMALS') : void 0; + this.chainId = chainId; + this.decimals = decimals; + this.symbol = symbol; + this.name = name; +}; + +/** + * Represents the native currency of the chain on which it resides, e.g. + */ +var NativeCurrency = /*#__PURE__*/function (_BaseCurrency) { + function NativeCurrency() { + var _this; + _this = _BaseCurrency.apply(this, arguments) || this; + _this.isNative = true; + _this.isToken = false; + return _this; + } + _inheritsLoose(NativeCurrency, _BaseCurrency); + return NativeCurrency; +}(BaseCurrency); + +/** + * Validates an address and returns the parsed (checksummed) version of that address + * @param address the unchecksummed hex address + */ +function validateAndParseAddress(address$1) { + try { + return address.getAddress(address$1); + } catch (error) { + throw new Error(address$1 + " is not a valid address."); + } +} +// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x +var startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/; +/** + * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding. + * @param address the unchecksummed hex address + */ +function checkValidAddress(address) { + if (startsWith0xLen42HexRegex.test(address)) { + return address; + } + throw new Error(address + " is not a valid address."); +} + +/** + * Represents an ERC20 token with a unique address and some metadata. + */ +var Token = /*#__PURE__*/function (_BaseCurrency) { + /** + * + * @param chainId {@link BaseCurrency#chainId} + * @param address The contract address on the chain on which this token lives + * @param decimals {@link BaseCurrency#decimals} + * @param symbol {@link BaseCurrency#symbol} + * @param name {@link BaseCurrency#name} + * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters + * @param buyFeeBps Buy fee tax for FOT tokens, in basis points + * @param sellFeeBps Sell fee tax for FOT tokens, in basis points + */ + function Token(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) { + var _this; + _this = _BaseCurrency.call(this, chainId, decimals, symbol, name) || this; + _this.isNative = false; + _this.isToken = true; + if (bypassChecksum) { + _this.address = checkValidAddress(address); + } else { + _this.address = validateAndParseAddress(address); + } + if (buyFeeBps) { + !buyFeeBps.gte(bignumber.BigNumber.from(0)) ? invariant(false, 'NON-NEGATIVE FOT FEES') : void 0; + } + if (sellFeeBps) { + !sellFeeBps.gte(bignumber.BigNumber.from(0)) ? invariant(false, 'NON-NEGATIVE FOT FEES') : void 0; + } + _this.buyFeeBps = buyFeeBps; + _this.sellFeeBps = sellFeeBps; + return _this; + } + /** + * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. + * @param other other token to compare + */ + _inheritsLoose(Token, _BaseCurrency); + var _proto = Token.prototype; + _proto.equals = function equals(other) { + return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase(); + } + /** + * Returns true if the address of this token sorts before the address of the other token + * @param other other token to compare + * @throws if the tokens have the same address + * @throws if the tokens are on different chains + */; + _proto.sortsBefore = function sortsBefore(other) { + !(this.chainId === other.chainId) ? invariant(false, 'CHAIN_IDS') : void 0; + !(this.address.toLowerCase() !== other.address.toLowerCase()) ? invariant(false, 'ADDRESSES') : void 0; + return this.address.toLowerCase() < other.address.toLowerCase(); + } + /** + * Return this token, which does not need to be wrapped + */; + return _createClass(Token, [{ + key: "wrapped", + get: function get() { + return this; + } + }]); +}(BaseCurrency); + +/** + * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped + */ +var WETH9 = { + 1: /*#__PURE__*/new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'), + 11155111: /*#__PURE__*/new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'), + 3: /*#__PURE__*/new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'), + 4: /*#__PURE__*/new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'), + 5: /*#__PURE__*/new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'), + 42: /*#__PURE__*/new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'), + 10: /*#__PURE__*/new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 69: /*#__PURE__*/new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 11155420: /*#__PURE__*/new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 42161: /*#__PURE__*/new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'), + 421611: /*#__PURE__*/new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'), + 421614: /*#__PURE__*/new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'), + 8453: /*#__PURE__*/new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 84532: /*#__PURE__*/new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 56: /*#__PURE__*/new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'), + 137: /*#__PURE__*/new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'), + 43114: /*#__PURE__*/new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'), + 7777777: /*#__PURE__*/new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 81457: /*#__PURE__*/new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'), + 324: /*#__PURE__*/new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'), + 480: /*#__PURE__*/new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 1301: /*#__PURE__*/new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 130: /*#__PURE__*/new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 10143: /*#__PURE__*/new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'), + 1868: /*#__PURE__*/new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 143: /*#__PURE__*/new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad') +}; + +/** + * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets + */ +var Ether = /*#__PURE__*/function (_NativeCurrency) { + function Ether(chainId) { + return _NativeCurrency.call(this, chainId, 18, 'ETH', 'Ether') || this; + } + _inheritsLoose(Ether, _NativeCurrency); + Ether.onChain = function onChain(chainId) { + var _this$_etherCache$cha; + return (_this$_etherCache$cha = this._etherCache[chainId]) != null ? _this$_etherCache$cha : this._etherCache[chainId] = new Ether(chainId); + }; + var _proto = Ether.prototype; + _proto.equals = function equals(other) { + return other.isNative && other.chainId === this.chainId; + }; + return _createClass(Ether, [{ + key: "wrapped", + get: function get() { + var weth9 = WETH9[this.chainId]; + !!!weth9 ? invariant(false, 'WRAPPED') : void 0; + return weth9; + } + }]); +}(NativeCurrency); +Ether._etherCache = {}; + +/** + * Returns the percent difference between the mid price and the execution price, i.e. price impact. + * @param midPrice mid price before the trade + * @param inputAmount the input amount of the trade + * @param outputAmount the output amount of the trade + */ +function computePriceImpact(midPrice, inputAmount, outputAmount) { + var quotedOutputAmount = midPrice.quote(inputAmount); + // calculate price impact := (exactQuote - outputAmount) / exactQuote + var priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount); + return new Percent(priceImpact.numerator, priceImpact.denominator); +} + +function computeZksyncCreate2Address(sender, bytecodeHash, salt, input) { + if (input === void 0) { + input = '0x'; + } + var prefix = keccak256.keccak256(strings.toUtf8Bytes('zksyncCreate2')); + var inputHash = keccak256.keccak256(input); + var addressBytes = keccak256.keccak256(bytes.concat([prefix, bytes.hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26); + return address.getAddress(addressBytes); +} + +// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to +// `maxSize` by removing the last item +function sortedInsert(items, add, maxSize, comparator) { + !(maxSize > 0) ? invariant(false, 'MAX_SIZE_ZERO') : void 0; + // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize + !(items.length <= maxSize) ? invariant(false, 'ITEMS_SIZE') : void 0; + // short circuit first item add + if (items.length === 0) { + items.push(add); + return null; + } else { + var isFull = items.length === maxSize; + // short circuit if full and the additional item does not come before the last item + if (isFull && comparator(items[items.length - 1], add) <= 0) { + return add; + } + var lo = 0, + hi = items.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (comparator(items[mid], add) <= 0) { + lo = mid + 1; + } else { + hi = mid; + } + } + items.splice(lo, 0, add); + return isFull ? items.pop() : null; + } +} + +var MAX_SAFE_INTEGER = /*#__PURE__*/JSBI.BigInt(Number.MAX_SAFE_INTEGER); +var ZERO = /*#__PURE__*/JSBI.BigInt(0); +var ONE = /*#__PURE__*/JSBI.BigInt(1); +var TWO = /*#__PURE__*/JSBI.BigInt(2); +/** + * Computes floor(sqrt(value)) + * @param value the value for which to compute the square root, rounded down + */ +function sqrt(value) { + !JSBI.greaterThanOrEqual(value, ZERO) ? invariant(false, 'NEGATIVE') : void 0; + // rely on built in sqrt if possible + if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) { + return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value)))); + } + var z; + var x; + z = value; + x = JSBI.add(JSBI.divide(value, TWO), ONE); + while (JSBI.lessThan(x, z)) { + z = x; + x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO); + } + return z; +} + +exports.ARGENT_WALLET_DETECTOR_ADDRESS = ARGENT_WALLET_DETECTOR_ADDRESS; +exports.CHAIN_TO_ADDRESSES_MAP = CHAIN_TO_ADDRESSES_MAP; +exports.CurrencyAmount = CurrencyAmount; +exports.ENS_REGISTRAR_ADDRESSES = ENS_REGISTRAR_ADDRESSES; +exports.Ether = Ether; +exports.Fraction = Fraction; +exports.GOVERNANCE_ALPHA_V0_ADDRESSES = GOVERNANCE_ALPHA_V0_ADDRESSES; +exports.GOVERNANCE_ALPHA_V1_ADDRESSES = GOVERNANCE_ALPHA_V1_ADDRESSES; +exports.GOVERNANCE_BRAVO_ADDRESSES = GOVERNANCE_BRAVO_ADDRESSES; +exports.MERKLE_DISTRIBUTOR_ADDRESS = MERKLE_DISTRIBUTOR_ADDRESS; +exports.MIXED_ROUTE_QUOTER_V1_ADDRESSES = MIXED_ROUTE_QUOTER_V1_ADDRESSES; +exports.MULTICALL_ADDRESSES = MULTICALL_ADDRESSES; +exports.MaxUint256 = MaxUint256; +exports.NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = NONFUNGIBLE_POSITION_MANAGER_ADDRESSES; +exports.NativeCurrency = NativeCurrency; +exports.Percent = Percent; +exports.Price = Price; +exports.QUOTER_ADDRESSES = QUOTER_ADDRESSES; +exports.SOCKS_CONTROLLER_ADDRESSES = SOCKS_CONTROLLER_ADDRESSES; +exports.SUPPORTED_CHAINS = SUPPORTED_CHAINS; +exports.SWAP_ROUTER_02_ADDRESSES = SWAP_ROUTER_02_ADDRESSES; +exports.TICK_LENS_ADDRESSES = TICK_LENS_ADDRESSES; +exports.TIMELOCK_ADDRESSES = TIMELOCK_ADDRESSES; +exports.Token = Token; +exports.UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS; +exports.UNI_ADDRESSES = UNI_ADDRESSES; +exports.V2_FACTORY_ADDRESS = V2_FACTORY_ADDRESS; +exports.V2_FACTORY_ADDRESSES = V2_FACTORY_ADDRESSES; +exports.V2_ROUTER_ADDRESS = V2_ROUTER_ADDRESS; +exports.V2_ROUTER_ADDRESSES = V2_ROUTER_ADDRESSES; +exports.V3_CORE_FACTORY_ADDRESSES = V3_CORE_FACTORY_ADDRESSES; +exports.V3_MIGRATOR_ADDRESSES = V3_MIGRATOR_ADDRESSES; +exports.WETH9 = WETH9; +exports.computePriceImpact = computePriceImpact; +exports.computeZksyncCreate2Address = computeZksyncCreate2Address; +exports.sortedInsert = sortedInsert; +exports.sqrt = sqrt; +exports.validateAndParseAddress = validateAndParseAddress; +//# sourceMappingURL=sdk-core.cjs.development.js.map diff --git a/sdks/sdk-core/dist/sdk-core.cjs.development.js.map b/sdks/sdk-core/dist/sdk-core.cjs.development.js.map new file mode 100644 index 000000000..717fdae72 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.cjs.development.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sdk-core.cjs.development.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file diff --git a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js new file mode 100644 index 000000000..32acb81d6 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js @@ -0,0 +1,2 @@ +"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r,d=e(require("jsbi")),a=e(require("tiny-invariant")),t=e(require("decimal.js-light")),n=e(require("big.js")),s=e(require("toformat")),o=require("@ethersproject/bignumber"),c=require("@ethersproject/address"),i=require("@ethersproject/bytes"),f=require("@ethersproject/keccak256"),A=require("@ethersproject/strings");function b(e,r){for(var d=0;d0||a(!1),se.set({precision:e+1,rounding:ce[d]});var t=new se(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return t.toFormat(t.decimalPlaces(),r)},r.toFixed=function(e,r,d){return void 0===r&&(r={groupSeparator:""}),void 0===d&&(d=exports.Rounding.ROUND_HALF_UP),Number.isInteger(e)||a(!1),e>=0||a(!1),oe.DP=e,oe.RM=ie[d],new oe(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,r)},u(e,[{key:"quotient",get:function(){return d.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(d.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}])}(),Ae=s(n),be=function(e){function r(r,t,n){var s;return s=e.call(this,t,n)||this,d.lessThanOrEqual(s.quotient,ne)||a(!1),s.currency=r,s.decimalScale=d.exponentiate(d.BigInt(10),d.BigInt(r.decimals)),s}x(r,e),r.fromRawAmount=function(e,d){return new r(e,d)},r.fromFractionalAmount=function(e,d,a){return new r(e,d,a)};var t=r.prototype;return t.add=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.add.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.subtract=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.subtract.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.multiply=function(d){var a=e.prototype.multiply.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.divide=function(d){var a=e.prototype.divide.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.toSignificant=function(r,d,a){return void 0===r&&(r=6),void 0===a&&(a=exports.Rounding.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(r,d,a)},t.toFixed=function(r,d,t){return void 0===r&&(r=this.currency.decimals),void 0===t&&(t=exports.Rounding.ROUND_DOWN),r<=this.currency.decimals||a(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(r,d,t)},t.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Ae.DP=this.currency.decimals,new Ae(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},u(r,[{key:"wrapped",get:function(){return this.currency.isToken?this:r.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}])}(fe),ue=new fe(d.BigInt(100));function Ee(e){return new xe(e.numerator,e.denominator)}var xe=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isPercent=!0,r}x(r,e);var d=r.prototype;return d.add=function(r){return Ee(e.prototype.add.call(this,r))},d.subtract=function(r){return Ee(e.prototype.subtract.call(this,r))},d.multiply=function(r){return Ee(e.prototype.multiply.call(this,r))},d.divide=function(r){return Ee(e.prototype.divide.call(this,r))},d.toSignificant=function(r,d,a){return void 0===r&&(r=5),e.prototype.multiply.call(this,ue).toSignificant(r,d,a)},d.toFixed=function(r,d,a){return void 0===r&&(r=2),e.prototype.multiply.call(this,ue).toFixed(r,d,a)},r}(fe),Ce=function(e){function r(){for(var r,a,t,n,s,o=arguments.length,c=new Array(o),i=0;i=0&&r<255&&Number.isInteger(r)||a(!1),this.chainId=e,this.decimals=r,this.symbol=d,this.name=t},De=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isNative=!0,r.isToken=!1,r}return x(r,e),r}(pe);function Ie(e){try{return c.getAddress(e)}catch(r){throw new Error(e+" is not a valid address.")}}var Be=/^0x[0-9a-fA-F]{40}$/,le=function(e){function r(r,d,t,n,s,c,i,f){var A;return(A=e.call(this,r,t,n,s)||this).isNative=!1,A.isToken=!0,A.address=c?function(e){if(Be.test(e))return e;throw new Error(e+" is not a valid address.")}(d):Ie(d),i&&(i.gte(o.BigNumber.from(0))||a(!1)),f&&(f.gte(o.BigNumber.from(0))||a(!1)),A.buyFeeBps=i,A.sellFeeBps=f,A}x(r,e);var d=r.prototype;return d.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},d.sortsBefore=function(e){return this.chainId!==e.chainId&&a(!1),this.address.toLowerCase()===e.address.toLowerCase()&&a(!1),this.address.toLowerCase()0||a(!1),e.length<=d||a(!1),0===e.length)return e.push(r),null;var n=e.length===d;if(n&&t(e[e.length-1],r)<=0)return r;for(var s=0,o=e.length;s>>1;t(e[c],r)<=0?s=c+1:o=c}return e.splice(s,0,r),n?e.pop():null},exports.sqrt=function(e){if(d.greaterThanOrEqual(e,ve)||a(!1),d.lessThan(e,Oe))return d.BigInt(Math.floor(Math.sqrt(d.toNumber(e))));var r,t;for(r=e,t=d.add(d.divide(e,me),Se);d.lessThan(t,r);)r=t,t=d.divide(d.add(d.divide(e,t),t),me);return r},exports.validateAndParseAddress=Ie; +//# sourceMappingURL=sdk-core.cjs.production.min.js.map diff --git a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map new file mode 100644 index 000000000..cf3c09ea7 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sdk-core.cjs.production.min.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/sqrt.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n"],"names":["ChainId","NativeCurrencyName","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","TradeType","Rounding","UNI_ADDRESSES","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","swapRouter02Address","mixedRouteQuoterV2Address","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","this","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","Token","bypassChecksum","buyFeeBps","sellFeeBps","test","checkValidAddress","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","1","11155111","3","4","5","42","10","69","11155420","42161","421611","421614","8453","84532","56","137","43114","7777777","81457","324","480","1301","130","10143","1868","143","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","MAX_SAFE_INTEGER","ZERO","ONE","TWO","_CHAIN_TO_ADDRESSES_M2","includes","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","value","greaterThanOrEqual","Math","floor","sqrt","toNumber","z","x"],"mappings":"8IAAYA,gxCAAAA,EAAAA,kBAAAA,4CAEVA,uBACAA,gCACAA,4BACAA,2CACAA,kDACAA,uCACAA,8CACAA,gDACAA,2BACAA,2CACAA,uBACAA,2CACAA,yBACAA,8BACAA,kBACAA,iCACAA,qCACAA,uCACAA,sBACAA,yBACAA,2CACAA,8BACAA,yBACAA,yBACAA,iCACAA,8CACAA,6BACAA,yCACAA,4BACAA,2BAoCUC,kBAjCCC,EAAmB,CAC9BF,gBAAQG,QACRH,gBAAQI,SACRJ,gBAAQK,gBACRL,gBAAQM,iBACRN,gBAAQO,aACRP,gBAAQQ,gBACRR,gBAAQS,iBACRT,gBAAQU,QACRV,gBAAQW,eACRX,gBAAQY,OACRZ,gBAAQa,QACRb,gBAAQc,eACRd,gBAAQe,KACRf,gBAAQgB,IACRhB,gBAAQiB,UACRjB,gBAAQkB,KACRlB,gBAAQmB,YACRnB,gBAAQoB,aACRpB,gBAAQqB,KACRrB,gBAAQsB,aACRtB,gBAAQuB,UACRvB,gBAAQwB,MACRxB,gBAAQyB,OACRzB,gBAAQ0B,WACR1B,gBAAQ2B,iBACR3B,gBAAQ4B,SACR5B,gBAAQ6B,cACR7B,gBAAQ8B,QACR9B,gBAAQ+B,QAIE9B,EAAAA,6BAAAA,4CAGVA,gBACAA,cACAA,gBACAA,kBACAA,YACAA,cACAA,mBCtDF,IAAM+B,EAAmB,CAAChC,gBAAQG,QAASH,gBAAQY,OAAQZ,gBAAQa,SAEnE,SAASoB,EAAwBC,EAAiBC,GAChD,gBADgDA,IAAAA,EAAgC,IACzEH,EAAiBI,OAAOD,GAAoBE,QAAmB,SAACC,EAAMC,GAE3E,OADAD,EAAKC,GAAWL,EACTI,IACN,QCvBOE,EAKAC,EDqBCC,EAA4BT,EAAwB,6CAA8C,CAC7GjC,gBAAQI,SACRJ,gBAAQO,aACRP,gBAAQU,QACRV,gBAAQW,eACRX,gBAAQa,UASG8B,IAAoBC,MAC9B5C,gBAAQG,SAAU,6CAA4CyC,EAC9D5C,gBAAQY,QAAS,6CAA4CgC,EAC7D5C,gBAAQa,SAAU,6CAA4C+B,EAC9D5C,gBAAQI,UAAW,6CAA4CwC,EAC/D5C,gBAAQO,cAAe,6CAA4CqC,EACnE5C,gBAAQiB,WAAY,6CAA4C2B,EAChE5C,gBAAQoB,cAAe,6CAA4CwB,EACnE5C,gBAAQkB,MAAO,6CAA4C0B,EAC3D5C,gBAAQgB,KAAM,6CAA4C4B,EAC1D5C,gBAAQU,SAAU,6CAA4CkC,EAC9D5C,gBAAQe,MAAO,6CAA4C6B,EAC3D5C,gBAAQwB,OAAQ,6CAA4CoB,EAC5D5C,gBAAQ0B,YAAa,6CAA4CkB,EACjE5C,gBAAQ2B,kBAAmB,6CAA4CiB,EACvE5C,gBAAQ4B,UAAW,6CAA4CgB,EAC/D5C,gBAAQ6B,eAAgB,6CAA4Ce,EACpE5C,gBAAQ8B,SAAU,6CAA4Cc,EAC9D5C,gBAAQ+B,OAAQ,6CAA4Ca,GAMlDC,IAAmBC,MAC7B9C,gBAAQG,SAAU,6CAA4C2C,EAC9D9C,gBAAQY,QAAS,6CAA4CkC,EAC7D9C,gBAAQa,SAAU,6CAA4CiC,EAC9D9C,gBAAQO,cAAe,6CAA4CuC,EACnE9C,gBAAQI,UAAW,6CAA4C0C,EAC/D9C,gBAAQoB,cAAe,6CAA4C0B,EACnE9C,gBAAQkB,MAAO,6CAA4C4B,EAC3D9C,gBAAQiB,WAAY,6CAA4C6B,EAChE9C,gBAAQgB,KAAM,6CAA4C8B,EAC1D9C,gBAAQU,SAAU,6CAA4CoC,EAC9D9C,gBAAQwB,OAAQ,6CAA4CsB,EAC5D9C,gBAAQ0B,YAAa,6CAA4CoB,EACjE9C,gBAAQ2B,kBAAmB,6CAA4CmB,EACvE9C,gBAAQ4B,UAAW,6CAA4CkB,EAC/D9C,gBAAQ6B,eAAgB,6CAA4CiB,EACpE9C,gBAAQ8B,SAAU,6CAA4CgB,EAC9D9C,gBAAQ+B,OAAQ,6CAA4Ce,GAIzDC,EAAoC,CACxCC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,8CAE/BC,EAAiBC,KAClBP,GACHQ,0BAA2B,6CAE3BC,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAEbC,EAAgBN,KACjBP,GACHQ,0BAA2B,+CAGvBM,EAAkBP,KACnBP,GAEHS,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAGbG,EAAsBR,KACvBP,GACHE,iBAAkB,6CAClBc,gBAAiB,6CAEjBP,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAEbK,EAAiBV,KAClBP,GAEHS,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAIbM,EAAiC,CACrCjB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CAEjBP,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAkSNO,IAAsBC,MAChCnE,gBAAQG,SAAUkD,EAAiBc,EACnCnE,gBAAQI,UAAWyD,EAAkBM,EACrCnE,gBAAQO,cAAeuD,EAAsBK,EAC7CnE,gBAAQU,SAAUsD,EAAiBG,EACnCnE,gBAAQW,gBAAiBqD,EAAiBG,EAC1CnE,gBAAQY,QAASgD,EAAgBO,EACjCnE,gBAAQe,MAAOkD,EAAcE,EAC7BnE,gBAAQc,gBAAiBmD,EAAcE,EACvCnE,gBAAQgB,KAvS2B,CACpCgC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA2RWQ,EAC3BnE,gBAAQK,iBAxRuC,CAChD2C,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CAkRmCI,EACnDnE,gBAAQM,kBA/QwC,CACjD0C,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAwQiCD,EACrDnE,gBAAQQ,iBArQuC,CAChDwC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CA+PmCI,EACnDnE,gBAAQS,kBA5PwC,CACjDuC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAgPqCQ,EACrDnE,gBAAQa,SA7O+B,CACxCmC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAGrBC,0BAA2B,6CAG3Bb,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA6NmBQ,EACnCnE,gBAAQiB,WA1NiC,CAC1C+B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA8MuBQ,EACvCnE,gBAAQkB,MA5M4B,CACrC8B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CACrBb,0BAA2B,6CAE3BC,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA+LaQ,EAC7BnE,gBAAQmB,aA5LmC,CAC5C6B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAqLuBD,EAC3CnE,gBAAQoB,cAlLoC,CAC7C4B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAGrBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAqK6BQ,EAC7CnE,gBAAQqB,MAnK4B,CACrC2B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAuJaQ,EAC7BnE,gBAAQsB,cArJoC,CAC7C0B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CA+I6BI,EAC7CnE,gBAAQuB,WA7IiC,CAC1CyB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAsImBD,EACvCnE,gBAAQwB,OApI6B,CACtCwB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAwHeQ,EAC/BnE,gBAAQyB,QAtH8B,CACvCuB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CA+GaD,EACjCnE,gBAAQ0B,YA7GkC,CAC3CsB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAiGyBQ,EACzCnE,gBAAQ2B,kBA/FwC,CACjDqB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAmFqCQ,EACrDnE,gBAAQ4B,UAjFgC,CACzCoB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAqEqBQ,EACrCnE,gBAAQ6B,eAnEqC,CAC9CmB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CA4D2BD,EAC/CnE,gBAAQ8B,SA3C+B,CACxCkB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA+BmBQ,EACnCnE,gBAAQ+B,OA3D6B,CACtCiB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA+CeQ,GAIrBG,EAAyBhB,KACjCpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASS,qBACzCV,IACN,KAGQiC,EAAqBjB,KAC7BpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAC5C,IAAMY,EAAoBe,EAAuB3B,GAASY,kBAI1D,OAHIA,IACFb,EAAKC,GAAWY,GAEXb,IACN,KAGQkC,EAAmBlB,KAC3BpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASU,iBACzCX,IACN,KAMQmC,EAA4CxC,EACvD,8CAKWyC,IAA6BC,MACvC3E,gBAAQG,SAAU,6CAA4CwE,GAKpDC,IAA0BC,MACpC7E,gBAAQG,SAAU,6CAA4C0E,GAGpDC,EAAiC7C,EAAwB,8CAEzD8C,IAA0BC,MACpChF,gBAAQG,SAAU,6CAA4C6E,GAGpDC,IAA8BC,MACxClF,gBAAQG,SAAU,6CAA4C+E,GAGpDC,EAAgB7B,KACxBpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASW,cACzCZ,IACN,KAGQ8C,EAAsC9B,KAC9CpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAC5C,IAAMa,EAAoCc,EAAuB3B,GAASa,kCAI1E,OAHIA,IACFd,EAAKC,GAAWa,GAEXd,IACN,KAGQ+C,EAAuB/B,KAC/BrB,EAAwB,+CAGhBqD,KAA0BC,MACpCvF,gBAAQG,SAAU,6CAA4CoF,GAGpDC,GAAmBlC,KAC3BpD,EAAiBmC,QAAmB,SAACC,EAAMC,GAC5C,IAAMwB,EAAkBG,EAAuB3B,GAASwB,gBAIxD,OAHIA,IACFzB,EAAKC,GAAWwB,GAEXzB,IACN,KAGQmD,GAA8CvF,EAAiBmC,QAAmB,SAACC,EAAMC,GACpG,IAAMgB,EAA4BW,EAAuB3B,GAASgB,0BAIlE,OAHIA,IACFjB,EAAKC,GAAWgB,GAEXjB,IACN,KCnjBSE,EAAAA,oBAAAA,sDAEVA,oCAGUC,EAAAA,mBAAAA,mDAEVA,qCACAA,2BAGF,UAAaiD,GAAaC,EAAKC,OAAO,sECRhCC,GAAUC,EAASC,GACnBC,GAAMF,EAASG,GAEfC,KAAqBC,OACxB1D,iBAAS2D,YAAaP,GAAQO,WAAUD,GACxC1D,iBAAS4D,eAAgBR,GAAQQ,cAAaF,GAC9C1D,iBAAS6D,UAAWT,GAAQS,SAAQH,IAGjCI,KAAeC,OAClB/D,iBAAS2D,iBACT3D,iBAAS4D,oBACT5D,iBAAS6D,gBAGCG,cAIX,SAAAA,EAAmBC,EAAsBC,YAAAA,IAAAA,EAAyBhB,EAAKC,OAAO,IAC5EgB,KAAKF,UAAYf,EAAKC,OAAOc,GAC7BE,KAAKD,YAAchB,EAAKC,OAAOe,GAChCF,EAEcI,iBAAP,SAAwBC,GAC9B,GAAIA,aAAuBnB,GAA+B,iBAAhBmB,GAAmD,iBAAhBA,EAC3E,OAAO,IAAIL,EAASK,GAEtB,GAAI,cAAeA,GAAe,gBAAiBA,EAAa,OAAOA,EACvE,MAAM,IAAIC,MAAM,6BAGlB,IAAAC,EAAAP,EAAAQ,UA8GA,OA9GAD,EAUOE,OAAA,WACL,OAAO,IAAIT,EAASG,KAAKD,YAAaC,KAAKF,YAC5CM,EAEMG,IAAA,SAAIC,GACT,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAIzB,EAAK2B,MAAMV,KAAKD,YAAaU,EAAYV,aACpC,IAAIF,EAASd,EAAKwB,IAAIP,KAAKF,UAAWW,EAAYX,WAAYE,KAAKD,aAErE,IAAIF,EACTd,EAAKwB,IACHxB,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,cAE5ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMQ,SAAA,SAASJ,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAIzB,EAAK2B,MAAMV,KAAKD,YAAaU,EAAYV,aACpC,IAAIF,EAASd,EAAK6B,SAASZ,KAAKF,UAAWW,EAAYX,WAAYE,KAAKD,aAE1E,IAAIF,EACTd,EAAK6B,SACH7B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,cAE5ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMS,SAAA,SAASL,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAK8B,SACV9B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMU,QAAA,SAAQN,GACb,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAK2B,MACV3B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMW,YAAA,SAAYP,GACjB,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAKgC,YACVhC,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMO,SAAA,SAASH,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAO,IAAIX,EACTd,EAAK4B,SAASX,KAAKF,UAAWW,EAAYX,WAC1Cf,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMY,OAAA,SAAOR,GACZ,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAO,IAAIX,EACTd,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYX,aAE/CM,EAEMa,cAAA,SACLC,EACAC,EACAC,YADAD,IAAAA,EAAiB,CAAEE,eAAgB,cACnCD,IAAAA,EAAqBvF,iBAAS4D,eAEpB6B,OAAOC,UAAUL,IAA3BM,MACUN,EAAoB,GAA9BM,MAEAvC,GAAQwC,IAAI,CAAEC,UAAWR,EAAoB,EAAGE,SAAU9B,GAAsB8B,KAChF,IAAMO,EAAW,IAAI1C,GAAQe,KAAKF,UAAU8B,YACzCC,IAAI7B,KAAKD,YAAY6B,YACrBE,oBAAoBZ,GACvB,OAAOS,EAASzC,SAASyC,EAASI,gBAAiBZ,IACpDf,EAEM4B,QAAA,SACLD,EACAZ,EACAC,GAOA,gBARAD,IAAAA,EAAiB,CAAEE,eAAgB,cACnCD,IAAAA,EAAqBvF,iBAAS4D,eAEpB6B,OAAOC,UAAUQ,IAA3BP,MACUO,GAAiB,GAA3BP,MAEApC,GAAI6C,GAAKF,EACT3C,GAAI8C,GAAKvC,GAAgByB,GAClB,IAAIhC,GAAIY,KAAKF,UAAU8B,YAAYC,IAAI7B,KAAKD,YAAY6B,YAAY1C,SAAS6C,EAAeZ,IAGrGgB,EAAAtC,IAAAuC,eAAAC,IA7GA,WACE,OAAOtD,EAAKiC,OAAOhB,KAAKF,UAAWE,KAAKD,gBAG1CqC,gBAAAC,IACA,WACE,OAAO,IAAIxC,EAASd,EAAKuD,UAAUtC,KAAKF,UAAWE,KAAKD,aAAcC,KAAKD,gBAC5EqC,iBAAAC,IAyGD,WACE,OAAO,IAAIxC,EAASG,KAAKF,UAAWE,KAAKD,oBChJvCX,GAAMF,EAASG,GAERkD,YAAmCC,GA2B9C,SAAAD,EAAsBE,EAAa3C,EAAsBC,SAI+B,OAHtF2C,EAAAF,EAAAG,UAAM7C,EAAWC,SACPhB,EAAK6D,gBAAgBF,EAAKf,SAAU7C,KAA9C0C,MACAkB,EAAKD,SAAWA,EAChBC,EAAKG,aAAe9D,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOyD,EAASM,WAAUL,EA3BxFM,EAAAT,EAAAC,GAAAD,EAKcU,cAAP,SAAyCR,EAAaS,GAC3D,OAAO,IAAIX,EAAeE,EAAUS,IAGtCX,EAMcY,qBAAP,SACLV,EACA3C,EACAC,GAEA,OAAO,IAAIwC,EAAeE,EAAU3C,EAAWC,IAChD,IAAAK,EAAAmC,EAAAlC,UAmDA,OAnDAD,EASMG,IAAA,SAAIC,GACCR,KAAKyC,SAASW,OAAO5C,EAAMiC,WAArCjB,MACA,IAAM6B,EAAKb,EAAAnC,UAASE,IAAGoC,UAACnC,GACxB,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUY,EAAMvD,UAAWuD,EAAMtD,cAClFK,EAEMQ,SAAA,SAASJ,GACJR,KAAKyC,SAASW,OAAO5C,EAAMiC,WAArCjB,MACA,IAAM8B,EAAUd,EAAAnC,UAASO,SAAQ+B,UAACnC,GAClC,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUa,EAAWxD,UAAWwD,EAAWvD,cAC5FK,EAEMO,SAAA,SAASH,GACd,IAAM+C,EAAUf,EAAAnC,UAASM,SAAQgC,UAACnC,GAClC,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUc,EAAWzD,UAAWyD,EAAWxD,cAC5FK,EAEMY,OAAA,SAAOR,GACZ,IAAMgD,EAAOhB,EAAAnC,UAASW,OAAM2B,UAACnC,GAC7B,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUe,EAAQ1D,UAAW0D,EAAQzD,cACtFK,EAEMa,cAAA,SACLC,EACAC,EACAC,GAEA,gBAJAF,IAAAA,EAA4B,YAE5BE,IAAAA,EAAqBvF,iBAAS2D,YAEvBgD,EAAAnC,UAAMW,OAAM2B,UAAC3C,KAAK6C,cAAc5B,cAAcC,EAAmBC,EAAQC,IACjFhB,EAEM4B,QAAA,SACLD,EACAZ,EACAC,GAGA,gBALAW,IAAAA,EAAwB/B,KAAKyC,SAASM,mBAEtC3B,IAAAA,EAAqBvF,iBAAS2D,YAEpBuC,GAAiB/B,KAAKyC,SAASM,UAAzCvB,MACOgB,EAAAnC,UAAMW,OAAM2B,UAAC3C,KAAK6C,cAAcb,QAAQD,EAAeZ,EAAQC,IACvEhB,EAEMqD,QAAA,SAAQtC,GAEb,gBAFaA,IAAAA,EAAiB,CAAEE,eAAgB,KAChDjC,GAAI6C,GAAKjC,KAAKyC,SAASM,SAChB,IAAI3D,GAAIY,KAAK2B,SAASC,YAAYC,IAAI7B,KAAK6C,aAAajB,YAAY1C,SAASiC,IACrFgB,EAAAI,IAAAH,cAAAC,IAED,WACE,OAAIrC,KAAKyC,SAASiB,QAAgB1D,KAC3BuC,EAAeY,qBAAqBnD,KAAKyC,SAASkB,QAAS3D,KAAKF,UAAWE,KAAKD,kBAhFnCF,ICRlD+D,GAAc,IAAI/D,GAASd,EAAKC,OAAO,MAM7C,SAAS6E,GAAUC,GACjB,OAAO,IAAIC,GAAQD,EAAShE,UAAWgE,EAAS/D,iBAGrCgE,YAAQvB,GAArB,SAAAuB,UAIwC,mDAAJ,EAAIrB,EAyBvCM,EAAAe,EAAAvB,GAAA,IAAApC,EAAA2D,EAAA1D,UADE,OACFD,EAvBCG,IAAA,SAAIC,GACF,OAAOqD,GAASrB,EAAAnC,UAAOE,IAAGoC,UAACnC,KAC5BJ,EAEDQ,SAAA,SAASJ,GACP,OAAOqD,GAASrB,EAAAnC,UAAOO,SAAQ+B,UAACnC,KACjCJ,EAEDO,SAAA,SAASH,GACP,OAAOqD,GAASrB,EAAAnC,UAAOM,SAAQgC,UAACnC,KACjCJ,EAEDY,OAAA,SAAOR,GACL,OAAOqD,GAASrB,EAAAnC,UAAOW,OAAM2B,UAACnC,KAC/BJ,EAEMa,cAAA,SAAcC,EAA+BC,EAAiBC,GACnE,gBADmBF,IAAAA,EAA4B,GACxCsB,EAAAnC,UAAMM,SAAQgC,UAACiB,IAAa3C,cAAcC,EAAmBC,EAAQC,IAC7EhB,EAEM4B,QAAA,SAAQD,EAA2BZ,EAAiBC,GACzD,gBADaW,IAAAA,EAAwB,GAC9BS,EAAAnC,UAAMM,SAAQgC,UAACiB,IAAa5B,QAAQD,EAAeZ,EAAQC,IACnE2C,GA5B0BlE,ICNhBmE,YAAuDxB,GASlE,SAAAwB,IAK8F,UAAxFC,EAAqBC,EAAuBnE,EAAwBD,EAAoBqE,EAAAC,UAAAC,OAJzFC,MAE6EC,MAAAJ,GAAAK,IAAAA,EAAAL,EAAAK,IAF7EF,EAE6EE,GAAAJ,UAAAI,GAIhF,GAAoB,IAAhBF,EAAKD,OACLJ,EAAuDK,KAAzCJ,EAAyCI,KAA1BvE,EAA0BuE,KAAbxE,EAAawE,SACpD,CACL,IAAMG,EAASH,EAAK,GAAGI,YAAY1D,OAAOsD,EAAK,GAAGK,YACjDC,EAAwD,CACvDN,EAAK,GAAGK,WAAWlC,SACnB6B,EAAK,GAAGI,YAAYjC,SACpBgC,EAAO1E,YACP0E,EAAO3E,WAJPmE,EAAYW,KAAEV,EAAaU,KAAE7E,EAAW6E,KAAE9E,EAAS8E,KActD,OAPDlC,EAAAF,EAAAG,UAAM7C,EAAWC,UAEZkE,aAAeA,EACpBvB,EAAKwB,cAAgBA,EACrBxB,EAAKmC,OAAS,IAAIhF,GAChBd,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOiF,EAAalB,WAC5DhE,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOkF,EAAcnB,YAC9DL,EAGHM,EAAAgB,EAAAxB,GAAA,IAAApC,EAAA4D,EAAA3D,UAyCC,OAzCDD,EAGOE,OAAA,WACL,OAAO,IAAI0D,EAAMhE,KAAKkE,cAAelE,KAAKiE,aAAcjE,KAAKF,UAAWE,KAAKD,cAG/EK,EAIOO,SAAA,SAAuCH,GAClCR,KAAKkE,cAAcd,OAAO5C,EAAMyD,eAA1CzC,MACA,IAAMsC,EAAQtB,EAAAnC,UAASM,SAAQgC,UAACnC,GAChC,OAAO,IAAIwD,EAAMhE,KAAKiE,aAAczD,EAAM0D,cAAeJ,EAAS/D,YAAa+D,EAAShE,YAG1FM,EAIO0E,MAAA,SAAMC,GACDA,EAAetC,SAASW,OAAOpD,KAAKiE,eAA9CzC,MACA,IAAMiD,EAAMjC,EAAAnC,UAASM,SAAQgC,UAACoC,GAC9B,OAAOxC,GAAeY,qBAAqBnD,KAAKkE,cAAeO,EAAO3E,UAAW2E,EAAO1E,cAG1FK,EAQOa,cAAA,SAAcC,EAA+BC,EAAiBC,GACnE,gBADmBF,IAAAA,EAA4B,GACxClB,KAAKgF,oBAAoB/D,cAAcC,EAAmBC,EAAQC,IAC1EhB,EAEM4B,QAAA,SAAQD,EAA2BZ,EAAiBC,GACzD,gBADaW,IAAAA,EAAwB,GAC9B/B,KAAKgF,oBAAoBhD,QAAQD,EAAeZ,EAAQC,IAChEe,EAAA6B,IAAA5B,0BAAAC,IAVD,WACE,OAAAG,EAAAnC,UAAaM,SAAQgC,UAAC3C,KAAK6E,aArE6ChF,ICDtDoF,GAkCpB,SAAsBtJ,EAAiBoH,EAAkBmC,EAAiBC,GAC9D7D,OAAO8D,cAAczJ,IAA/B6F,MACUuB,GAAY,GAAKA,EAAW,KAAOzB,OAAOC,UAAUwB,IAA9DvB,MAEAxB,KAAKrE,QAAUA,EACfqE,KAAK+C,SAAWA,EAChB/C,KAAKkF,OAASA,EACdlF,KAAKmF,KAAOA,GC3CME,YAAeC,GAArC,SAAAD,UAEwC,kDADL,EACjB3C,WAAiB,EAAKA,EACvC,OAAAM,EAAAqC,EAAAC,GAAAD,GAH4CJ,aCC7BM,GAAwBjK,GACtC,IACE,OAAOkK,aAAWlK,GAClB,MAAOmK,GACP,MAAM,IAAItF,MAAS7E,+BAKvB,IAAMoK,GAA4B,sBCNrBC,YAAML,GA2BjB,SAAAK,EACEhK,EACAL,EACAyH,EACAmC,EACAC,EACAS,EACAC,EACAC,SAe4B,OAb5BpD,EAAA4C,EAAA3C,UAAMhH,EAASoH,EAAUmC,EAAQC,oBApCD,EAClBzC,WAAgB,EAqC5BA,EAAKpH,QADHsK,WD1B0BtK,GAChC,GAAIoK,GAA0BK,KAAKzK,GACjC,OAAOA,EAGT,MAAM,IAAI6E,MAAS7E,8BCsBA0K,CAAkB1K,GAElBiK,GAAwBjK,GAErCuK,IACQA,EAAUI,IAAIC,YAAUC,KAAK,KAAvC3E,OAEEsE,IACQA,EAAWG,IAAIC,YAAUC,KAAK,KAAxC3E,OAEFkB,EAAKmD,UAAYA,EACjBnD,EAAKoD,WAAaA,EAAUpD,EAG9BM,EAAA2C,EAAAL,GAAA,IAAAlF,EAAAuF,EAAAtF,UAoBA,OApBAD,EAIOgD,OAAA,SAAO5C,GACZ,OAAOA,EAAMkD,SAAW1D,KAAKrE,UAAY6E,EAAM7E,SAAWqE,KAAK1E,QAAQ8K,gBAAkB5F,EAAMlF,QAAQ8K,eAGzGhG,EAMOiG,YAAA,SAAY7F,GAGjB,OAFUR,KAAKrE,UAAY6E,EAAM7E,SAAjC6F,MACUxB,KAAK1E,QAAQ8K,gBAAkB5F,EAAMlF,QAAQ8K,eAAvD5E,MACOxB,KAAK1E,QAAQ8K,cAAgB5F,EAAMlF,QAAQ8K,eAGpDjE,EAAAwD,IAAAvD,cAAAC,IAGA,WACE,OAAOrC,UA7EgBiF,ICJdqB,GAAsC,CACjDC,EAAG,IAAIZ,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1Ea,SAAU,IAAIb,GAAM,SAAU,6CAA8C,GAAI,OAAQ,iBACxFc,EAAG,IAAId,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1Ee,EAAG,IAAIf,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1EgB,EAAG,IAAIhB,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1EiB,GAAI,IAAIjB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAE5EkB,GAAI,IAAIlB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAC5EmB,GAAI,IAAInB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAC5EoB,SAAU,IAAIpB,GAAM,SAAU,6CAA8C,GAAI,OAAQ,iBAExFqB,MAAO,IAAIrB,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClFsB,OAAQ,IAAItB,GAAM,OAAQ,6CAA8C,GAAI,OAAQ,iBACpFuB,OAAQ,IAAIvB,GAAM,OAAQ,6CAA8C,GAAI,OAAQ,iBAEpFwB,KAAM,IAAIxB,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFyB,MAAO,IAAIzB,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAElF0B,GAAI,IAAI1B,GAAM,GAAI,6CAA8C,GAAI,OAAQ,eAC5E2B,IAAK,IAAI3B,GAAM,IAAK,6CAA8C,GAAI,SAAU,iBAChF4B,MAAO,IAAI5B,GAAM,MAAO,6CAA8C,GAAI,QAAS,gBACnF6B,QAAS,IAAI7B,GAAM,QAAS,6CAA8C,GAAI,OAAQ,iBACtF8B,MAAO,IAAI9B,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClF+B,IAAK,IAAI/B,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EgC,IAAK,IAAIhC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EiC,KAAM,IAAIjC,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFkC,IAAK,IAAIlC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EmC,MAAO,IAAInC,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClFoC,KAAM,IAAIpC,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFqC,IAAK,IAAIrC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,kBC1BnEsC,YAAMC,GACjB,SAAAD,EAAsBtM,UACpBuM,EAAAvF,UAAMhH,EAAS,GAAI,MAAO,eAiB3B,OAhBAqH,EAAAiF,EAAAC,GAAAD,EAUaE,QAAP,SAAexM,SACpB,cAAAyM,EAAOpI,KAAKqI,YAAY1M,IAAQyM,EAAKpI,KAAKqI,YAAY1M,GAAW,IAAIsM,EAAMtM,IAC5EsM,EAAA5H,UAEM+C,OAAA,SAAO5C,GACZ,OAAOA,EAAM8H,UAAY9H,EAAM7E,UAAYqE,KAAKrE,SACjDwG,EAAA8F,IAAA7F,cAAAC,IAdD,WACE,IAAMkG,EAAQjC,GAAMtG,KAAKrE,SAEzB,OADY4M,GAAZ/G,MACO+G,OARgBlD,IAWV4C,eAA4C,OCjBhDO,GAAmBzJ,EAAKC,OAAOsC,OAAOkH,kBAE7CC,GAAO1J,EAAKC,OAAO,GACnB0J,GAAM3J,EAAKC,OAAO,GAClB2J,GAAM5J,EAAKC,OAAO,mpBZmjBgB,SAACrD,GACC,IAAAiN,EAAxC,OAAItP,EAAiBuP,SAASlN,UAE5BiN,EAAOtL,EADI3B,GACuB6B,qBAAmBoL,EAAI,6CAEpD,2HAxhBwC,gGAKf,sGAwBD,2La5DjC,SACEE,EACAC,EACAC,GAEA,IAAMC,EAAqBH,EAAShE,MAAMiE,GAEpCG,EAAcD,EAAmBrI,SAASoI,GAAchI,OAAOiI,GACrE,OAAO,IAAIlF,GAAQmF,EAAYpJ,UAAWoJ,EAAYnJ,2DCVtDoJ,EACAC,EACAC,EACAC,YAAAA,IAAAA,EAAmB,MAEnB,IAAMC,EAASC,YAAUC,cAAY,kBAC/BC,EAAYF,YAAUF,GACtBK,EAAeH,YAAUhO,SAAO,CAAC+N,EAAQK,aAAWT,EAAQ,IAAKE,EAAMD,EAAcM,KAAaG,MAAM,IAC9G,OAAOrE,aAAWmE,yBCVpB,SAAgCG,EAAYvJ,EAAQwJ,EAAiBC,GAMnE,GALUD,EAAU,GAApBvI,MAEUsI,EAAMzF,QAAU0F,GAA1BvI,MAGqB,IAAjBsI,EAAMzF,OAER,OADAyF,EAAMG,KAAK1J,GACJ,KAEP,IAAM2J,EAASJ,EAAMzF,SAAW0F,EAEhC,GAAIG,GAAUF,EAAWF,EAAMA,EAAMzF,OAAS,GAAI9D,IAAQ,EACxD,OAAOA,EAMT,IAHA,IAAI4J,EAAK,EACPC,EAAKN,EAAMzF,OAEN8F,EAAKC,GAAI,CACd,IAAMC,EAAOF,EAAKC,IAAQ,EACtBJ,EAAWF,EAAMO,GAAM9J,IAAQ,EACjC4J,EAAKE,EAAM,EAEXD,EAAKC,EAIT,OADAP,EAAMQ,OAAOH,EAAI,EAAG5J,GACb2J,EAASJ,EAAMS,MAAS,4BHnBdC,GAInB,GAHUzL,EAAK0L,mBAAmBD,EAAO/B,KAAzCjH,MAGIzC,EAAK8B,SAAS2J,EAAOhC,IACvB,OAAOzJ,EAAKC,OAAO0L,KAAKC,MAAMD,KAAKE,KAAK7L,EAAK8L,SAASL,MAGxD,IAAIM,EACAC,EAGJ,IAFAD,EAAIN,EACJO,EAAIhM,EAAKwB,IAAIxB,EAAKiC,OAAOwJ,EAAO7B,IAAMD,IAC/B3J,EAAK8B,SAASkK,EAAGD,IACtBA,EAAIC,EACJA,EAAIhM,EAAKiC,OAAOjC,EAAKwB,IAAIxB,EAAKiC,OAAOwJ,EAAOO,GAAIA,GAAIpC,IAEtD,OAAOmC"} \ No newline at end of file diff --git a/sdks/sdk-core/dist/sdk-core.esm.js b/sdks/sdk-core/dist/sdk-core.esm.js new file mode 100644 index 000000000..163ef1630 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.esm.js @@ -0,0 +1,1099 @@ +import JSBI from 'jsbi'; +import invariant from 'tiny-invariant'; +import _Decimal from 'decimal.js-light'; +import _Big from 'big.js'; +import toFormat from 'toformat'; +import { BigNumber } from '@ethersproject/bignumber'; +import { getAddress } from '@ethersproject/address'; +import { concat, hexZeroPad } from '@ethersproject/bytes'; +import { keccak256 } from '@ethersproject/keccak256'; +import { toUtf8Bytes } from '@ethersproject/strings'; + +function _defineProperties(e, r) { + for (var t = 0; t < r.length; t++) { + var o = r[t]; + o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); + } +} +function _createClass(e, r, t) { + return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { + writable: !1 + }), e; +} +function _extends() { + return _extends = Object.assign ? Object.assign.bind() : function (n) { + for (var e = 1; e < arguments.length; e++) { + var t = arguments[e]; + for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); + } + return n; + }, _extends.apply(null, arguments); +} +function _inheritsLoose(t, o) { + t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); +} +function _setPrototypeOf(t, e) { + return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { + return t.__proto__ = e, t; + }, _setPrototypeOf(t, e); +} +function _toPrimitive(t, r) { + if ("object" != typeof t || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != typeof i) return i; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return ("string" === r ? String : Number)(t); +} +function _toPropertyKey(t) { + var i = _toPrimitive(t, "string"); + return "symbol" == typeof i ? i : i + ""; +} + +var ChainId; +(function (ChainId) { + ChainId[ChainId["MAINNET"] = 1] = "MAINNET"; + ChainId[ChainId["GOERLI"] = 5] = "GOERLI"; + ChainId[ChainId["SEPOLIA"] = 11155111] = "SEPOLIA"; + ChainId[ChainId["OPTIMISM"] = 10] = "OPTIMISM"; + ChainId[ChainId["OPTIMISM_GOERLI"] = 420] = "OPTIMISM_GOERLI"; + ChainId[ChainId["OPTIMISM_SEPOLIA"] = 11155420] = "OPTIMISM_SEPOLIA"; + ChainId[ChainId["ARBITRUM_ONE"] = 42161] = "ARBITRUM_ONE"; + ChainId[ChainId["ARBITRUM_GOERLI"] = 421613] = "ARBITRUM_GOERLI"; + ChainId[ChainId["ARBITRUM_SEPOLIA"] = 421614] = "ARBITRUM_SEPOLIA"; + ChainId[ChainId["POLYGON"] = 137] = "POLYGON"; + ChainId[ChainId["POLYGON_MUMBAI"] = 80001] = "POLYGON_MUMBAI"; + ChainId[ChainId["CELO"] = 42220] = "CELO"; + ChainId[ChainId["CELO_ALFAJORES"] = 44787] = "CELO_ALFAJORES"; + ChainId[ChainId["GNOSIS"] = 100] = "GNOSIS"; + ChainId[ChainId["MOONBEAM"] = 1284] = "MOONBEAM"; + ChainId[ChainId["BNB"] = 56] = "BNB"; + ChainId[ChainId["AVALANCHE"] = 43114] = "AVALANCHE"; + ChainId[ChainId["BASE_GOERLI"] = 84531] = "BASE_GOERLI"; + ChainId[ChainId["BASE_SEPOLIA"] = 84532] = "BASE_SEPOLIA"; + ChainId[ChainId["BASE"] = 8453] = "BASE"; + ChainId[ChainId["ZORA"] = 7777777] = "ZORA"; + ChainId[ChainId["ZORA_SEPOLIA"] = 999999999] = "ZORA_SEPOLIA"; + ChainId[ChainId["ROOTSTOCK"] = 30] = "ROOTSTOCK"; + ChainId[ChainId["BLAST"] = 81457] = "BLAST"; + ChainId[ChainId["ZKSYNC"] = 324] = "ZKSYNC"; + ChainId[ChainId["WORLDCHAIN"] = 480] = "WORLDCHAIN"; + ChainId[ChainId["UNICHAIN_SEPOLIA"] = 1301] = "UNICHAIN_SEPOLIA"; + ChainId[ChainId["UNICHAIN"] = 130] = "UNICHAIN"; + ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET"; + ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM"; + ChainId[ChainId["MONAD"] = 143] = "MONAD"; +})(ChainId || (ChainId = {})); +var SUPPORTED_CHAINS = [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD]; +var NativeCurrencyName; +(function (NativeCurrencyName) { + // Strings match input for CLI + NativeCurrencyName["ETHER"] = "ETH"; + NativeCurrencyName["MATIC"] = "MATIC"; + NativeCurrencyName["CELO"] = "CELO"; + NativeCurrencyName["GNOSIS"] = "XDAI"; + NativeCurrencyName["MOONBEAM"] = "GLMR"; + NativeCurrencyName["BNB"] = "BNB"; + NativeCurrencyName["AVAX"] = "AVAX"; + NativeCurrencyName["ROOTSTOCK"] = "RBTC"; +})(NativeCurrencyName || (NativeCurrencyName = {})); + +var _V2_FACTORY_ADDRESSES, _V2_ROUTER_ADDRESSES, _CHAIN_TO_ADDRESSES_M, _GOVERNANCE_ALPHA_V1_, _GOVERNANCE_BRAVO_ADD, _MERKLE_DISTRIBUTOR_A, _ARGENT_WALLET_DETECT, _SOCKS_CONTROLLER_ADD; +var DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]; +function constructSameAddressMap(address, additionalNetworks) { + if (additionalNetworks === void 0) { + additionalNetworks = []; + } + return DEFAULT_NETWORKS.concat(additionalNetworks).reduce(function (memo, chainId) { + memo[chainId] = address; + return memo; + }, {}); +} +var UNI_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [ChainId.OPTIMISM, ChainId.ARBITRUM_ONE, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.SEPOLIA]); +var UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'; +/** + * @deprecated use V2_FACTORY_ADDRESSES instead + */ +var V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'; +var V2_FACTORY_ADDRESSES = (_V2_FACTORY_ADDRESSES = {}, _V2_FACTORY_ADDRESSES[ChainId.MAINNET] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.GOERLI] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.SEPOLIA] = '0xF62c03E08ada871A0bEb309762E260a7a6a880E6', _V2_FACTORY_ADDRESSES[ChainId.OPTIMISM] = '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf', _V2_FACTORY_ADDRESSES[ChainId.ARBITRUM_ONE] = '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9', _V2_FACTORY_ADDRESSES[ChainId.AVALANCHE] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[ChainId.BASE_SEPOLIA] = '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e', _V2_FACTORY_ADDRESSES[ChainId.BASE] = '0x8909dc15e40173ff4699343b6eb8132c65e18ec6', _V2_FACTORY_ADDRESSES[ChainId.BNB] = '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6', _V2_FACTORY_ADDRESSES[ChainId.POLYGON] = '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C', _V2_FACTORY_ADDRESSES[ChainId.CELO] = '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f', _V2_FACTORY_ADDRESSES[ChainId.BLAST] = '0x5C346464d33F90bABaf70dB6388507CC889C1070', _V2_FACTORY_ADDRESSES[ChainId.WORLDCHAIN] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.UNICHAIN_SEPOLIA] = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f', _V2_FACTORY_ADDRESSES[ChainId.UNICHAIN] = '0x1f98400000000000000000000000000000000002', _V2_FACTORY_ADDRESSES[ChainId.MONAD_TESTNET] = '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0', _V2_FACTORY_ADDRESSES[ChainId.SONEIUM] = '0x97febbc2adbd5644ba22736e962564b23f5828ce', _V2_FACTORY_ADDRESSES[ChainId.MONAD] = '0x182a927119d56008d921126764bf884221b10f59', _V2_FACTORY_ADDRESSES); +/** + * @deprecated use V2_ROUTER_ADDRESSES instead + */ +var V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'; +var V2_ROUTER_ADDRESSES = (_V2_ROUTER_ADDRESSES = {}, _V2_ROUTER_ADDRESSES[ChainId.MAINNET] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[ChainId.GOERLI] = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D', _V2_ROUTER_ADDRESSES[ChainId.SEPOLIA] = '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3', _V2_ROUTER_ADDRESSES[ChainId.ARBITRUM_ONE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.OPTIMISM] = '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2', _V2_ROUTER_ADDRESSES[ChainId.BASE_SEPOLIA] = '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602', _V2_ROUTER_ADDRESSES[ChainId.BASE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.AVALANCHE] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.BNB] = '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24', _V2_ROUTER_ADDRESSES[ChainId.POLYGON] = '0xedf6066a2b290c185783862c7f4776a2c8077ad1', _V2_ROUTER_ADDRESSES[ChainId.BLAST] = '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035', _V2_ROUTER_ADDRESSES[ChainId.WORLDCHAIN] = '0x541aB7c31A119441eF3575F6973277DE0eF460bd', _V2_ROUTER_ADDRESSES[ChainId.UNICHAIN_SEPOLIA] = '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640', _V2_ROUTER_ADDRESSES[ChainId.UNICHAIN] = '0x284f11109359a7e1306c3e447ef14d38400063ff', _V2_ROUTER_ADDRESSES[ChainId.MONAD_TESTNET] = '0xfb8e1c3b833f9e67a71c859a132cf783b645e436', _V2_ROUTER_ADDRESSES[ChainId.SONEIUM] = '0x273f68c234fa55b550b40e563c4a488e0d334320', _V2_ROUTER_ADDRESSES[ChainId.MONAD] = '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804', _V2_ROUTER_ADDRESSES); +// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon +var DEFAULT_ADDRESSES = { + v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984', + multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984', + quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6', + v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34', + nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88' +}; +var MAINNET_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E', + v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90', + v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e', + v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227', + v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203' +}); +var GOERLI_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e' +}); +var OPTIMISM_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3', + v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017', + v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb', + v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7' +}); +var ARBITRUM_ONE_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB', + tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573', + v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32', + v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869', + v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', + v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' +}); +var POLYGON_ADDRESSES = /*#__PURE__*/_extends({}, DEFAULT_ADDRESSES, { + v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6', + v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9', + v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a', + v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9' +}); +// celo v3 and v4 addresses +var CELO_ADDRESSES = { + v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc', + multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204', + quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8', + v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582', + nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A', + tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D', + v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC', + v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9', + v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb', + v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd' +}; +// BNB v3 addresses +var BNB_ADDRESSES = { + v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7', + multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184', + quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077', + v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f', + nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613', + tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C', + swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2', + v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df', + v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b', + v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4', + v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0' +}; +// optimism goerli addresses +var OPTIMISM_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10', + multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd', + quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F', + v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8', + nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6', + tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e' +}; +// optimism sepolia addresses +var OPTIMISM_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF', + multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a', + quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404', + v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07', + nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d', + tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5', + swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4' +}; +// arbitrum goerli v3 addresses +var ARBITRUM_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6', + multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee', + quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA', + v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3', + nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81', + tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8' +}; +// arbitrum sepolia v3 addresses +var ARBITRUM_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e', + multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A', + quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B', + v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D', + nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65', + tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9', + swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E', + v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317', + v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc', + v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb', + v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9' +}; +// sepolia v3 addresses +var SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c', + multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07', + quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3', + v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15', + nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52', + tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07', + swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E', + // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed + mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd', + // TODO: update all below once v4 on sepolia redeployed + v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543', + v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4', + v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c', + v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227' +}; +// Avalanche v3 addresses +var AVALANCHE_ADDRESSES = { + v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD', + multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2', + quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F', + v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97', + nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B', + tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950', + swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE', + v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85', + v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd', + v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286', + v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2' +}; +var BASE_ADDRESSES = { + v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD', + multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693', + quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a', + v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7', + nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1', + tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d', + swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481', + mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776', + v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b', + v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc', + v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71', + v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d' +}; +// Base Goerli v3 addresses +var BASE_GOERLI_ADDRESSES = { + v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2', + multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439', + quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9', + v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE', + nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30', + tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92', + swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d' +}; +// Base Sepolia v3 addresses +var BASE_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24', + multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1', + quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27', + v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10', + nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2', + tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1', + swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4', + // v4 + v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408', + v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80', + v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4', + v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba' +}; +var ZORA_ADDRESSES = { + v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb', + multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15', + quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df', + v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60', + nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78', + tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044', + swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557', + v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f', + v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63', + v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328', + v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6' +}; +var ZORA_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6', + multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A', + quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0', + v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897', + nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20', + tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064' +}; +var ROOTSTOCK_ADDRESSES = { + v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82', + multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386', + quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31', + v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162', + nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1', + tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC', + swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A' +}; +var BLAST_ADDRESSES = { + v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd', + multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705', + quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77', + v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0', + nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28', + tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274', + swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66', + v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446', + v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad', + v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30', + v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf' +}; +var ZKSYNC_ADDRESSES = { + v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422', + multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C', + quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28', + v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E', + nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86', + tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89', + swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3' +}; +var WORLDCHAIN_ADDRESSES = { + v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a', + multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9', + quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c', + v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3', + nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e', + tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623', + swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6', + v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33', + v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa', + v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb', + v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0' +}; +var UNICHAIN_SEPOLIA_ADDRESSES = { + v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984', + multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1', + quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89', + v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2', + nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075', + tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0', + swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166', + v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac', + v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664', + v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222', + v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472' +}; +var UNICHAIN_ADDRESSES = { + v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003', + multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b', + quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c', + v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc', + nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9', + tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443', + swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c', + v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004', + v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf', + v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2', + v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0' +}; +var MONAD_TESTNET_ADDRESSES = { + v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276', + multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44', + quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862', + v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661', + nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7', + tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893', + swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7' +}; +var MONAD_ADDRESSES = { + v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498', + multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343', + quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65', + v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15', + nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53', + tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f', + swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900', + // v4 + v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e', + v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016', + v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64', + v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891' +}; +var SONEIUM_ADDRESSES = { + v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717', + multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2', + quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba', + v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb', + nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c', + tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a', + swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9', + v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32', + v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566', + v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', + v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' +}; +var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M); +/* V3 Contract Addresses */ +var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress; + return memo; +}, {})); +var V3_MIGRATOR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress; + if (v3MigratorAddress) { + memo[chainId] = v3MigratorAddress; + } + return memo; +}, {})); +var MULTICALL_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress; + return memo; +}, {})); +/** + * The oldest V0 governance address + */ +var GOVERNANCE_ALPHA_V0_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'); +/** + * The older V1 governance address + */ +var GOVERNANCE_ALPHA_V1_ADDRESSES = (_GOVERNANCE_ALPHA_V1_ = {}, _GOVERNANCE_ALPHA_V1_[ChainId.MAINNET] = '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6', _GOVERNANCE_ALPHA_V1_); +/** + * The latest governor bravo that is currently admin of timelock + */ +var GOVERNANCE_BRAVO_ADDRESSES = (_GOVERNANCE_BRAVO_ADD = {}, _GOVERNANCE_BRAVO_ADD[ChainId.MAINNET] = '0x408ED6354d4973f66138C91495F2f2FCbd8724C3', _GOVERNANCE_BRAVO_ADD); +var TIMELOCK_ADDRESSES = /*#__PURE__*/constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC'); +var MERKLE_DISTRIBUTOR_ADDRESS = (_MERKLE_DISTRIBUTOR_A = {}, _MERKLE_DISTRIBUTOR_A[ChainId.MAINNET] = '0x090D4613473dEE047c3f2706764f49E0821D256e', _MERKLE_DISTRIBUTOR_A); +var ARGENT_WALLET_DETECTOR_ADDRESS = (_ARGENT_WALLET_DETECT = {}, _ARGENT_WALLET_DETECT[ChainId.MAINNET] = '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8', _ARGENT_WALLET_DETECT); +var QUOTER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress; + return memo; +}, {})); +var NONFUNGIBLE_POSITION_MANAGER_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress; + if (nonfungiblePositionManagerAddress) { + memo[chainId] = nonfungiblePositionManagerAddress; + } + return memo; +}, {})); +var ENS_REGISTRAR_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e')); +var SOCKS_CONTROLLER_ADDRESSES = (_SOCKS_CONTROLLER_ADD = {}, _SOCKS_CONTROLLER_ADD[ChainId.MAINNET] = '0x65770b5283117639760beA3F867b69b3697a91dd', _SOCKS_CONTROLLER_ADD); +var TICK_LENS_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress; + if (tickLensAddress) { + memo[chainId] = tickLensAddress; + } + return memo; +}, {})); +var MIXED_ROUTE_QUOTER_V1_ADDRESSES = /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { + var mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address; + if (mixedRouteQuoterV1Address) { + memo[chainId] = mixedRouteQuoterV1Address; + } + return memo; +}, {}); +var SWAP_ROUTER_02_ADDRESSES = function SWAP_ROUTER_02_ADDRESSES(chainId) { + if (SUPPORTED_CHAINS.includes(chainId)) { + var _CHAIN_TO_ADDRESSES_M2; + var id = chainId; + return (_CHAIN_TO_ADDRESSES_M2 = CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address) != null ? _CHAIN_TO_ADDRESSES_M2 : '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'; + } + return ''; +}; + +var TradeType; +(function (TradeType) { + TradeType[TradeType["EXACT_INPUT"] = 0] = "EXACT_INPUT"; + TradeType[TradeType["EXACT_OUTPUT"] = 1] = "EXACT_OUTPUT"; +})(TradeType || (TradeType = {})); +var Rounding; +(function (Rounding) { + Rounding[Rounding["ROUND_DOWN"] = 0] = "ROUND_DOWN"; + Rounding[Rounding["ROUND_HALF_UP"] = 1] = "ROUND_HALF_UP"; + Rounding[Rounding["ROUND_UP"] = 2] = "ROUND_UP"; +})(Rounding || (Rounding = {})); +var MaxUint256 = /*#__PURE__*/JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'); + +var _toSignificantRoundin, _toFixedRounding; +var Decimal = /*#__PURE__*/toFormat(_Decimal); +var Big = /*#__PURE__*/toFormat(_Big); +var toSignificantRounding = (_toSignificantRoundin = {}, _toSignificantRoundin[Rounding.ROUND_DOWN] = Decimal.ROUND_DOWN, _toSignificantRoundin[Rounding.ROUND_HALF_UP] = Decimal.ROUND_HALF_UP, _toSignificantRoundin[Rounding.ROUND_UP] = Decimal.ROUND_UP, _toSignificantRoundin); +var toFixedRounding = (_toFixedRounding = {}, _toFixedRounding[Rounding.ROUND_DOWN] = 0, _toFixedRounding[Rounding.ROUND_HALF_UP] = 1, _toFixedRounding[Rounding.ROUND_UP] = 3, _toFixedRounding); +var Fraction = /*#__PURE__*/function () { + function Fraction(numerator, denominator) { + if (denominator === void 0) { + denominator = JSBI.BigInt(1); + } + this.numerator = JSBI.BigInt(numerator); + this.denominator = JSBI.BigInt(denominator); + } + Fraction.tryParseFraction = function tryParseFraction(fractionish) { + if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string') return new Fraction(fractionish); + if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish; + throw new Error('Could not parse fraction'); + } + // performs floor division + ; + var _proto = Fraction.prototype; + _proto.invert = function invert() { + return new Fraction(this.denominator, this.numerator); + }; + _proto.add = function add(other) { + var otherParsed = Fraction.tryParseFraction(other); + if (JSBI.equal(this.denominator, otherParsed.denominator)) { + return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator); + } + return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.subtract = function subtract(other) { + var otherParsed = Fraction.tryParseFraction(other); + if (JSBI.equal(this.denominator, otherParsed.denominator)) { + return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator); + } + return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.lessThan = function lessThan(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.equalTo = function equalTo(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.greaterThan = function greaterThan(other) { + var otherParsed = Fraction.tryParseFraction(other); + return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)); + }; + _proto.multiply = function multiply(other) { + var otherParsed = Fraction.tryParseFraction(other); + return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator)); + }; + _proto.divide = function divide(other) { + var otherParsed = Fraction.tryParseFraction(other); + return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator)); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + if (rounding === void 0) { + rounding = Rounding.ROUND_HALF_UP; + } + !Number.isInteger(significantDigits) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not an integer.") : invariant(false) : void 0; + !(significantDigits > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, significantDigits + " is not positive.") : invariant(false) : void 0; + Decimal.set({ + precision: significantDigits + 1, + rounding: toSignificantRounding[rounding] + }); + var quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits); + return quotient.toFormat(quotient.decimalPlaces(), format); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + if (rounding === void 0) { + rounding = Rounding.ROUND_HALF_UP; + } + !Number.isInteger(decimalPlaces) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is not an integer.") : invariant(false) : void 0; + !(decimalPlaces >= 0) ? process.env.NODE_ENV !== "production" ? invariant(false, decimalPlaces + " is negative.") : invariant(false) : void 0; + Big.DP = decimalPlaces; + Big.RM = toFixedRounding[rounding]; + return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format); + } + /** + * Helper method for converting any super class back to a fraction + */; + return _createClass(Fraction, [{ + key: "quotient", + get: function get() { + return JSBI.divide(this.numerator, this.denominator); + } + // remainder after floor division + }, { + key: "remainder", + get: function get() { + return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator); + } + }, { + key: "asFraction", + get: function get() { + return new Fraction(this.numerator, this.denominator); + } + }]); +}(); + +var Big$1 = /*#__PURE__*/toFormat(_Big); +var CurrencyAmount = /*#__PURE__*/function (_Fraction) { + function CurrencyAmount(currency, numerator, denominator) { + var _this; + _this = _Fraction.call(this, numerator, denominator) || this; + !JSBI.lessThanOrEqual(_this.quotient, MaxUint256) ? process.env.NODE_ENV !== "production" ? invariant(false, 'AMOUNT') : invariant(false) : void 0; + _this.currency = currency; + _this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals)); + return _this; + } + /** + * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount + * @param currency the currency in the amount + * @param rawAmount the raw token or ether amount + */ + _inheritsLoose(CurrencyAmount, _Fraction); + CurrencyAmount.fromRawAmount = function fromRawAmount(currency, rawAmount) { + return new CurrencyAmount(currency, rawAmount); + } + /** + * Construct a currency amount with a denominator that is not equal to 1 + * @param currency the currency + * @param numerator the numerator of the fractional token amount + * @param denominator the denominator of the fractional token amount + */; + CurrencyAmount.fromFractionalAmount = function fromFractionalAmount(currency, numerator, denominator) { + return new CurrencyAmount(currency, numerator, denominator); + }; + var _proto = CurrencyAmount.prototype; + _proto.add = function add(other) { + !this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0; + var added = _Fraction.prototype.add.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator); + }; + _proto.subtract = function subtract(other) { + !this.currency.equals(other.currency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CURRENCY') : invariant(false) : void 0; + var subtracted = _Fraction.prototype.subtract.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator); + }; + _proto.multiply = function multiply(other) { + var multiplied = _Fraction.prototype.multiply.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator); + }; + _proto.divide = function divide(other) { + var divided = _Fraction.prototype.divide.call(this, other); + return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 6; + } + if (rounding === void 0) { + rounding = Rounding.ROUND_DOWN; + } + return _Fraction.prototype.divide.call(this, this.decimalScale).toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = this.currency.decimals; + } + if (rounding === void 0) { + rounding = Rounding.ROUND_DOWN; + } + !(decimalPlaces <= this.currency.decimals) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0; + return _Fraction.prototype.divide.call(this, this.decimalScale).toFixed(decimalPlaces, format, rounding); + }; + _proto.toExact = function toExact(format) { + if (format === void 0) { + format = { + groupSeparator: '' + }; + } + Big$1.DP = this.currency.decimals; + return new Big$1(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format); + }; + return _createClass(CurrencyAmount, [{ + key: "wrapped", + get: function get() { + if (this.currency.isToken) return this; + return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator); + } + }]); +}(Fraction); + +var ONE_HUNDRED = /*#__PURE__*/new Fraction(/*#__PURE__*/JSBI.BigInt(100)); +/** + * Converts a fraction to a percent + * @param fraction the fraction to convert + */ +function toPercent(fraction) { + return new Percent(fraction.numerator, fraction.denominator); +} +var Percent = /*#__PURE__*/function (_Fraction) { + function Percent() { + var _this; + _this = _Fraction.apply(this, arguments) || this; + /** + * This boolean prevents a fraction from being interpreted as a Percent + */ + _this.isPercent = true; + return _this; + } + _inheritsLoose(Percent, _Fraction); + var _proto = Percent.prototype; + _proto.add = function add(other) { + return toPercent(_Fraction.prototype.add.call(this, other)); + }; + _proto.subtract = function subtract(other) { + return toPercent(_Fraction.prototype.subtract.call(this, other)); + }; + _proto.multiply = function multiply(other) { + return toPercent(_Fraction.prototype.multiply.call(this, other)); + }; + _proto.divide = function divide(other) { + return toPercent(_Fraction.prototype.divide.call(this, other)); + }; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 5; + } + return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = 2; + } + return _Fraction.prototype.multiply.call(this, ONE_HUNDRED).toFixed(decimalPlaces, format, rounding); + }; + return Percent; +}(Fraction); + +var Price = /*#__PURE__*/function (_Fraction) { + /** + * Construct a price, either with the base and quote currency amount, or the + * @param args + */ + function Price() { + var _this; + var baseCurrency, quoteCurrency, denominator, numerator; + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + if (args.length === 4) { + baseCurrency = args[0]; + quoteCurrency = args[1]; + denominator = args[2]; + numerator = args[3]; + } else { + var result = args[0].quoteAmount.divide(args[0].baseAmount); + var _ref = [args[0].baseAmount.currency, args[0].quoteAmount.currency, result.denominator, result.numerator]; + baseCurrency = _ref[0]; + quoteCurrency = _ref[1]; + denominator = _ref[2]; + numerator = _ref[3]; + } + _this = _Fraction.call(this, numerator, denominator) || this; + _this.baseCurrency = baseCurrency; + _this.quoteCurrency = quoteCurrency; + _this.scalar = new Fraction(JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))); + return _this; + } + /** + * Flip the price, switching the base and quote currency + */ + _inheritsLoose(Price, _Fraction); + var _proto = Price.prototype; + _proto.invert = function invert() { + return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator); + } + /** + * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency + * @param other the other price + */; + _proto.multiply = function multiply(other) { + !this.quoteCurrency.equals(other.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0; + var fraction = _Fraction.prototype.multiply.call(this, other); + return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator); + } + /** + * Return the amount of quote currency corresponding to a given amount of the base currency + * @param currencyAmount the amount of base currency to quote against the price + */; + _proto.quote = function quote(currencyAmount) { + !currencyAmount.currency.equals(this.baseCurrency) ? process.env.NODE_ENV !== "production" ? invariant(false, 'TOKEN') : invariant(false) : void 0; + var result = _Fraction.prototype.multiply.call(this, currencyAmount); + return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator); + } + /** + * Get the value scaled by decimals for formatting + * @private + */; + _proto.toSignificant = function toSignificant(significantDigits, format, rounding) { + if (significantDigits === void 0) { + significantDigits = 6; + } + return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding); + }; + _proto.toFixed = function toFixed(decimalPlaces, format, rounding) { + if (decimalPlaces === void 0) { + decimalPlaces = 4; + } + return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding); + }; + return _createClass(Price, [{ + key: "adjustedForDecimals", + get: function get() { + return _Fraction.prototype.multiply.call(this, this.scalar); + } + }]); +}(Fraction); + +/** + * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies + */ +var BaseCurrency = +/** + * Constructs an instance of the base class `BaseCurrency`. + * @param chainId the chain ID on which this currency resides + * @param decimals decimals of the currency + * @param symbol symbol of the currency + * @param name of the currency + */ +function BaseCurrency(chainId, decimals, symbol, name) { + !Number.isSafeInteger(chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_ID') : invariant(false) : void 0; + !(decimals >= 0 && decimals < 255 && Number.isInteger(decimals)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'DECIMALS') : invariant(false) : void 0; + this.chainId = chainId; + this.decimals = decimals; + this.symbol = symbol; + this.name = name; +}; + +/** + * Represents the native currency of the chain on which it resides, e.g. + */ +var NativeCurrency = /*#__PURE__*/function (_BaseCurrency) { + function NativeCurrency() { + var _this; + _this = _BaseCurrency.apply(this, arguments) || this; + _this.isNative = true; + _this.isToken = false; + return _this; + } + _inheritsLoose(NativeCurrency, _BaseCurrency); + return NativeCurrency; +}(BaseCurrency); + +/** + * Validates an address and returns the parsed (checksummed) version of that address + * @param address the unchecksummed hex address + */ +function validateAndParseAddress(address) { + try { + return getAddress(address); + } catch (error) { + throw new Error(address + " is not a valid address."); + } +} +// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x +var startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/; +/** + * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding. + * @param address the unchecksummed hex address + */ +function checkValidAddress(address) { + if (startsWith0xLen42HexRegex.test(address)) { + return address; + } + throw new Error(address + " is not a valid address."); +} + +/** + * Represents an ERC20 token with a unique address and some metadata. + */ +var Token = /*#__PURE__*/function (_BaseCurrency) { + /** + * + * @param chainId {@link BaseCurrency#chainId} + * @param address The contract address on the chain on which this token lives + * @param decimals {@link BaseCurrency#decimals} + * @param symbol {@link BaseCurrency#symbol} + * @param name {@link BaseCurrency#name} + * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters + * @param buyFeeBps Buy fee tax for FOT tokens, in basis points + * @param sellFeeBps Sell fee tax for FOT tokens, in basis points + */ + function Token(chainId, address, decimals, symbol, name, bypassChecksum, buyFeeBps, sellFeeBps) { + var _this; + _this = _BaseCurrency.call(this, chainId, decimals, symbol, name) || this; + _this.isNative = false; + _this.isToken = true; + if (bypassChecksum) { + _this.address = checkValidAddress(address); + } else { + _this.address = validateAndParseAddress(address); + } + if (buyFeeBps) { + !buyFeeBps.gte(BigNumber.from(0)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NON-NEGATIVE FOT FEES') : invariant(false) : void 0; + } + if (sellFeeBps) { + !sellFeeBps.gte(BigNumber.from(0)) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NON-NEGATIVE FOT FEES') : invariant(false) : void 0; + } + _this.buyFeeBps = buyFeeBps; + _this.sellFeeBps = sellFeeBps; + return _this; + } + /** + * Returns true if the two tokens are equivalent, i.e. have the same chainId and address. + * @param other other token to compare + */ + _inheritsLoose(Token, _BaseCurrency); + var _proto = Token.prototype; + _proto.equals = function equals(other) { + return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase(); + } + /** + * Returns true if the address of this token sorts before the address of the other token + * @param other other token to compare + * @throws if the tokens have the same address + * @throws if the tokens are on different chains + */; + _proto.sortsBefore = function sortsBefore(other) { + !(this.chainId === other.chainId) ? process.env.NODE_ENV !== "production" ? invariant(false, 'CHAIN_IDS') : invariant(false) : void 0; + !(this.address.toLowerCase() !== other.address.toLowerCase()) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ADDRESSES') : invariant(false) : void 0; + return this.address.toLowerCase() < other.address.toLowerCase(); + } + /** + * Return this token, which does not need to be wrapped + */; + return _createClass(Token, [{ + key: "wrapped", + get: function get() { + return this; + } + }]); +}(BaseCurrency); + +/** + * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped + */ +var WETH9 = { + 1: /*#__PURE__*/new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'), + 11155111: /*#__PURE__*/new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'), + 3: /*#__PURE__*/new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'), + 4: /*#__PURE__*/new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'), + 5: /*#__PURE__*/new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'), + 42: /*#__PURE__*/new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'), + 10: /*#__PURE__*/new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 69: /*#__PURE__*/new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 11155420: /*#__PURE__*/new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 42161: /*#__PURE__*/new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'), + 421611: /*#__PURE__*/new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'), + 421614: /*#__PURE__*/new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'), + 8453: /*#__PURE__*/new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 84532: /*#__PURE__*/new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 56: /*#__PURE__*/new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'), + 137: /*#__PURE__*/new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'), + 43114: /*#__PURE__*/new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'), + 7777777: /*#__PURE__*/new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 81457: /*#__PURE__*/new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'), + 324: /*#__PURE__*/new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'), + 480: /*#__PURE__*/new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 1301: /*#__PURE__*/new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 130: /*#__PURE__*/new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 10143: /*#__PURE__*/new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'), + 1868: /*#__PURE__*/new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'), + 143: /*#__PURE__*/new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad') +}; + +/** + * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets + */ +var Ether = /*#__PURE__*/function (_NativeCurrency) { + function Ether(chainId) { + return _NativeCurrency.call(this, chainId, 18, 'ETH', 'Ether') || this; + } + _inheritsLoose(Ether, _NativeCurrency); + Ether.onChain = function onChain(chainId) { + var _this$_etherCache$cha; + return (_this$_etherCache$cha = this._etherCache[chainId]) != null ? _this$_etherCache$cha : this._etherCache[chainId] = new Ether(chainId); + }; + var _proto = Ether.prototype; + _proto.equals = function equals(other) { + return other.isNative && other.chainId === this.chainId; + }; + return _createClass(Ether, [{ + key: "wrapped", + get: function get() { + var weth9 = WETH9[this.chainId]; + !!!weth9 ? process.env.NODE_ENV !== "production" ? invariant(false, 'WRAPPED') : invariant(false) : void 0; + return weth9; + } + }]); +}(NativeCurrency); +Ether._etherCache = {}; + +/** + * Returns the percent difference between the mid price and the execution price, i.e. price impact. + * @param midPrice mid price before the trade + * @param inputAmount the input amount of the trade + * @param outputAmount the output amount of the trade + */ +function computePriceImpact(midPrice, inputAmount, outputAmount) { + var quotedOutputAmount = midPrice.quote(inputAmount); + // calculate price impact := (exactQuote - outputAmount) / exactQuote + var priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount); + return new Percent(priceImpact.numerator, priceImpact.denominator); +} + +function computeZksyncCreate2Address(sender, bytecodeHash, salt, input) { + if (input === void 0) { + input = '0x'; + } + var prefix = keccak256(toUtf8Bytes('zksyncCreate2')); + var inputHash = keccak256(input); + var addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26); + return getAddress(addressBytes); +} + +// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to +// `maxSize` by removing the last item +function sortedInsert(items, add, maxSize, comparator) { + !(maxSize > 0) ? process.env.NODE_ENV !== "production" ? invariant(false, 'MAX_SIZE_ZERO') : invariant(false) : void 0; + // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize + !(items.length <= maxSize) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ITEMS_SIZE') : invariant(false) : void 0; + // short circuit first item add + if (items.length === 0) { + items.push(add); + return null; + } else { + var isFull = items.length === maxSize; + // short circuit if full and the additional item does not come before the last item + if (isFull && comparator(items[items.length - 1], add) <= 0) { + return add; + } + var lo = 0, + hi = items.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (comparator(items[mid], add) <= 0) { + lo = mid + 1; + } else { + hi = mid; + } + } + items.splice(lo, 0, add); + return isFull ? items.pop() : null; + } +} + +var MAX_SAFE_INTEGER = /*#__PURE__*/JSBI.BigInt(Number.MAX_SAFE_INTEGER); +var ZERO = /*#__PURE__*/JSBI.BigInt(0); +var ONE = /*#__PURE__*/JSBI.BigInt(1); +var TWO = /*#__PURE__*/JSBI.BigInt(2); +/** + * Computes floor(sqrt(value)) + * @param value the value for which to compute the square root, rounded down + */ +function sqrt(value) { + !JSBI.greaterThanOrEqual(value, ZERO) ? process.env.NODE_ENV !== "production" ? invariant(false, 'NEGATIVE') : invariant(false) : void 0; + // rely on built in sqrt if possible + if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) { + return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value)))); + } + var z; + var x; + z = value; + x = JSBI.add(JSBI.divide(value, TWO), ONE); + while (JSBI.lessThan(x, z)) { + z = x; + x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO); + } + return z; +} + +export { ARGENT_WALLET_DETECTOR_ADDRESS, CHAIN_TO_ADDRESSES_MAP, ChainId, CurrencyAmount, ENS_REGISTRAR_ADDRESSES, Ether, Fraction, GOVERNANCE_ALPHA_V0_ADDRESSES, GOVERNANCE_ALPHA_V1_ADDRESSES, GOVERNANCE_BRAVO_ADDRESSES, MERKLE_DISTRIBUTOR_ADDRESS, MIXED_ROUTE_QUOTER_V1_ADDRESSES, MULTICALL_ADDRESSES, MaxUint256, NONFUNGIBLE_POSITION_MANAGER_ADDRESSES, NativeCurrency, NativeCurrencyName, Percent, Price, QUOTER_ADDRESSES, Rounding, SOCKS_CONTROLLER_ADDRESSES, SUPPORTED_CHAINS, SWAP_ROUTER_02_ADDRESSES, TICK_LENS_ADDRESSES, TIMELOCK_ADDRESSES, Token, TradeType, UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS, UNI_ADDRESSES, V2_FACTORY_ADDRESS, V2_FACTORY_ADDRESSES, V2_ROUTER_ADDRESS, V2_ROUTER_ADDRESSES, V3_CORE_FACTORY_ADDRESSES, V3_MIGRATOR_ADDRESSES, WETH9, computePriceImpact, computeZksyncCreate2Address, sortedInsert, sqrt, validateAndParseAddress }; +//# sourceMappingURL=sdk-core.esm.js.map diff --git a/sdks/sdk-core/dist/sdk-core.esm.js.map b/sdks/sdk-core/dist/sdk-core.esm.js.map new file mode 100644 index 000000000..792bf3213 --- /dev/null +++ b/sdks/sdk-core/dist/sdk-core.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sdk-core.esm.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","env","NODE_ENV","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file diff --git a/sdks/sdk-core/dist/utils/computePriceImpact.d.ts b/sdks/sdk-core/dist/utils/computePriceImpact.d.ts new file mode 100644 index 000000000..d42257e14 --- /dev/null +++ b/sdks/sdk-core/dist/utils/computePriceImpact.d.ts @@ -0,0 +1,8 @@ +import { Currency, CurrencyAmount, Percent, Price } from '../entities'; +/** + * Returns the percent difference between the mid price and the execution price, i.e. price impact. + * @param midPrice mid price before the trade + * @param inputAmount the input amount of the trade + * @param outputAmount the output amount of the trade + */ +export declare function computePriceImpact(midPrice: Price, inputAmount: CurrencyAmount, outputAmount: CurrencyAmount): Percent; diff --git a/sdks/sdk-core/dist/utils/computeZksyncCreate2Address.d.ts b/sdks/sdk-core/dist/utils/computeZksyncCreate2Address.d.ts new file mode 100644 index 000000000..a746f725c --- /dev/null +++ b/sdks/sdk-core/dist/utils/computeZksyncCreate2Address.d.ts @@ -0,0 +1,2 @@ +import { BytesLike } from '@ethersproject/bytes'; +export declare function computeZksyncCreate2Address(sender: string, bytecodeHash: BytesLike, salt: BytesLike, input?: BytesLike): string; diff --git a/sdks/sdk-core/dist/utils/index.d.ts b/sdks/sdk-core/dist/utils/index.d.ts new file mode 100644 index 000000000..c31036d94 --- /dev/null +++ b/sdks/sdk-core/dist/utils/index.d.ts @@ -0,0 +1,5 @@ +export { computePriceImpact } from './computePriceImpact'; +export { computeZksyncCreate2Address } from './computeZksyncCreate2Address'; +export { sortedInsert } from './sortedInsert'; +export { sqrt } from './sqrt'; +export { validateAndParseAddress } from './validateAndParseAddress'; diff --git a/sdks/sdk-core/dist/utils/sortedInsert.d.ts b/sdks/sdk-core/dist/utils/sortedInsert.d.ts new file mode 100644 index 000000000..9edf21567 --- /dev/null +++ b/sdks/sdk-core/dist/utils/sortedInsert.d.ts @@ -0,0 +1 @@ +export declare function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null; diff --git a/sdks/sdk-core/dist/utils/sqrt.d.ts b/sdks/sdk-core/dist/utils/sqrt.d.ts new file mode 100644 index 000000000..84c1f1af0 --- /dev/null +++ b/sdks/sdk-core/dist/utils/sqrt.d.ts @@ -0,0 +1,7 @@ +import JSBI from 'jsbi'; +export declare const MAX_SAFE_INTEGER: JSBI; +/** + * Computes floor(sqrt(value)) + * @param value the value for which to compute the square root, rounded down + */ +export declare function sqrt(value: JSBI): JSBI; diff --git a/sdks/sdk-core/dist/utils/validateAndParseAddress.d.ts b/sdks/sdk-core/dist/utils/validateAndParseAddress.d.ts new file mode 100644 index 000000000..e61de075f --- /dev/null +++ b/sdks/sdk-core/dist/utils/validateAndParseAddress.d.ts @@ -0,0 +1,10 @@ +/** + * Validates an address and returns the parsed (checksummed) version of that address + * @param address the unchecksummed hex address + */ +export declare function validateAndParseAddress(address: string): string; +/** + * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding. + * @param address the unchecksummed hex address + */ +export declare function checkValidAddress(address: string): string; diff --git a/sdks/sdk-core/src/addresses.ts b/sdks/sdk-core/src/addresses.ts index c7b5d999d..cf50e3442 100644 --- a/sdks/sdk-core/src/addresses.ts +++ b/sdks/sdk-core/src/addresses.ts @@ -439,6 +439,16 @@ const SONEIUM_ADDRESSES: ChainAddresses = { v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5', } +const BLOCKDAG_AWAKENING_ADDRESSES: ChainAddresses = { + v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635', + multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C', + quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36', + v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327', + nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93', + tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50', + swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861', +} + export const CHAIN_TO_ADDRESSES_MAP: Record = { [ChainId.MAINNET]: MAINNET_ADDRESSES, [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES, @@ -469,6 +479,7 @@ export const CHAIN_TO_ADDRESSES_MAP: Record [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES, [ChainId.SONEIUM]: SONEIUM_ADDRESSES, [ChainId.MONAD]: MONAD_ADDRESSES, + [ChainId.BLOCKDAG_AWAKENING]: BLOCKDAG_AWAKENING_ADDRESSES, } /* V3 Contract Addresses */ diff --git a/sdks/sdk-core/src/chains.ts b/sdks/sdk-core/src/chains.ts index 3d0e1b1a5..0ca3f1bcc 100644 --- a/sdks/sdk-core/src/chains.ts +++ b/sdks/sdk-core/src/chains.ts @@ -30,6 +30,7 @@ export enum ChainId { MONAD_TESTNET = 10143, SONEIUM = 1868, MONAD = 143, + BLOCKDAG_AWAKENING = 1043, } export const SUPPORTED_CHAINS = [ @@ -62,6 +63,7 @@ export const SUPPORTED_CHAINS = [ ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD, + ChainId.BLOCKDAG_AWAKENING ] as const export type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number] From e758002d3254604c9d058a45efdde28eb60474bb Mon Sep 17 00:00:00 2001 From: Cela Pablo Date: Wed, 12 Nov 2025 14:18:06 -0300 Subject: [PATCH 2/2] feat(sdk-core): blockdag awakening add v3 addresses --- sdks/router-sdk/package.json | 46 +- sdks/router-sdk/src/approveAndCall.ts | 4 +- sdks/router-sdk/src/constants.ts | 2 +- .../src/entities/mixedRoute/route.test.ts | 8 +- .../src/entities/mixedRoute/route.ts | 4 +- .../src/entities/mixedRoute/trade.test.ts | 8 +- .../src/entities/mixedRoute/trade.ts | 10 +- sdks/router-sdk/src/entities/route.test.ts | 6 +- sdks/router-sdk/src/entities/route.ts | 8 +- sdks/router-sdk/src/entities/trade.test.ts | 8 +- sdks/router-sdk/src/entities/trade.ts | 8 +- sdks/router-sdk/src/multicallExtended.ts | 4 +- sdks/router-sdk/src/paymentsExtended.test.ts | 2 +- sdks/router-sdk/src/paymentsExtended.ts | 4 +- sdks/router-sdk/src/swapRouter.test.ts | 8 +- sdks/router-sdk/src/swapRouter.ts | 8 +- sdks/router-sdk/src/utils/TPool.ts | 6 +- .../src/utils/encodeMixedRouteToPath.test.ts | 8 +- .../src/utils/encodeMixedRouteToPath.ts | 8 +- sdks/router-sdk/src/utils/index.ts | 8 +- .../router-sdk/src/utils/pathCurrency.test.ts | 6 +- sdks/router-sdk/src/utils/pathCurrency.ts | 4 +- sdks/sdk-core/.gitignore | 2 +- sdks/sdk-core/dist/chains.d.ts | 8 +- .../sdk-core/dist/sdk-core.cjs.development.js | 15 +- .../dist/sdk-core.cjs.development.js.map | 2 +- .../dist/sdk-core.cjs.production.min.js | 2 +- .../dist/sdk-core.cjs.production.min.js.map | 2 +- sdks/sdk-core/dist/sdk-core.esm.js | 15 +- sdks/sdk-core/dist/sdk-core.esm.js.map | 2 +- sdks/sdk-core/package.json | 36 +- sdks/sdk-core/src/chains.ts | 1 + .../src/contracts/ERC1967Proxy.ts | 41 -- .../src/contracts/MockSuperstateTokenV4.ts | 143 ++++++ .../factories/ERC1967Proxy__factory.ts | 119 +++-- .../MockSuperstateTokenV4__factory.ts | 104 ++++ .../src/contracts/factories/index.ts | 1 + sdks/uniswapx-sdk/src/contracts/index.ts | 2 + sdks/universal-router-sdk/README.md | 8 +- sdks/universal-router-sdk/package.json | 46 +- .../src/entities/actions/uniswap.ts | 19 +- sdks/universal-router-sdk/src/swapRouter.ts | 14 +- .../src/utils/commandParser.ts | 2 +- .../src/utils/getCurrencyAddress.ts | 2 +- .../src/utils/inputTokens.ts | 4 +- .../universal-router-sdk/src/utils/numbers.ts | 4 +- .../src/utils/pathCurrency.ts | 6 +- .../src/utils/routerTradeAdapter.ts | 20 +- .../test/forge/writeInterop.ts | 2 +- .../test/uniswapTrades.test.ts | 10 +- .../test/utils/commandParser.test.ts | 6 +- .../test/utils/uniswapData.ts | 12 +- sdks/v2-sdk/package.json | 38 +- sdks/v2-sdk/src/constants.ts | 2 +- sdks/v2-sdk/src/entities/entities.test.ts | 2 +- sdks/v2-sdk/src/entities/pair.test.ts | 2 +- sdks/v2-sdk/src/entities/pair.ts | 2 +- sdks/v2-sdk/src/entities/route.test.ts | 2 +- sdks/v2-sdk/src/entities/route.ts | 2 +- sdks/v2-sdk/src/entities/trade.test.ts | 2 +- sdks/v2-sdk/src/entities/trade.ts | 2 +- sdks/v2-sdk/src/router.test.ts | 2 +- sdks/v2-sdk/src/router.ts | 4 +- sdks/v3-sdk/package.json | 38 +- sdks/v3-sdk/src/constants.ts | 2 +- sdks/v3-sdk/src/entities/pool.test.ts | 2 +- sdks/v3-sdk/src/entities/pool.ts | 2 +- sdks/v3-sdk/src/entities/position.test.ts | 2 +- sdks/v3-sdk/src/entities/position.ts | 2 +- sdks/v3-sdk/src/entities/route.test.ts | 2 +- sdks/v3-sdk/src/entities/route.ts | 2 +- sdks/v3-sdk/src/entities/tick.ts | 2 +- sdks/v3-sdk/src/entities/tickDataProvider.ts | 2 +- .../src/entities/tickListDataProvider.ts | 2 +- sdks/v3-sdk/src/entities/trade.test.ts | 2 +- sdks/v3-sdk/src/entities/trade.ts | 2 +- .../src/nonfungiblePositionManager.test.ts | 2 +- sdks/v3-sdk/src/nonfungiblePositionManager.ts | 2 +- sdks/v3-sdk/src/payments.test.ts | 2 +- sdks/v3-sdk/src/payments.ts | 2 +- sdks/v3-sdk/src/quoter.test.ts | 2 +- sdks/v3-sdk/src/quoter.ts | 2 +- sdks/v3-sdk/src/selfPermit.test.ts | 2 +- sdks/v3-sdk/src/selfPermit.ts | 2 +- sdks/v3-sdk/src/staker.test.ts | 2 +- sdks/v3-sdk/src/staker.ts | 2 +- sdks/v3-sdk/src/swapRouter.test.ts | 2 +- sdks/v3-sdk/src/swapRouter.ts | 2 +- sdks/v3-sdk/src/utils/calldata.ts | 2 +- .../src/utils/computePoolAddress.test.ts | 4 +- sdks/v3-sdk/src/utils/computePoolAddress.ts | 2 +- .../src/utils/encodeRouteToPath.test.ts | 2 +- sdks/v3-sdk/src/utils/encodeRouteToPath.ts | 2 +- sdks/v3-sdk/src/utils/encodeSqrtRatioX96.ts | 2 +- .../src/utils/maxLiquidityForAmounts.test.ts | 2 +- .../src/utils/maxLiquidityForAmounts.ts | 2 +- .../src/utils/mostSignificantBit.test.ts | 2 +- sdks/v3-sdk/src/utils/mostSignificantBit.ts | 2 +- .../src/utils/priceTickConversions.test.ts | 2 +- sdks/v3-sdk/src/utils/priceTickConversions.ts | 2 +- sdks/v3-sdk/src/utils/sqrtPriceMath.ts | 2 +- sdks/v3-sdk/src/utils/tickMath.ts | 2 +- sdks/v4-sdk/package.json | 40 +- sdks/v4-sdk/src/PositionManager.test.ts | 2 +- sdks/v4-sdk/src/PositionManager.ts | 2 +- sdks/v4-sdk/src/entities/pool.test.ts | 4 +- sdks/v4-sdk/src/entities/pool.ts | 4 +- sdks/v4-sdk/src/entities/position.test.ts | 8 +- sdks/v4-sdk/src/entities/position.ts | 4 +- sdks/v4-sdk/src/entities/route.test.ts | 4 +- sdks/v4-sdk/src/entities/route.ts | 2 +- sdks/v4-sdk/src/entities/trade.test.ts | 4 +- sdks/v4-sdk/src/entities/trade.ts | 2 +- sdks/v4-sdk/src/internalConstants.ts | 2 +- sdks/v4-sdk/src/utils/calldata.ts | 2 +- sdks/v4-sdk/src/utils/currencyMap.ts | 2 +- .../src/utils/encodeRouteToPath.test.ts | 4 +- sdks/v4-sdk/src/utils/encodeRouteToPath.ts | 2 +- sdks/v4-sdk/src/utils/pathCurrency.ts | 2 +- sdks/v4-sdk/src/utils/priceTickConversions.ts | 4 +- sdks/v4-sdk/src/utils/sortsBefore.ts | 2 +- .../src/utils/v4BaseActionsParser.test.ts | 2 +- sdks/v4-sdk/src/utils/v4Planner.test.ts | 4 +- sdks/v4-sdk/src/utils/v4Planner.ts | 2 +- sdks/v4-sdk/src/utils/v4PositionPlanner.ts | 2 +- yarn.lock | 457 +++++++++--------- 126 files changed, 841 insertions(+), 726 deletions(-) create mode 100644 sdks/uniswapx-sdk/src/contracts/MockSuperstateTokenV4.ts create mode 100644 sdks/uniswapx-sdk/src/contracts/factories/MockSuperstateTokenV4__factory.ts diff --git a/sdks/router-sdk/package.json b/sdks/router-sdk/package.json index 63c1260c6..0744fd1e3 100644 --- a/sdks/router-sdk/package.json +++ b/sdks/router-sdk/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/router-sdk", + "name": "@maxosllc/router-sdk", "description": "An sdk for routing swaps using Uniswap v2 and Uniswap v3.", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.2", "keywords": [ "uniswap", "ethereum" @@ -21,11 +21,11 @@ }, "dependencies": { "@ethersproject/abi": "^5.5.0", - "@uniswap/sdk-core": "^7.8.0", - "@uniswap/swap-router-contracts": "^1.3.0", - "@uniswap/v2-sdk": "^4.16.0", - "@uniswap/v3-sdk": "^3.26.0", - "@uniswap/v4-sdk": "^1.22.0" + "@maxosllc/sdk-core": "0.0.2", + "@maxosllc/v2-sdk": "0.0.2", + "@maxosllc/v3-sdk": "0.0.3", + "@maxosllc/v4-sdk": "0.0.2", + "@uniswap/swap-router-contracts": "^1.3.0" }, "devDependencies": { "@types/jest": "^24.0.25", @@ -40,36 +40,6 @@ "singleQuote": true }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" } } diff --git a/sdks/router-sdk/src/approveAndCall.ts b/sdks/router-sdk/src/approveAndCall.ts index 7efd94dfc..458f0b2fc 100644 --- a/sdks/router-sdk/src/approveAndCall.ts +++ b/sdks/router-sdk/src/approveAndCall.ts @@ -1,14 +1,14 @@ import { Interface } from '@ethersproject/abi' import invariant from 'tiny-invariant' import IApproveAndCall from '@uniswap/swap-router-contracts/artifacts/contracts/interfaces/IApproveAndCall.sol/IApproveAndCall.json' -import { Currency, Percent, Token } from '@uniswap/sdk-core' +import { Currency, Percent, Token } from '@maxosllc/sdk-core' import { MintSpecificOptions, IncreaseSpecificOptions, NonfungiblePositionManager, Position, toHex, -} from '@uniswap/v3-sdk' +} from '@maxosllc/v3-sdk' import JSBI from 'jsbi' // condensed version of v3-sdk AddLiquidityOptions containing only necessary swap + add attributes diff --git a/sdks/router-sdk/src/constants.ts b/sdks/router-sdk/src/constants.ts index d75fa6cd8..adac3105e 100644 --- a/sdks/router-sdk/src/constants.ts +++ b/sdks/router-sdk/src/constants.ts @@ -1,4 +1,4 @@ -import { Percent } from '@uniswap/sdk-core' +import { Percent } from '@maxosllc/sdk-core' import JSBI from 'jsbi' export const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000' diff --git a/sdks/router-sdk/src/entities/mixedRoute/route.test.ts b/sdks/router-sdk/src/entities/mixedRoute/route.test.ts index 753d1bf4d..13fcf8ab7 100644 --- a/sdks/router-sdk/src/entities/mixedRoute/route.test.ts +++ b/sdks/router-sdk/src/entities/mixedRoute/route.test.ts @@ -1,9 +1,9 @@ -import { Ether, Token, WETH9, CurrencyAmount, Currency } from '@uniswap/sdk-core' -import { Route as V3RouteSDK, Pool as V3Pool, FeeAmount, TickMath, encodeSqrtRatioX96 } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Ether, Token, WETH9, CurrencyAmount, Currency } from '@maxosllc/sdk-core' +import { Route as V3RouteSDK, Pool as V3Pool, FeeAmount, TickMath, encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { MixedRoute, RouteV3 } from '../route' import { Protocol } from '../protocol' -import { Route as V2RouteSDK, Pair } from '@uniswap/v2-sdk' +import { Route as V2RouteSDK, Pair } from '@maxosllc/v2-sdk' import { MixedRouteSDK } from './route' import { partitionMixedRouteByProtocol } from '../../utils' import { ADDRESS_ZERO } from '../../constants' diff --git a/sdks/router-sdk/src/entities/mixedRoute/route.ts b/sdks/router-sdk/src/entities/mixedRoute/route.ts index bd781da30..992406c9b 100644 --- a/sdks/router-sdk/src/entities/mixedRoute/route.ts +++ b/sdks/router-sdk/src/entities/mixedRoute/route.ts @@ -1,6 +1,6 @@ import invariant from 'tiny-invariant' -import { Currency, Price, Token } from '@uniswap/sdk-core' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Currency, Price, Token } from '@maxosllc/sdk-core' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { getPathCurrency } from '../../utils/pathCurrency' import { TPool } from '../../utils/TPool' diff --git a/sdks/router-sdk/src/entities/mixedRoute/trade.test.ts b/sdks/router-sdk/src/entities/mixedRoute/trade.test.ts index b27ff008b..6e70e195c 100644 --- a/sdks/router-sdk/src/entities/mixedRoute/trade.test.ts +++ b/sdks/router-sdk/src/entities/mixedRoute/trade.test.ts @@ -1,5 +1,5 @@ -import { Percent, Price, sqrt, Token, CurrencyAmount, TradeType, WETH9, Ether, Currency } from '@uniswap/sdk-core' -import { Pair } from '@uniswap/v2-sdk' +import { Percent, Price, sqrt, Token, CurrencyAmount, TradeType, WETH9, Ether, Currency } from '@maxosllc/sdk-core' +import { Pair } from '@maxosllc/v2-sdk' import { encodeSqrtRatioX96, FeeAmount, @@ -7,8 +7,8 @@ import { Pool as V3Pool, TickMath, TICK_SPACINGS, -} from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +} from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import JSBI from 'jsbi' import { MixedRouteSDK } from './route' import { MixedRouteTrade } from './trade' diff --git a/sdks/router-sdk/src/entities/mixedRoute/trade.ts b/sdks/router-sdk/src/entities/mixedRoute/trade.ts index 634437a0f..212094c86 100644 --- a/sdks/router-sdk/src/entities/mixedRoute/trade.ts +++ b/sdks/router-sdk/src/entities/mixedRoute/trade.ts @@ -1,7 +1,7 @@ -import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@uniswap/sdk-core' -import { Pair } from '@uniswap/v2-sdk' -import { BestTradeOptions, Pool as V3Pool } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@maxosllc/sdk-core' +import { Pair } from '@maxosllc/v2-sdk' +import { BestTradeOptions, Pool as V3Pool } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import invariant from 'tiny-invariant' import { ONE, ZERO } from '../../constants' import { MixedRouteSDK } from './route' @@ -55,7 +55,7 @@ export function tradeComparator { diff --git a/sdks/router-sdk/src/entities/route.ts b/sdks/router-sdk/src/entities/route.ts index 79bcd5d57..4353c97d6 100644 --- a/sdks/router-sdk/src/entities/route.ts +++ b/sdks/router-sdk/src/entities/route.ts @@ -1,10 +1,10 @@ // entities/route.ts -import { Route as V2RouteSDK, Pair } from '@uniswap/v2-sdk' -import { Route as V3RouteSDK, Pool as V3Pool } from '@uniswap/v3-sdk' -import { Route as V4RouteSDK, Pool as V4Pool } from '@uniswap/v4-sdk' +import { Route as V2RouteSDK, Pair } from '@maxosllc/v2-sdk' +import { Route as V3RouteSDK, Pool as V3Pool } from '@maxosllc/v3-sdk' +import { Route as V4RouteSDK, Pool as V4Pool } from '@maxosllc/v4-sdk' import { Protocol } from './protocol' -import { Currency, Price, Token } from '@uniswap/sdk-core' +import { Currency, Price, Token } from '@maxosllc/sdk-core' import { MixedRouteSDK } from './mixedRoute/route' // Helper function to get the pathInput and pathOutput for a V2 / V3 route diff --git a/sdks/router-sdk/src/entities/trade.test.ts b/sdks/router-sdk/src/entities/trade.test.ts index 7de22e205..195c5b56d 100644 --- a/sdks/router-sdk/src/entities/trade.test.ts +++ b/sdks/router-sdk/src/entities/trade.test.ts @@ -1,4 +1,4 @@ -import { sqrt, Token, CurrencyAmount, TradeType, WETH9, Ether, Percent, Price } from '@uniswap/sdk-core' +import { sqrt, Token, CurrencyAmount, TradeType, WETH9, Ether, Percent, Price } from '@maxosllc/sdk-core' import { BigNumber } from '@ethersproject/bignumber' import JSBI from 'jsbi' import { MixedRoute, RouteV2, RouteV3, RouteV4 } from './route' @@ -11,10 +11,10 @@ import { TickMath, nearestUsableTick, encodeSqrtRatioX96, -} from '@uniswap/v3-sdk' -import { Pair, Route as V2RouteSDK } from '@uniswap/v2-sdk' +} from '@maxosllc/v3-sdk' +import { Pair, Route as V2RouteSDK } from '@maxosllc/v2-sdk' import { MixedRouteSDK } from './mixedRoute/route' -import { Route as V4RouteSDK, Pool as V4Pool } from '@uniswap/v4-sdk' +import { Route as V4RouteSDK, Pool as V4Pool } from '@maxosllc/v4-sdk' import { ADDRESS_ZERO } from '../constants' describe('Trade', () => { diff --git a/sdks/router-sdk/src/entities/trade.ts b/sdks/router-sdk/src/entities/trade.ts index 9b4e5c0ed..534df7204 100644 --- a/sdks/router-sdk/src/entities/trade.ts +++ b/sdks/router-sdk/src/entities/trade.ts @@ -1,7 +1,7 @@ -import { Currency, CurrencyAmount, Fraction, Percent, Price, TradeType, Ether } from '@uniswap/sdk-core' -import { Pair, Route as V2RouteSDK, Trade as V2TradeSDK } from '@uniswap/v2-sdk' -import { Pool as V3Pool, Route as V3RouteSDK, Trade as V3TradeSDK } from '@uniswap/v3-sdk' -import { Pool as V4Pool, Route as V4RouteSDK, Trade as V4TradeSDK } from '@uniswap/v4-sdk' +import { Currency, CurrencyAmount, Fraction, Percent, Price, TradeType, Ether } from '@maxosllc/sdk-core' +import { Pair, Route as V2RouteSDK, Trade as V2TradeSDK } from '@maxosllc/v2-sdk' +import { Pool as V3Pool, Route as V3RouteSDK, Trade as V3TradeSDK } from '@maxosllc/v3-sdk' +import { Pool as V4Pool, Route as V4RouteSDK, Trade as V4TradeSDK } from '@maxosllc/v4-sdk' import invariant from 'tiny-invariant' import { ONE, ONE_HUNDRED_PERCENT, ZERO, ZERO_PERCENT } from '../constants' import { MixedRouteSDK } from './mixedRoute/route' diff --git a/sdks/router-sdk/src/multicallExtended.ts b/sdks/router-sdk/src/multicallExtended.ts index a914ad8b9..b04b7e8be 100644 --- a/sdks/router-sdk/src/multicallExtended.ts +++ b/sdks/router-sdk/src/multicallExtended.ts @@ -1,7 +1,7 @@ import { Interface } from '@ethersproject/abi' -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import IMulticallExtended from '@uniswap/swap-router-contracts/artifacts/contracts/interfaces/IMulticallExtended.sol/IMulticallExtended.json' -import { Multicall, toHex } from '@uniswap/v3-sdk' +import { Multicall, toHex } from '@maxosllc/v3-sdk' // deadline or previousBlockhash export type Validation = BigintIsh | string diff --git a/sdks/router-sdk/src/paymentsExtended.test.ts b/sdks/router-sdk/src/paymentsExtended.test.ts index 6cda0c96e..f39339870 100644 --- a/sdks/router-sdk/src/paymentsExtended.test.ts +++ b/sdks/router-sdk/src/paymentsExtended.test.ts @@ -1,4 +1,4 @@ -import { Percent, Token } from '@uniswap/sdk-core' +import { Percent, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { PaymentsExtended } from './paymentsExtended' diff --git a/sdks/router-sdk/src/paymentsExtended.ts b/sdks/router-sdk/src/paymentsExtended.ts index 2dc041c0e..8335e18ab 100644 --- a/sdks/router-sdk/src/paymentsExtended.ts +++ b/sdks/router-sdk/src/paymentsExtended.ts @@ -1,7 +1,7 @@ import { Interface } from '@ethersproject/abi' -import { Percent, Token, validateAndParseAddress } from '@uniswap/sdk-core' +import { Percent, Token, validateAndParseAddress } from '@maxosllc/sdk-core' import IPeripheryPaymentsWithFeeExtended from '@uniswap/swap-router-contracts/artifacts/contracts/interfaces/IPeripheryPaymentsWithFeeExtended.sol/IPeripheryPaymentsWithFeeExtended.json' -import { FeeOptions, Payments, toHex } from '@uniswap/v3-sdk' +import { FeeOptions, Payments, toHex } from '@maxosllc/v3-sdk' import JSBI from 'jsbi' function encodeFeeBips(fee: Percent): string { diff --git a/sdks/router-sdk/src/swapRouter.test.ts b/sdks/router-sdk/src/swapRouter.test.ts index b10eaaaed..fe1c2f28f 100644 --- a/sdks/router-sdk/src/swapRouter.test.ts +++ b/sdks/router-sdk/src/swapRouter.test.ts @@ -1,5 +1,5 @@ -import { BigintIsh, CurrencyAmount, Ether, Percent, Token, TradeType, WETH9 } from '@uniswap/sdk-core' -import { Pair, Route as V2Route, Trade as V2Trade } from '@uniswap/v2-sdk' +import { BigintIsh, CurrencyAmount, Ether, Percent, Token, TradeType, WETH9 } from '@maxosllc/sdk-core' +import { Pair, Route as V2Route, Trade as V2Trade } from '@maxosllc/v2-sdk' import { encodeSqrtRatioX96, FeeAmount, @@ -10,8 +10,8 @@ import { TickMath, TICK_SPACINGS, Trade as V3Trade, -} from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +} from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import JSBI from 'jsbi' import { SwapRouter, Trade } from '.' import { ApprovalTypes } from './approveAndCall' diff --git a/sdks/router-sdk/src/swapRouter.ts b/sdks/router-sdk/src/swapRouter.ts index 62160946d..b07f775e4 100644 --- a/sdks/router-sdk/src/swapRouter.ts +++ b/sdks/router-sdk/src/swapRouter.ts @@ -1,7 +1,7 @@ import { Interface } from '@ethersproject/abi' -import { Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress, WETH9 } from '@uniswap/sdk-core' +import { Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress, WETH9 } from '@maxosllc/sdk-core' import ISwapRouter02 from '@uniswap/swap-router-contracts/artifacts/contracts/interfaces/ISwapRouter02.sol/ISwapRouter02.json' -import { Trade as V2Trade } from '@uniswap/v2-sdk' +import { Trade as V2Trade } from '@maxosllc/v2-sdk' import { encodeRouteToPath, FeeOptions, @@ -13,8 +13,8 @@ import { SelfPermit, toHex, Trade as V3Trade, -} from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +} from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import invariant from 'tiny-invariant' import JSBI from 'jsbi' import { ADDRESS_THIS, MSG_SENDER } from './constants' diff --git a/sdks/router-sdk/src/utils/TPool.ts b/sdks/router-sdk/src/utils/TPool.ts index f3d9598ff..53565312d 100644 --- a/sdks/router-sdk/src/utils/TPool.ts +++ b/sdks/router-sdk/src/utils/TPool.ts @@ -1,5 +1,5 @@ -import { Pool as V4Pool } from '@uniswap/v4-sdk' -import { Pair } from '@uniswap/v2-sdk' -import { Pool as V3Pool } from '@uniswap/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' +import { Pair } from '@maxosllc/v2-sdk' +import { Pool as V3Pool } from '@maxosllc/v3-sdk' export type TPool = Pair | V3Pool | V4Pool diff --git a/sdks/router-sdk/src/utils/encodeMixedRouteToPath.test.ts b/sdks/router-sdk/src/utils/encodeMixedRouteToPath.test.ts index 3fc0d8f91..b7ff40350 100644 --- a/sdks/router-sdk/src/utils/encodeMixedRouteToPath.test.ts +++ b/sdks/router-sdk/src/utils/encodeMixedRouteToPath.test.ts @@ -1,7 +1,7 @@ -import { CurrencyAmount, Ether, Token, WETH9 } from '@uniswap/sdk-core' -import { Pair } from '@uniswap/v2-sdk' -import { encodeSqrtRatioX96, FeeAmount, Pool as V3Pool } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { CurrencyAmount, Ether, Token, WETH9 } from '@maxosllc/sdk-core' +import { Pair } from '@maxosllc/v2-sdk' +import { encodeSqrtRatioX96, FeeAmount, Pool as V3Pool } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { MixedRouteSDK } from '../entities/mixedRoute/route' import { encodeMixedRouteToPath } from './encodeMixedRouteToPath' import { ADDRESS_ZERO } from '../constants' diff --git a/sdks/router-sdk/src/utils/encodeMixedRouteToPath.ts b/sdks/router-sdk/src/utils/encodeMixedRouteToPath.ts index 5092ed4e8..9d678e835 100644 --- a/sdks/router-sdk/src/utils/encodeMixedRouteToPath.ts +++ b/sdks/router-sdk/src/utils/encodeMixedRouteToPath.ts @@ -1,8 +1,8 @@ import { pack } from '@ethersproject/solidity' -import { Currency } from '@uniswap/sdk-core' -import { Pair } from '@uniswap/v2-sdk' -import { Pool as V3Pool } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Currency } from '@maxosllc/sdk-core' +import { Pair } from '@maxosllc/v2-sdk' +import { Pool as V3Pool } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { ADDRESS_ZERO, MIXED_QUOTER_V2_V2_FEE_PATH_PLACEHOLDER, diff --git a/sdks/router-sdk/src/utils/index.ts b/sdks/router-sdk/src/utils/index.ts index b41e75c14..6a40c8cb3 100644 --- a/sdks/router-sdk/src/utils/index.ts +++ b/sdks/router-sdk/src/utils/index.ts @@ -1,7 +1,7 @@ -import { Currency, Token } from '@uniswap/sdk-core' -import { Pair } from '@uniswap/v2-sdk' -import { Pool as V3Pool } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Currency, Token } from '@maxosllc/sdk-core' +import { Pair } from '@maxosllc/v2-sdk' +import { Pool as V3Pool } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { MixedRouteSDK } from '../entities/mixedRoute/route' import { TPool } from './TPool' diff --git a/sdks/router-sdk/src/utils/pathCurrency.test.ts b/sdks/router-sdk/src/utils/pathCurrency.test.ts index 5c2bc23a9..7afcb6fb4 100644 --- a/sdks/router-sdk/src/utils/pathCurrency.test.ts +++ b/sdks/router-sdk/src/utils/pathCurrency.test.ts @@ -1,6 +1,6 @@ -import { Ether, Token } from '@uniswap/sdk-core' -import { encodeSqrtRatioX96 } from '@uniswap/v3-sdk' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Ether, Token } from '@maxosllc/sdk-core' +import { encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { ADDRESS_ZERO } from '../constants' import { getPathCurrency } from './pathCurrency' diff --git a/sdks/router-sdk/src/utils/pathCurrency.ts b/sdks/router-sdk/src/utils/pathCurrency.ts index 6143817b3..b3dc09ccb 100644 --- a/sdks/router-sdk/src/utils/pathCurrency.ts +++ b/sdks/router-sdk/src/utils/pathCurrency.ts @@ -1,5 +1,5 @@ -import { Currency, CurrencyAmount, Token } from '@uniswap/sdk-core' -import { Pool as V4Pool } from '@uniswap/v4-sdk' +import { Currency, CurrencyAmount, Token } from '@maxosllc/sdk-core' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' import { TPool } from './TPool' export function amountWithPathCurrency(amount: CurrencyAmount, pool: TPool): CurrencyAmount { diff --git a/sdks/sdk-core/.gitignore b/sdks/sdk-core/.gitignore index e2125946d..de4d1f007 100644 --- a/sdks/sdk-core/.gitignore +++ b/sdks/sdk-core/.gitignore @@ -1,2 +1,2 @@ - +dist node_modules diff --git a/sdks/sdk-core/dist/chains.d.ts b/sdks/sdk-core/dist/chains.d.ts index c081e235f..e72c2197a 100644 --- a/sdks/sdk-core/dist/chains.d.ts +++ b/sdks/sdk-core/dist/chains.d.ts @@ -29,9 +29,10 @@ export declare enum ChainId { UNICHAIN = 130, MONAD_TESTNET = 10143, SONEIUM = 1868, - MONAD = 143 + MONAD = 143, + BLOCKDAG_AWAKENING = 1043 } -export declare const SUPPORTED_CHAINS: readonly [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD]; +export declare const SUPPORTED_CHAINS: readonly [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD, ChainId.BLOCKDAG_AWAKENING]; export declare type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]; export declare enum NativeCurrencyName { ETHER = "ETH", @@ -41,5 +42,6 @@ export declare enum NativeCurrencyName { MOONBEAM = "GLMR", BNB = "BNB", AVAX = "AVAX", - ROOTSTOCK = "RBTC" + ROOTSTOCK = "RBTC", + BDAG = "BDAG" } diff --git a/sdks/sdk-core/dist/sdk-core.cjs.development.js b/sdks/sdk-core/dist/sdk-core.cjs.development.js index 7223f7480..84c07c74f 100644 --- a/sdks/sdk-core/dist/sdk-core.cjs.development.js +++ b/sdks/sdk-core/dist/sdk-core.cjs.development.js @@ -90,8 +90,9 @@ function _toPropertyKey(t) { ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET"; ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM"; ChainId[ChainId["MONAD"] = 143] = "MONAD"; + ChainId[ChainId["BLOCKDAG_AWAKENING"] = 1043] = "BLOCKDAG_AWAKENING"; })(exports.ChainId || (exports.ChainId = {})); -var SUPPORTED_CHAINS = [exports.ChainId.MAINNET, exports.ChainId.OPTIMISM, exports.ChainId.OPTIMISM_GOERLI, exports.ChainId.OPTIMISM_SEPOLIA, exports.ChainId.ARBITRUM_ONE, exports.ChainId.ARBITRUM_GOERLI, exports.ChainId.ARBITRUM_SEPOLIA, exports.ChainId.POLYGON, exports.ChainId.POLYGON_MUMBAI, exports.ChainId.GOERLI, exports.ChainId.SEPOLIA, exports.ChainId.CELO_ALFAJORES, exports.ChainId.CELO, exports.ChainId.BNB, exports.ChainId.AVALANCHE, exports.ChainId.BASE, exports.ChainId.BASE_GOERLI, exports.ChainId.BASE_SEPOLIA, exports.ChainId.ZORA, exports.ChainId.ZORA_SEPOLIA, exports.ChainId.ROOTSTOCK, exports.ChainId.BLAST, exports.ChainId.ZKSYNC, exports.ChainId.WORLDCHAIN, exports.ChainId.UNICHAIN_SEPOLIA, exports.ChainId.UNICHAIN, exports.ChainId.MONAD_TESTNET, exports.ChainId.SONEIUM, exports.ChainId.MONAD]; +var SUPPORTED_CHAINS = [exports.ChainId.MAINNET, exports.ChainId.OPTIMISM, exports.ChainId.OPTIMISM_GOERLI, exports.ChainId.OPTIMISM_SEPOLIA, exports.ChainId.ARBITRUM_ONE, exports.ChainId.ARBITRUM_GOERLI, exports.ChainId.ARBITRUM_SEPOLIA, exports.ChainId.POLYGON, exports.ChainId.POLYGON_MUMBAI, exports.ChainId.GOERLI, exports.ChainId.SEPOLIA, exports.ChainId.CELO_ALFAJORES, exports.ChainId.CELO, exports.ChainId.BNB, exports.ChainId.AVALANCHE, exports.ChainId.BASE, exports.ChainId.BASE_GOERLI, exports.ChainId.BASE_SEPOLIA, exports.ChainId.ZORA, exports.ChainId.ZORA_SEPOLIA, exports.ChainId.ROOTSTOCK, exports.ChainId.BLAST, exports.ChainId.ZKSYNC, exports.ChainId.WORLDCHAIN, exports.ChainId.UNICHAIN_SEPOLIA, exports.ChainId.UNICHAIN, exports.ChainId.MONAD_TESTNET, exports.ChainId.SONEIUM, exports.ChainId.MONAD, exports.ChainId.BLOCKDAG_AWAKENING]; (function (NativeCurrencyName) { // Strings match input for CLI NativeCurrencyName["ETHER"] = "ETH"; @@ -102,6 +103,7 @@ var SUPPORTED_CHAINS = [exports.ChainId.MAINNET, exports.ChainId.OPTIMISM, expor NativeCurrencyName["BNB"] = "BNB"; NativeCurrencyName["AVAX"] = "AVAX"; NativeCurrencyName["ROOTSTOCK"] = "RBTC"; + NativeCurrencyName["BDAG"] = "BDAG"; })(exports.NativeCurrencyName || (exports.NativeCurrencyName = {})); var _V2_FACTORY_ADDRESSES, _V2_ROUTER_ADDRESSES, _CHAIN_TO_ADDRESSES_M, _GOVERNANCE_ALPHA_V1_, _GOVERNANCE_BRAVO_ADD, _MERKLE_DISTRIBUTOR_A, _ARGENT_WALLET_DETECT, _SOCKS_CONTROLLER_ADD; @@ -431,7 +433,16 @@ var SONEIUM_ADDRESSES = { v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' }; -var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M); +var BLOCKDAG_AWAKENING_ADDRESSES = { + v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635', + multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C', + quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36', + v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327', + nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93', + tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50', + swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861' +}; +var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M[exports.ChainId.BLOCKDAG_AWAKENING] = BLOCKDAG_AWAKENING_ADDRESSES, _CHAIN_TO_ADDRESSES_M); /* V3 Contract Addresses */ var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress; diff --git a/sdks/sdk-core/dist/sdk-core.cjs.development.js.map b/sdks/sdk-core/dist/sdk-core.cjs.development.js.map index 717fdae72..4cee2969b 100644 --- a/sdks/sdk-core/dist/sdk-core.cjs.development.js.map +++ b/sdks/sdk-core/dist/sdk-core.cjs.development.js.map @@ -1 +1 @@ -{"version":3,"file":"sdk-core.cjs.development.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sdk-core.cjs.development.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n BLOCKDAG_AWAKENING = 1043,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n ChainId.BLOCKDAG_AWAKENING\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n BDAG = 'BDAG',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nconst BLOCKDAG_AWAKENING_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635',\n multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C',\n quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36',\n v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327',\n nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93',\n tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50',\n swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n [ChainId.BLOCKDAG_AWAKENING]: BLOCKDAG_AWAKENING_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","BLOCKDAG_AWAKENING","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","BLOCKDAG_AWAKENING_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file diff --git a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js index 32acb81d6..085776a58 100644 --- a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js +++ b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js @@ -1,2 +1,2 @@ -"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r,d=e(require("jsbi")),a=e(require("tiny-invariant")),t=e(require("decimal.js-light")),n=e(require("big.js")),s=e(require("toformat")),o=require("@ethersproject/bignumber"),c=require("@ethersproject/address"),i=require("@ethersproject/bytes"),f=require("@ethersproject/keccak256"),A=require("@ethersproject/strings");function b(e,r){for(var d=0;d0||a(!1),se.set({precision:e+1,rounding:ce[d]});var t=new se(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return t.toFormat(t.decimalPlaces(),r)},r.toFixed=function(e,r,d){return void 0===r&&(r={groupSeparator:""}),void 0===d&&(d=exports.Rounding.ROUND_HALF_UP),Number.isInteger(e)||a(!1),e>=0||a(!1),oe.DP=e,oe.RM=ie[d],new oe(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,r)},u(e,[{key:"quotient",get:function(){return d.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(d.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}])}(),Ae=s(n),be=function(e){function r(r,t,n){var s;return s=e.call(this,t,n)||this,d.lessThanOrEqual(s.quotient,ne)||a(!1),s.currency=r,s.decimalScale=d.exponentiate(d.BigInt(10),d.BigInt(r.decimals)),s}x(r,e),r.fromRawAmount=function(e,d){return new r(e,d)},r.fromFractionalAmount=function(e,d,a){return new r(e,d,a)};var t=r.prototype;return t.add=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.add.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.subtract=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.subtract.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.multiply=function(d){var a=e.prototype.multiply.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.divide=function(d){var a=e.prototype.divide.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.toSignificant=function(r,d,a){return void 0===r&&(r=6),void 0===a&&(a=exports.Rounding.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(r,d,a)},t.toFixed=function(r,d,t){return void 0===r&&(r=this.currency.decimals),void 0===t&&(t=exports.Rounding.ROUND_DOWN),r<=this.currency.decimals||a(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(r,d,t)},t.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Ae.DP=this.currency.decimals,new Ae(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},u(r,[{key:"wrapped",get:function(){return this.currency.isToken?this:r.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}])}(fe),ue=new fe(d.BigInt(100));function Ee(e){return new xe(e.numerator,e.denominator)}var xe=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isPercent=!0,r}x(r,e);var d=r.prototype;return d.add=function(r){return Ee(e.prototype.add.call(this,r))},d.subtract=function(r){return Ee(e.prototype.subtract.call(this,r))},d.multiply=function(r){return Ee(e.prototype.multiply.call(this,r))},d.divide=function(r){return Ee(e.prototype.divide.call(this,r))},d.toSignificant=function(r,d,a){return void 0===r&&(r=5),e.prototype.multiply.call(this,ue).toSignificant(r,d,a)},d.toFixed=function(r,d,a){return void 0===r&&(r=2),e.prototype.multiply.call(this,ue).toFixed(r,d,a)},r}(fe),Ce=function(e){function r(){for(var r,a,t,n,s,o=arguments.length,c=new Array(o),i=0;i=0&&r<255&&Number.isInteger(r)||a(!1),this.chainId=e,this.decimals=r,this.symbol=d,this.name=t},De=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isNative=!0,r.isToken=!1,r}return x(r,e),r}(pe);function Ie(e){try{return c.getAddress(e)}catch(r){throw new Error(e+" is not a valid address.")}}var Be=/^0x[0-9a-fA-F]{40}$/,le=function(e){function r(r,d,t,n,s,c,i,f){var A;return(A=e.call(this,r,t,n,s)||this).isNative=!1,A.isToken=!0,A.address=c?function(e){if(Be.test(e))return e;throw new Error(e+" is not a valid address.")}(d):Ie(d),i&&(i.gte(o.BigNumber.from(0))||a(!1)),f&&(f.gte(o.BigNumber.from(0))||a(!1)),A.buyFeeBps=i,A.sellFeeBps=f,A}x(r,e);var d=r.prototype;return d.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},d.sortsBefore=function(e){return this.chainId!==e.chainId&&a(!1),this.address.toLowerCase()===e.address.toLowerCase()&&a(!1),this.address.toLowerCase()0||a(!1),e.length<=d||a(!1),0===e.length)return e.push(r),null;var n=e.length===d;if(n&&t(e[e.length-1],r)<=0)return r;for(var s=0,o=e.length;s>>1;t(e[c],r)<=0?s=c+1:o=c}return e.splice(s,0,r),n?e.pop():null},exports.sqrt=function(e){if(d.greaterThanOrEqual(e,ve)||a(!1),d.lessThan(e,Oe))return d.BigInt(Math.floor(Math.sqrt(d.toNumber(e))));var r,t;for(r=e,t=d.add(d.divide(e,me),Se);d.lessThan(t,r);)r=t,t=d.divide(d.add(d.divide(e,t),t),me);return r},exports.validateAndParseAddress=Ie; +"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r,d=e(require("jsbi")),a=e(require("tiny-invariant")),t=e(require("decimal.js-light")),s=e(require("big.js")),n=e(require("toformat")),o=require("@ethersproject/bignumber"),c=require("@ethersproject/address"),i=require("@ethersproject/bytes"),f=require("@ethersproject/keccak256"),A=require("@ethersproject/strings");function b(e,r){for(var d=0;d0||a(!1),ne.set({precision:e+1,rounding:ce[d]});var t=new ne(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(e);return t.toFormat(t.decimalPlaces(),r)},r.toFixed=function(e,r,d){return void 0===r&&(r={groupSeparator:""}),void 0===d&&(d=exports.Rounding.ROUND_HALF_UP),Number.isInteger(e)||a(!1),e>=0||a(!1),oe.DP=e,oe.RM=ie[d],new oe(this.numerator.toString()).div(this.denominator.toString()).toFormat(e,r)},E(e,[{key:"quotient",get:function(){return d.divide(this.numerator,this.denominator)}},{key:"remainder",get:function(){return new e(d.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function(){return new e(this.numerator,this.denominator)}}])}(),Ae=n(s),be=function(e){function r(r,t,s){var n;return n=e.call(this,t,s)||this,d.lessThanOrEqual(n.quotient,se)||a(!1),n.currency=r,n.decimalScale=d.exponentiate(d.BigInt(10),d.BigInt(r.decimals)),n}x(r,e),r.fromRawAmount=function(e,d){return new r(e,d)},r.fromFractionalAmount=function(e,d,a){return new r(e,d,a)};var t=r.prototype;return t.add=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.add.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.subtract=function(d){this.currency.equals(d.currency)||a(!1);var t=e.prototype.subtract.call(this,d);return r.fromFractionalAmount(this.currency,t.numerator,t.denominator)},t.multiply=function(d){var a=e.prototype.multiply.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.divide=function(d){var a=e.prototype.divide.call(this,d);return r.fromFractionalAmount(this.currency,a.numerator,a.denominator)},t.toSignificant=function(r,d,a){return void 0===r&&(r=6),void 0===a&&(a=exports.Rounding.ROUND_DOWN),e.prototype.divide.call(this,this.decimalScale).toSignificant(r,d,a)},t.toFixed=function(r,d,t){return void 0===r&&(r=this.currency.decimals),void 0===t&&(t=exports.Rounding.ROUND_DOWN),r<=this.currency.decimals||a(!1),e.prototype.divide.call(this,this.decimalScale).toFixed(r,d,t)},t.toExact=function(e){return void 0===e&&(e={groupSeparator:""}),Ae.DP=this.currency.decimals,new Ae(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(e)},E(r,[{key:"wrapped",get:function(){return this.currency.isToken?this:r.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}])}(fe),Ee=new fe(d.BigInt(100));function ue(e){return new xe(e.numerator,e.denominator)}var xe=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isPercent=!0,r}x(r,e);var d=r.prototype;return d.add=function(r){return ue(e.prototype.add.call(this,r))},d.subtract=function(r){return ue(e.prototype.subtract.call(this,r))},d.multiply=function(r){return ue(e.prototype.multiply.call(this,r))},d.divide=function(r){return ue(e.prototype.divide.call(this,r))},d.toSignificant=function(r,d,a){return void 0===r&&(r=5),e.prototype.multiply.call(this,Ee).toSignificant(r,d,a)},d.toFixed=function(r,d,a){return void 0===r&&(r=2),e.prototype.multiply.call(this,Ee).toFixed(r,d,a)},r}(fe),Ce=function(e){function r(){for(var r,a,t,s,n,o=arguments.length,c=new Array(o),i=0;i=0&&r<255&&Number.isInteger(r)||a(!1),this.chainId=e,this.decimals=r,this.symbol=d,this.name=t},De=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).isNative=!0,r.isToken=!1,r}return x(r,e),r}(pe);function Be(e){try{return c.getAddress(e)}catch(r){throw new Error(e+" is not a valid address.")}}var Ie=/^0x[0-9a-fA-F]{40}$/,le=function(e){function r(r,d,t,s,n,c,i,f){var A;return(A=e.call(this,r,t,s,n)||this).isNative=!1,A.isToken=!0,A.address=c?function(e){if(Ie.test(e))return e;throw new Error(e+" is not a valid address.")}(d):Be(d),i&&(i.gte(o.BigNumber.from(0))||a(!1)),f&&(f.gte(o.BigNumber.from(0))||a(!1)),A.buyFeeBps=i,A.sellFeeBps=f,A}x(r,e);var d=r.prototype;return d.equals=function(e){return e.isToken&&this.chainId===e.chainId&&this.address.toLowerCase()===e.address.toLowerCase()},d.sortsBefore=function(e){return this.chainId!==e.chainId&&a(!1),this.address.toLowerCase()===e.address.toLowerCase()&&a(!1),this.address.toLowerCase()0||a(!1),e.length<=d||a(!1),0===e.length)return e.push(r),null;var s=e.length===d;if(s&&t(e[e.length-1],r)<=0)return r;for(var n=0,o=e.length;n>>1;t(e[c],r)<=0?n=c+1:o=c}return e.splice(n,0,r),s?e.pop():null},exports.sqrt=function(e){if(d.greaterThanOrEqual(e,ve)||a(!1),d.lessThan(e,Oe))return d.BigInt(Math.floor(Math.sqrt(d.toNumber(e))));var r,t;for(r=e,t=d.add(d.divide(e,me),Se);d.lessThan(t,r);)r=t,t=d.divide(d.add(d.divide(e,t),t),me);return r},exports.validateAndParseAddress=Be; //# sourceMappingURL=sdk-core.cjs.production.min.js.map diff --git a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map index cf3c09ea7..f9975f0df 100644 --- a/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map +++ b/sdks/sdk-core/dist/sdk-core.cjs.production.min.js.map @@ -1 +1 @@ -{"version":3,"file":"sdk-core.cjs.production.min.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/sqrt.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n"],"names":["ChainId","NativeCurrencyName","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","TradeType","Rounding","UNI_ADDRESSES","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","swapRouter02Address","mixedRouteQuoterV2Address","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","this","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","Token","bypassChecksum","buyFeeBps","sellFeeBps","test","checkValidAddress","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","1","11155111","3","4","5","42","10","69","11155420","42161","421611","421614","8453","84532","56","137","43114","7777777","81457","324","480","1301","130","10143","1868","143","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","MAX_SAFE_INTEGER","ZERO","ONE","TWO","_CHAIN_TO_ADDRESSES_M2","includes","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","value","greaterThanOrEqual","Math","floor","sqrt","toNumber","z","x"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sdk-core.cjs.production.min.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/sqrt.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n BLOCKDAG_AWAKENING = 1043,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n ChainId.BLOCKDAG_AWAKENING\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n BDAG = 'BDAG',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nconst BLOCKDAG_AWAKENING_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635',\n multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C',\n quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36',\n v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327',\n nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93',\n tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50',\n swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n [ChainId.BLOCKDAG_AWAKENING]: BLOCKDAG_AWAKENING_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n"],"names":["ChainId","NativeCurrencyName","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","BLOCKDAG_AWAKENING","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","TradeType","Rounding","UNI_ADDRESSES","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","swapRouter02Address","mixedRouteQuoterV2Address","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","this","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","Token","bypassChecksum","buyFeeBps","sellFeeBps","test","checkValidAddress","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","1","11155111","3","4","5","42","10","69","11155420","42161","421611","421614","8453","84532","56","137","43114","7777777","81457","324","480","1301","130","10143","1868","143","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","MAX_SAFE_INTEGER","ZERO","ONE","TWO","_CHAIN_TO_ADDRESSES_M2","includes","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","value","greaterThanOrEqual","Math","floor","sqrt","toNumber","z","x"],"mappings":"8IAAYA,gxCAAAA,EAAAA,kBAAAA,4CAEVA,uBACAA,gCACAA,4BACAA,2CACAA,kDACAA,uCACAA,8CACAA,gDACAA,2BACAA,2CACAA,uBACAA,2CACAA,yBACAA,8BACAA,kBACAA,iCACAA,qCACAA,uCACAA,sBACAA,yBACAA,2CACAA,8BACAA,yBACAA,yBACAA,iCACAA,8CACAA,6BACAA,yCACAA,4BACAA,uBACAA,sDAqCUC,kBAlCCC,EAAmB,CAC9BF,gBAAQG,QACRH,gBAAQI,SACRJ,gBAAQK,gBACRL,gBAAQM,iBACRN,gBAAQO,aACRP,gBAAQQ,gBACRR,gBAAQS,iBACRT,gBAAQU,QACRV,gBAAQW,eACRX,gBAAQY,OACRZ,gBAAQa,QACRb,gBAAQc,eACRd,gBAAQe,KACRf,gBAAQgB,IACRhB,gBAAQiB,UACRjB,gBAAQkB,KACRlB,gBAAQmB,YACRnB,gBAAQoB,aACRpB,gBAAQqB,KACRrB,gBAAQsB,aACRtB,gBAAQuB,UACRvB,gBAAQwB,MACRxB,gBAAQyB,OACRzB,gBAAQ0B,WACR1B,gBAAQ2B,iBACR3B,gBAAQ4B,SACR5B,gBAAQ6B,cACR7B,gBAAQ8B,QACR9B,gBAAQ+B,MACR/B,gBAAQgC,qBAIE/B,EAAAA,6BAAAA,4CAGVA,gBACAA,cACAA,gBACAA,kBACAA,YACAA,cACAA,mBACAA,cCzDF,IAAMgC,EAAmB,CAACjC,gBAAQG,QAASH,gBAAQY,OAAQZ,gBAAQa,SAEnE,SAASqB,EAAwBC,EAAiBC,GAChD,gBADgDA,IAAAA,EAAgC,IACzEH,EAAiBI,OAAOD,GAAoBE,QAAmB,SAACC,EAAMC,GAE3E,OADAD,EAAKC,GAAWL,EACTI,IACN,QCvBOE,EAKAC,EDqBCC,EAA4BT,EAAwB,6CAA8C,CAC7GlC,gBAAQI,SACRJ,gBAAQO,aACRP,gBAAQU,QACRV,gBAAQW,eACRX,gBAAQa,UASG+B,IAAoBC,MAC9B7C,gBAAQG,SAAU,6CAA4C0C,EAC9D7C,gBAAQY,QAAS,6CAA4CiC,EAC7D7C,gBAAQa,SAAU,6CAA4CgC,EAC9D7C,gBAAQI,UAAW,6CAA4CyC,EAC/D7C,gBAAQO,cAAe,6CAA4CsC,EACnE7C,gBAAQiB,WAAY,6CAA4C4B,EAChE7C,gBAAQoB,cAAe,6CAA4CyB,EACnE7C,gBAAQkB,MAAO,6CAA4C2B,EAC3D7C,gBAAQgB,KAAM,6CAA4C6B,EAC1D7C,gBAAQU,SAAU,6CAA4CmC,EAC9D7C,gBAAQe,MAAO,6CAA4C8B,EAC3D7C,gBAAQwB,OAAQ,6CAA4CqB,EAC5D7C,gBAAQ0B,YAAa,6CAA4CmB,EACjE7C,gBAAQ2B,kBAAmB,6CAA4CkB,EACvE7C,gBAAQ4B,UAAW,6CAA4CiB,EAC/D7C,gBAAQ6B,eAAgB,6CAA4CgB,EACpE7C,gBAAQ8B,SAAU,6CAA4Ce,EAC9D7C,gBAAQ+B,OAAQ,6CAA4Cc,GAMlDC,IAAmBC,MAC7B/C,gBAAQG,SAAU,6CAA4C4C,EAC9D/C,gBAAQY,QAAS,6CAA4CmC,EAC7D/C,gBAAQa,SAAU,6CAA4CkC,EAC9D/C,gBAAQO,cAAe,6CAA4CwC,EACnE/C,gBAAQI,UAAW,6CAA4C2C,EAC/D/C,gBAAQoB,cAAe,6CAA4C2B,EACnE/C,gBAAQkB,MAAO,6CAA4C6B,EAC3D/C,gBAAQiB,WAAY,6CAA4C8B,EAChE/C,gBAAQgB,KAAM,6CAA4C+B,EAC1D/C,gBAAQU,SAAU,6CAA4CqC,EAC9D/C,gBAAQwB,OAAQ,6CAA4CuB,EAC5D/C,gBAAQ0B,YAAa,6CAA4CqB,EACjE/C,gBAAQ2B,kBAAmB,6CAA4CoB,EACvE/C,gBAAQ4B,UAAW,6CAA4CmB,EAC/D/C,gBAAQ6B,eAAgB,6CAA4CkB,EACpE/C,gBAAQ8B,SAAU,6CAA4CiB,EAC9D/C,gBAAQ+B,OAAQ,6CAA4CgB,GAIzDC,EAAoC,CACxCC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,8CAE/BC,EAAiBC,KAClBP,GACHQ,0BAA2B,6CAE3BC,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAEbC,EAAgBN,KACjBP,GACHQ,0BAA2B,+CAGvBM,EAAkBP,KACnBP,GAEHS,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAGbG,EAAsBR,KACvBP,GACHE,iBAAkB,6CAClBc,gBAAiB,6CAEjBP,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAEbK,EAAiBV,KAClBP,GAEHS,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,+CAIbM,EAAiC,CACrCjB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CAEjBP,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA4SNO,IAAsBC,MAChCpE,gBAAQG,SAAUmD,EAAiBc,EACnCpE,gBAAQI,UAAW0D,EAAkBM,EACrCpE,gBAAQO,cAAewD,EAAsBK,EAC7CpE,gBAAQU,SAAUuD,EAAiBG,EACnCpE,gBAAQW,gBAAiBsD,EAAiBG,EAC1CpE,gBAAQY,QAASiD,EAAgBO,EACjCpE,gBAAQe,MAAOmD,EAAcE,EAC7BpE,gBAAQc,gBAAiBoD,EAAcE,EACvCpE,gBAAQgB,KAjT2B,CACpCiC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAqSWQ,EAC3BpE,gBAAQK,iBAlSuC,CAChD4C,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CA4RmCI,EACnDpE,gBAAQM,kBAzRwC,CACjD2C,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAkRiCD,EACrDpE,gBAAQQ,iBA/QuC,CAChDyC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CAyQmCI,EACnDpE,gBAAQS,kBAtQwC,CACjDwC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA0PqCQ,EACrDpE,gBAAQa,SAvP+B,CACxCoC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAGrBC,0BAA2B,6CAG3Bb,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAuOmBQ,EACnCpE,gBAAQiB,WApOiC,CAC1CgC,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAwNuBQ,EACvCpE,gBAAQkB,MAtN4B,CACrC+B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CACrBb,0BAA2B,6CAE3BC,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAyMaQ,EAC7BpE,gBAAQmB,aAtMmC,CAC5C8B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CA+LuBD,EAC3CpE,gBAAQoB,cA5LoC,CAC7C6B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAGrBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA+K6BQ,EAC7CpE,gBAAQqB,MA7K4B,CACrC4B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAiKaQ,EAC7BpE,gBAAQsB,cA/JoC,CAC7C2B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,8CAyJ6BI,EAC7CpE,gBAAQuB,WAvJiC,CAC1C0B,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAgJmBD,EACvCpE,gBAAQwB,OA9I6B,CACtCyB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAkIeQ,EAC/BpE,gBAAQyB,QAhI8B,CACvCwB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAyHaD,EACjCpE,gBAAQ0B,YAvHkC,CAC3CuB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA2GyBQ,EACzCpE,gBAAQ2B,kBAzGwC,CACjDsB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA6FqCQ,EACrDpE,gBAAQ4B,UA3FgC,CACzCqB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CA+EqBQ,EACrCpE,gBAAQ6B,eA7EqC,CAC9CoB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAsE2BD,EAC/CpE,gBAAQ8B,SArD+B,CACxCmB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAyCmBQ,EACnCpE,gBAAQ+B,OArE6B,CACtCkB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,6CAErBZ,qBAAsB,6CACtBC,yBAA0B,6CAC1BC,YAAa,6CACbC,gBAAiB,8CAyDeQ,EAC/BpE,gBAAQgC,oBAxC0C,CACnDiB,qBAAsB,6CACtBC,iBAAkB,6CAClBC,cAAe,6CACfC,kBAAmB,6CACnBC,kCAAmC,6CACnCW,gBAAiB,6CACjBK,oBAAqB,8CAiCqCD,GAI/CG,EAAyBhB,KACjCrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASS,qBACzCV,IACN,KAGQiC,EAAqBjB,KAC7BrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAC5C,IAAMY,EAAoBe,EAAuB3B,GAASY,kBAI1D,OAHIA,IACFb,EAAKC,GAAWY,GAEXb,IACN,KAGQkC,EAAmBlB,KAC3BrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASU,iBACzCX,IACN,KAMQmC,EAA4CxC,EACvD,8CAKWyC,IAA6BC,MACvC5E,gBAAQG,SAAU,6CAA4CyE,GAKpDC,IAA0BC,MACpC9E,gBAAQG,SAAU,6CAA4C2E,GAGpDC,EAAiC7C,EAAwB,8CAEzD8C,IAA0BC,MACpCjF,gBAAQG,SAAU,6CAA4C8E,GAGpDC,IAA8BC,MACxCnF,gBAAQG,SAAU,6CAA4CgF,GAGpDC,EAAgB7B,KACxBrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAE5C,OADAD,EAAKC,GAAW2B,EAAuB3B,GAASW,cACzCZ,IACN,KAGQ8C,EAAsC9B,KAC9CrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAC5C,IAAMa,EAAoCc,EAAuB3B,GAASa,kCAI1E,OAHIA,IACFd,EAAKC,GAAWa,GAEXd,IACN,KAGQ+C,EAAuB/B,KAC/BrB,EAAwB,+CAGhBqD,KAA0BC,MACpCxF,gBAAQG,SAAU,6CAA4CqF,GAGpDC,GAAmBlC,KAC3BrD,EAAiBoC,QAAmB,SAACC,EAAMC,GAC5C,IAAMwB,EAAkBG,EAAuB3B,GAASwB,gBAIxD,OAHIA,IACFzB,EAAKC,GAAWwB,GAEXzB,IACN,KAGQmD,GAA8CxF,EAAiBoC,QAAmB,SAACC,EAAMC,GACpG,IAAMgB,EAA4BW,EAAuB3B,GAASgB,0BAIlE,OAHIA,IACFjB,EAAKC,GAAWgB,GAEXjB,IACN,KC9jBSE,EAAAA,oBAAAA,sDAEVA,oCAGUC,EAAAA,mBAAAA,mDAEVA,qCACAA,2BAGF,UAAaiD,GAAaC,EAAKC,OAAO,sECRhCC,GAAUC,EAASC,GACnBC,GAAMF,EAASG,GAEfC,KAAqBC,OACxB1D,iBAAS2D,YAAaP,GAAQO,WAAUD,GACxC1D,iBAAS4D,eAAgBR,GAAQQ,cAAaF,GAC9C1D,iBAAS6D,UAAWT,GAAQS,SAAQH,IAGjCI,KAAeC,OAClB/D,iBAAS2D,iBACT3D,iBAAS4D,oBACT5D,iBAAS6D,gBAGCG,cAIX,SAAAA,EAAmBC,EAAsBC,YAAAA,IAAAA,EAAyBhB,EAAKC,OAAO,IAC5EgB,KAAKF,UAAYf,EAAKC,OAAOc,GAC7BE,KAAKD,YAAchB,EAAKC,OAAOe,GAChCF,EAEcI,iBAAP,SAAwBC,GAC9B,GAAIA,aAAuBnB,GAA+B,iBAAhBmB,GAAmD,iBAAhBA,EAC3E,OAAO,IAAIL,EAASK,GAEtB,GAAI,cAAeA,GAAe,gBAAiBA,EAAa,OAAOA,EACvE,MAAM,IAAIC,MAAM,6BAGlB,IAAAC,EAAAP,EAAAQ,UA8GA,OA9GAD,EAUOE,OAAA,WACL,OAAO,IAAIT,EAASG,KAAKD,YAAaC,KAAKF,YAC5CM,EAEMG,IAAA,SAAIC,GACT,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAIzB,EAAK2B,MAAMV,KAAKD,YAAaU,EAAYV,aACpC,IAAIF,EAASd,EAAKwB,IAAIP,KAAKF,UAAWW,EAAYX,WAAYE,KAAKD,aAErE,IAAIF,EACTd,EAAKwB,IACHxB,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,cAE5ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMQ,SAAA,SAASJ,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAIzB,EAAK2B,MAAMV,KAAKD,YAAaU,EAAYV,aACpC,IAAIF,EAASd,EAAK6B,SAASZ,KAAKF,UAAWW,EAAYX,WAAYE,KAAKD,aAE1E,IAAIF,EACTd,EAAK6B,SACH7B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,cAE5ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMS,SAAA,SAASL,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAK8B,SACV9B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMU,QAAA,SAAQN,GACb,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAK2B,MACV3B,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMW,YAAA,SAAYP,GACjB,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAOzB,EAAKgC,YACVhC,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASF,EAAYX,UAAWE,KAAKD,eAE7CK,EAEMO,SAAA,SAASH,GACd,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAO,IAAIX,EACTd,EAAK4B,SAASX,KAAKF,UAAWW,EAAYX,WAC1Cf,EAAK4B,SAASX,KAAKD,YAAaU,EAAYV,eAE/CK,EAEMY,OAAA,SAAOR,GACZ,IAAMC,EAAcZ,EAASI,iBAAiBO,GAC9C,OAAO,IAAIX,EACTd,EAAK4B,SAASX,KAAKF,UAAWW,EAAYV,aAC1ChB,EAAK4B,SAASX,KAAKD,YAAaU,EAAYX,aAE/CM,EAEMa,cAAA,SACLC,EACAC,EACAC,YADAD,IAAAA,EAAiB,CAAEE,eAAgB,cACnCD,IAAAA,EAAqBvF,iBAAS4D,eAEpB6B,OAAOC,UAAUL,IAA3BM,MACUN,EAAoB,GAA9BM,MAEAvC,GAAQwC,IAAI,CAAEC,UAAWR,EAAoB,EAAGE,SAAU9B,GAAsB8B,KAChF,IAAMO,EAAW,IAAI1C,GAAQe,KAAKF,UAAU8B,YACzCC,IAAI7B,KAAKD,YAAY6B,YACrBE,oBAAoBZ,GACvB,OAAOS,EAASzC,SAASyC,EAASI,gBAAiBZ,IACpDf,EAEM4B,QAAA,SACLD,EACAZ,EACAC,GAOA,gBARAD,IAAAA,EAAiB,CAAEE,eAAgB,cACnCD,IAAAA,EAAqBvF,iBAAS4D,eAEpB6B,OAAOC,UAAUQ,IAA3BP,MACUO,GAAiB,GAA3BP,MAEApC,GAAI6C,GAAKF,EACT3C,GAAI8C,GAAKvC,GAAgByB,GAClB,IAAIhC,GAAIY,KAAKF,UAAU8B,YAAYC,IAAI7B,KAAKD,YAAY6B,YAAY1C,SAAS6C,EAAeZ,IAGrGgB,EAAAtC,IAAAuC,eAAAC,IA7GA,WACE,OAAOtD,EAAKiC,OAAOhB,KAAKF,UAAWE,KAAKD,gBAG1CqC,gBAAAC,IACA,WACE,OAAO,IAAIxC,EAASd,EAAKuD,UAAUtC,KAAKF,UAAWE,KAAKD,aAAcC,KAAKD,gBAC5EqC,iBAAAC,IAyGD,WACE,OAAO,IAAIxC,EAASG,KAAKF,UAAWE,KAAKD,oBChJvCX,GAAMF,EAASG,GAERkD,YAAmCC,GA2B9C,SAAAD,EAAsBE,EAAa3C,EAAsBC,SAI+B,OAHtF2C,EAAAF,EAAAG,UAAM7C,EAAWC,SACPhB,EAAK6D,gBAAgBF,EAAKf,SAAU7C,KAA9C0C,MACAkB,EAAKD,SAAWA,EAChBC,EAAKG,aAAe9D,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOyD,EAASM,WAAUL,EA3BxFM,EAAAT,EAAAC,GAAAD,EAKcU,cAAP,SAAyCR,EAAaS,GAC3D,OAAO,IAAIX,EAAeE,EAAUS,IAGtCX,EAMcY,qBAAP,SACLV,EACA3C,EACAC,GAEA,OAAO,IAAIwC,EAAeE,EAAU3C,EAAWC,IAChD,IAAAK,EAAAmC,EAAAlC,UAmDA,OAnDAD,EASMG,IAAA,SAAIC,GACCR,KAAKyC,SAASW,OAAO5C,EAAMiC,WAArCjB,MACA,IAAM6B,EAAKb,EAAAnC,UAASE,IAAGoC,UAACnC,GACxB,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUY,EAAMvD,UAAWuD,EAAMtD,cAClFK,EAEMQ,SAAA,SAASJ,GACJR,KAAKyC,SAASW,OAAO5C,EAAMiC,WAArCjB,MACA,IAAM8B,EAAUd,EAAAnC,UAASO,SAAQ+B,UAACnC,GAClC,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUa,EAAWxD,UAAWwD,EAAWvD,cAC5FK,EAEMO,SAAA,SAASH,GACd,IAAM+C,EAAUf,EAAAnC,UAASM,SAAQgC,UAACnC,GAClC,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUc,EAAWzD,UAAWyD,EAAWxD,cAC5FK,EAEMY,OAAA,SAAOR,GACZ,IAAMgD,EAAOhB,EAAAnC,UAASW,OAAM2B,UAACnC,GAC7B,OAAO+B,EAAeY,qBAAqBnD,KAAKyC,SAAUe,EAAQ1D,UAAW0D,EAAQzD,cACtFK,EAEMa,cAAA,SACLC,EACAC,EACAC,GAEA,gBAJAF,IAAAA,EAA4B,YAE5BE,IAAAA,EAAqBvF,iBAAS2D,YAEvBgD,EAAAnC,UAAMW,OAAM2B,UAAC3C,KAAK6C,cAAc5B,cAAcC,EAAmBC,EAAQC,IACjFhB,EAEM4B,QAAA,SACLD,EACAZ,EACAC,GAGA,gBALAW,IAAAA,EAAwB/B,KAAKyC,SAASM,mBAEtC3B,IAAAA,EAAqBvF,iBAAS2D,YAEpBuC,GAAiB/B,KAAKyC,SAASM,UAAzCvB,MACOgB,EAAAnC,UAAMW,OAAM2B,UAAC3C,KAAK6C,cAAcb,QAAQD,EAAeZ,EAAQC,IACvEhB,EAEMqD,QAAA,SAAQtC,GAEb,gBAFaA,IAAAA,EAAiB,CAAEE,eAAgB,KAChDjC,GAAI6C,GAAKjC,KAAKyC,SAASM,SAChB,IAAI3D,GAAIY,KAAK2B,SAASC,YAAYC,IAAI7B,KAAK6C,aAAajB,YAAY1C,SAASiC,IACrFgB,EAAAI,IAAAH,cAAAC,IAED,WACE,OAAIrC,KAAKyC,SAASiB,QAAgB1D,KAC3BuC,EAAeY,qBAAqBnD,KAAKyC,SAASkB,QAAS3D,KAAKF,UAAWE,KAAKD,kBAhFnCF,ICRlD+D,GAAc,IAAI/D,GAASd,EAAKC,OAAO,MAM7C,SAAS6E,GAAUC,GACjB,OAAO,IAAIC,GAAQD,EAAShE,UAAWgE,EAAS/D,iBAGrCgE,YAAQvB,GAArB,SAAAuB,UAIwC,mDAAJ,EAAIrB,EAyBvCM,EAAAe,EAAAvB,GAAA,IAAApC,EAAA2D,EAAA1D,UADE,OACFD,EAvBCG,IAAA,SAAIC,GACF,OAAOqD,GAASrB,EAAAnC,UAAOE,IAAGoC,UAACnC,KAC5BJ,EAEDQ,SAAA,SAASJ,GACP,OAAOqD,GAASrB,EAAAnC,UAAOO,SAAQ+B,UAACnC,KACjCJ,EAEDO,SAAA,SAASH,GACP,OAAOqD,GAASrB,EAAAnC,UAAOM,SAAQgC,UAACnC,KACjCJ,EAEDY,OAAA,SAAOR,GACL,OAAOqD,GAASrB,EAAAnC,UAAOW,OAAM2B,UAACnC,KAC/BJ,EAEMa,cAAA,SAAcC,EAA+BC,EAAiBC,GACnE,gBADmBF,IAAAA,EAA4B,GACxCsB,EAAAnC,UAAMM,SAAQgC,UAACiB,IAAa3C,cAAcC,EAAmBC,EAAQC,IAC7EhB,EAEM4B,QAAA,SAAQD,EAA2BZ,EAAiBC,GACzD,gBADaW,IAAAA,EAAwB,GAC9BS,EAAAnC,UAAMM,SAAQgC,UAACiB,IAAa5B,QAAQD,EAAeZ,EAAQC,IACnE2C,GA5B0BlE,ICNhBmE,YAAuDxB,GASlE,SAAAwB,IAK8F,UAAxFC,EAAqBC,EAAuBnE,EAAwBD,EAAoBqE,EAAAC,UAAAC,OAJzFC,MAE6EC,MAAAJ,GAAAK,IAAAA,EAAAL,EAAAK,IAF7EF,EAE6EE,GAAAJ,UAAAI,GAIhF,GAAoB,IAAhBF,EAAKD,OACLJ,EAAuDK,KAAzCJ,EAAyCI,KAA1BvE,EAA0BuE,KAAbxE,EAAawE,SACpD,CACL,IAAMG,EAASH,EAAK,GAAGI,YAAY1D,OAAOsD,EAAK,GAAGK,YACjDC,EAAwD,CACvDN,EAAK,GAAGK,WAAWlC,SACnB6B,EAAK,GAAGI,YAAYjC,SACpBgC,EAAO1E,YACP0E,EAAO3E,WAJPmE,EAAYW,KAAEV,EAAaU,KAAE7E,EAAW6E,KAAE9E,EAAS8E,KActD,OAPDlC,EAAAF,EAAAG,UAAM7C,EAAWC,UAEZkE,aAAeA,EACpBvB,EAAKwB,cAAgBA,EACrBxB,EAAKmC,OAAS,IAAIhF,GAChBd,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOiF,EAAalB,WAC5DhE,EAAK+D,aAAa/D,EAAKC,OAAO,IAAKD,EAAKC,OAAOkF,EAAcnB,YAC9DL,EAGHM,EAAAgB,EAAAxB,GAAA,IAAApC,EAAA4D,EAAA3D,UAyCC,OAzCDD,EAGOE,OAAA,WACL,OAAO,IAAI0D,EAAMhE,KAAKkE,cAAelE,KAAKiE,aAAcjE,KAAKF,UAAWE,KAAKD,cAG/EK,EAIOO,SAAA,SAAuCH,GAClCR,KAAKkE,cAAcd,OAAO5C,EAAMyD,eAA1CzC,MACA,IAAMsC,EAAQtB,EAAAnC,UAASM,SAAQgC,UAACnC,GAChC,OAAO,IAAIwD,EAAMhE,KAAKiE,aAAczD,EAAM0D,cAAeJ,EAAS/D,YAAa+D,EAAShE,YAG1FM,EAIO0E,MAAA,SAAMC,GACDA,EAAetC,SAASW,OAAOpD,KAAKiE,eAA9CzC,MACA,IAAMiD,EAAMjC,EAAAnC,UAASM,SAAQgC,UAACoC,GAC9B,OAAOxC,GAAeY,qBAAqBnD,KAAKkE,cAAeO,EAAO3E,UAAW2E,EAAO1E,cAG1FK,EAQOa,cAAA,SAAcC,EAA+BC,EAAiBC,GACnE,gBADmBF,IAAAA,EAA4B,GACxClB,KAAKgF,oBAAoB/D,cAAcC,EAAmBC,EAAQC,IAC1EhB,EAEM4B,QAAA,SAAQD,EAA2BZ,EAAiBC,GACzD,gBADaW,IAAAA,EAAwB,GAC9B/B,KAAKgF,oBAAoBhD,QAAQD,EAAeZ,EAAQC,IAChEe,EAAA6B,IAAA5B,0BAAAC,IAVD,WACE,OAAAG,EAAAnC,UAAaM,SAAQgC,UAAC3C,KAAK6E,aArE6ChF,ICDtDoF,GAkCpB,SAAsBtJ,EAAiBoH,EAAkBmC,EAAiBC,GAC9D7D,OAAO8D,cAAczJ,IAA/B6F,MACUuB,GAAY,GAAKA,EAAW,KAAOzB,OAAOC,UAAUwB,IAA9DvB,MAEAxB,KAAKrE,QAAUA,EACfqE,KAAK+C,SAAWA,EAChB/C,KAAKkF,OAASA,EACdlF,KAAKmF,KAAOA,GC3CME,YAAeC,GAArC,SAAAD,UAEwC,kDADL,EACjB3C,WAAiB,EAAKA,EACvC,OAAAM,EAAAqC,EAAAC,GAAAD,GAH4CJ,aCC7BM,GAAwBjK,GACtC,IACE,OAAOkK,aAAWlK,GAClB,MAAOmK,GACP,MAAM,IAAItF,MAAS7E,+BAKvB,IAAMoK,GAA4B,sBCNrBC,YAAML,GA2BjB,SAAAK,EACEhK,EACAL,EACAyH,EACAmC,EACAC,EACAS,EACAC,EACAC,SAe4B,OAb5BpD,EAAA4C,EAAA3C,UAAMhH,EAASoH,EAAUmC,EAAQC,oBApCD,EAClBzC,WAAgB,EAqC5BA,EAAKpH,QADHsK,WD1B0BtK,GAChC,GAAIoK,GAA0BK,KAAKzK,GACjC,OAAOA,EAGT,MAAM,IAAI6E,MAAS7E,8BCsBA0K,CAAkB1K,GAElBiK,GAAwBjK,GAErCuK,IACQA,EAAUI,IAAIC,YAAUC,KAAK,KAAvC3E,OAEEsE,IACQA,EAAWG,IAAIC,YAAUC,KAAK,KAAxC3E,OAEFkB,EAAKmD,UAAYA,EACjBnD,EAAKoD,WAAaA,EAAUpD,EAG9BM,EAAA2C,EAAAL,GAAA,IAAAlF,EAAAuF,EAAAtF,UAoBA,OApBAD,EAIOgD,OAAA,SAAO5C,GACZ,OAAOA,EAAMkD,SAAW1D,KAAKrE,UAAY6E,EAAM7E,SAAWqE,KAAK1E,QAAQ8K,gBAAkB5F,EAAMlF,QAAQ8K,eAGzGhG,EAMOiG,YAAA,SAAY7F,GAGjB,OAFUR,KAAKrE,UAAY6E,EAAM7E,SAAjC6F,MACUxB,KAAK1E,QAAQ8K,gBAAkB5F,EAAMlF,QAAQ8K,eAAvD5E,MACOxB,KAAK1E,QAAQ8K,cAAgB5F,EAAMlF,QAAQ8K,eAGpDjE,EAAAwD,IAAAvD,cAAAC,IAGA,WACE,OAAOrC,UA7EgBiF,ICJdqB,GAAsC,CACjDC,EAAG,IAAIZ,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1Ea,SAAU,IAAIb,GAAM,SAAU,6CAA8C,GAAI,OAAQ,iBACxFc,EAAG,IAAId,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1Ee,EAAG,IAAIf,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1EgB,EAAG,IAAIhB,GAAM,EAAG,6CAA8C,GAAI,OAAQ,iBAC1EiB,GAAI,IAAIjB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAE5EkB,GAAI,IAAIlB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAC5EmB,GAAI,IAAInB,GAAM,GAAI,6CAA8C,GAAI,OAAQ,iBAC5EoB,SAAU,IAAIpB,GAAM,SAAU,6CAA8C,GAAI,OAAQ,iBAExFqB,MAAO,IAAIrB,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClFsB,OAAQ,IAAItB,GAAM,OAAQ,6CAA8C,GAAI,OAAQ,iBACpFuB,OAAQ,IAAIvB,GAAM,OAAQ,6CAA8C,GAAI,OAAQ,iBAEpFwB,KAAM,IAAIxB,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFyB,MAAO,IAAIzB,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAElF0B,GAAI,IAAI1B,GAAM,GAAI,6CAA8C,GAAI,OAAQ,eAC5E2B,IAAK,IAAI3B,GAAM,IAAK,6CAA8C,GAAI,SAAU,iBAChF4B,MAAO,IAAI5B,GAAM,MAAO,6CAA8C,GAAI,QAAS,gBACnF6B,QAAS,IAAI7B,GAAM,QAAS,6CAA8C,GAAI,OAAQ,iBACtF8B,MAAO,IAAI9B,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClF+B,IAAK,IAAI/B,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EgC,IAAK,IAAIhC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EiC,KAAM,IAAIjC,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFkC,IAAK,IAAIlC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,iBAC9EmC,MAAO,IAAInC,GAAM,MAAO,6CAA8C,GAAI,OAAQ,iBAClFoC,KAAM,IAAIpC,GAAM,KAAM,6CAA8C,GAAI,OAAQ,iBAChFqC,IAAK,IAAIrC,GAAM,IAAK,6CAA8C,GAAI,OAAQ,kBC1BnEsC,YAAMC,GACjB,SAAAD,EAAsBtM,UACpBuM,EAAAvF,UAAMhH,EAAS,GAAI,MAAO,eAiB3B,OAhBAqH,EAAAiF,EAAAC,GAAAD,EAUaE,QAAP,SAAexM,SACpB,cAAAyM,EAAOpI,KAAKqI,YAAY1M,IAAQyM,EAAKpI,KAAKqI,YAAY1M,GAAW,IAAIsM,EAAMtM,IAC5EsM,EAAA5H,UAEM+C,OAAA,SAAO5C,GACZ,OAAOA,EAAM8H,UAAY9H,EAAM7E,UAAYqE,KAAKrE,SACjDwG,EAAA8F,IAAA7F,cAAAC,IAdD,WACE,IAAMkG,EAAQjC,GAAMtG,KAAKrE,SAEzB,OADY4M,GAAZ/G,MACO+G,OARgBlD,IAWV4C,eAA4C,OCjBhDO,GAAmBzJ,EAAKC,OAAOsC,OAAOkH,kBAE7CC,GAAO1J,EAAKC,OAAO,GACnB0J,GAAM3J,EAAKC,OAAO,GAClB2J,GAAM5J,EAAKC,OAAO,mpBZ8jBgB,SAACrD,GACC,IAAAiN,EAAxC,OAAIvP,EAAiBwP,SAASlN,UAE5BiN,EAAOtL,EADI3B,GACuB6B,qBAAmBoL,EAAI,6CAEpD,2HAniBwC,gGAKf,sGAwBD,2La5DjC,SACEE,EACAC,EACAC,GAEA,IAAMC,EAAqBH,EAAShE,MAAMiE,GAEpCG,EAAcD,EAAmBrI,SAASoI,GAAchI,OAAOiI,GACrE,OAAO,IAAIlF,GAAQmF,EAAYpJ,UAAWoJ,EAAYnJ,2DCVtDoJ,EACAC,EACAC,EACAC,YAAAA,IAAAA,EAAmB,MAEnB,IAAMC,EAASC,YAAUC,cAAY,kBAC/BC,EAAYF,YAAUF,GACtBK,EAAeH,YAAUhO,SAAO,CAAC+N,EAAQK,aAAWT,EAAQ,IAAKE,EAAMD,EAAcM,KAAaG,MAAM,IAC9G,OAAOrE,aAAWmE,yBCVpB,SAAgCG,EAAYvJ,EAAQwJ,EAAiBC,GAMnE,GALUD,EAAU,GAApBvI,MAEUsI,EAAMzF,QAAU0F,GAA1BvI,MAGqB,IAAjBsI,EAAMzF,OAER,OADAyF,EAAMG,KAAK1J,GACJ,KAEP,IAAM2J,EAASJ,EAAMzF,SAAW0F,EAEhC,GAAIG,GAAUF,EAAWF,EAAMA,EAAMzF,OAAS,GAAI9D,IAAQ,EACxD,OAAOA,EAMT,IAHA,IAAI4J,EAAK,EACPC,EAAKN,EAAMzF,OAEN8F,EAAKC,GAAI,CACd,IAAMC,EAAOF,EAAKC,IAAQ,EACtBJ,EAAWF,EAAMO,GAAM9J,IAAQ,EACjC4J,EAAKE,EAAM,EAEXD,EAAKC,EAIT,OADAP,EAAMQ,OAAOH,EAAI,EAAG5J,GACb2J,EAASJ,EAAMS,MAAS,4BHnBdC,GAInB,GAHUzL,EAAK0L,mBAAmBD,EAAO/B,KAAzCjH,MAGIzC,EAAK8B,SAAS2J,EAAOhC,IACvB,OAAOzJ,EAAKC,OAAO0L,KAAKC,MAAMD,KAAKE,KAAK7L,EAAK8L,SAASL,MAGxD,IAAIM,EACAC,EAGJ,IAFAD,EAAIN,EACJO,EAAIhM,EAAKwB,IAAIxB,EAAKiC,OAAOwJ,EAAO7B,IAAMD,IAC/B3J,EAAK8B,SAASkK,EAAGD,IACtBA,EAAIC,EACJA,EAAIhM,EAAKiC,OAAOjC,EAAKwB,IAAIxB,EAAKiC,OAAOwJ,EAAOO,GAAIA,GAAIpC,IAEtD,OAAOmC"} \ No newline at end of file diff --git a/sdks/sdk-core/dist/sdk-core.esm.js b/sdks/sdk-core/dist/sdk-core.esm.js index 163ef1630..b5b12335b 100644 --- a/sdks/sdk-core/dist/sdk-core.esm.js +++ b/sdks/sdk-core/dist/sdk-core.esm.js @@ -85,8 +85,9 @@ var ChainId; ChainId[ChainId["MONAD_TESTNET"] = 10143] = "MONAD_TESTNET"; ChainId[ChainId["SONEIUM"] = 1868] = "SONEIUM"; ChainId[ChainId["MONAD"] = 143] = "MONAD"; + ChainId[ChainId["BLOCKDAG_AWAKENING"] = 1043] = "BLOCKDAG_AWAKENING"; })(ChainId || (ChainId = {})); -var SUPPORTED_CHAINS = [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD]; +var SUPPORTED_CHAINS = [ChainId.MAINNET, ChainId.OPTIMISM, ChainId.OPTIMISM_GOERLI, ChainId.OPTIMISM_SEPOLIA, ChainId.ARBITRUM_ONE, ChainId.ARBITRUM_GOERLI, ChainId.ARBITRUM_SEPOLIA, ChainId.POLYGON, ChainId.POLYGON_MUMBAI, ChainId.GOERLI, ChainId.SEPOLIA, ChainId.CELO_ALFAJORES, ChainId.CELO, ChainId.BNB, ChainId.AVALANCHE, ChainId.BASE, ChainId.BASE_GOERLI, ChainId.BASE_SEPOLIA, ChainId.ZORA, ChainId.ZORA_SEPOLIA, ChainId.ROOTSTOCK, ChainId.BLAST, ChainId.ZKSYNC, ChainId.WORLDCHAIN, ChainId.UNICHAIN_SEPOLIA, ChainId.UNICHAIN, ChainId.MONAD_TESTNET, ChainId.SONEIUM, ChainId.MONAD, ChainId.BLOCKDAG_AWAKENING]; var NativeCurrencyName; (function (NativeCurrencyName) { // Strings match input for CLI @@ -98,6 +99,7 @@ var NativeCurrencyName; NativeCurrencyName["BNB"] = "BNB"; NativeCurrencyName["AVAX"] = "AVAX"; NativeCurrencyName["ROOTSTOCK"] = "RBTC"; + NativeCurrencyName["BDAG"] = "BDAG"; })(NativeCurrencyName || (NativeCurrencyName = {})); var _V2_FACTORY_ADDRESSES, _V2_ROUTER_ADDRESSES, _CHAIN_TO_ADDRESSES_M, _GOVERNANCE_ALPHA_V1_, _GOVERNANCE_BRAVO_ADD, _MERKLE_DISTRIBUTOR_A, _ARGENT_WALLET_DETECT, _SOCKS_CONTROLLER_ADD; @@ -427,7 +429,16 @@ var SONEIUM_ADDRESSES = { v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990', v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5' }; -var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M); +var BLOCKDAG_AWAKENING_ADDRESSES = { + v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635', + multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C', + quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36', + v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327', + nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93', + tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50', + swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861' +}; +var CHAIN_TO_ADDRESSES_MAP = (_CHAIN_TO_ADDRESSES_M = {}, _CHAIN_TO_ADDRESSES_M[ChainId.MAINNET] = MAINNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM] = OPTIMISM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_ONE] = ARBITRUM_ONE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.POLYGON_MUMBAI] = POLYGON_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.GOERLI] = GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.CELO_ALFAJORES] = CELO_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BNB] = BNB_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_GOERLI] = OPTIMISM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.OPTIMISM_SEPOLIA] = OPTIMISM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_GOERLI] = ARBITRUM_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ARBITRUM_SEPOLIA] = ARBITRUM_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SEPOLIA] = SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.AVALANCHE] = AVALANCHE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE] = BASE_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_GOERLI] = BASE_GOERLI_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BASE_SEPOLIA] = BASE_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA] = ZORA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZORA_SEPOLIA] = ZORA_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ROOTSTOCK] = ROOTSTOCK_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BLAST] = BLAST_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.ZKSYNC] = ZKSYNC_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.WORLDCHAIN] = WORLDCHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN_SEPOLIA] = UNICHAIN_SEPOLIA_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.UNICHAIN] = UNICHAIN_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD_TESTNET] = MONAD_TESTNET_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.SONEIUM] = SONEIUM_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.MONAD] = MONAD_ADDRESSES, _CHAIN_TO_ADDRESSES_M[ChainId.BLOCKDAG_AWAKENING] = BLOCKDAG_AWAKENING_ADDRESSES, _CHAIN_TO_ADDRESSES_M); /* V3 Contract Addresses */ var V3_CORE_FACTORY_ADDRESSES = /*#__PURE__*/_extends({}, /*#__PURE__*/SUPPORTED_CHAINS.reduce(function (memo, chainId) { memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress; diff --git a/sdks/sdk-core/dist/sdk-core.esm.js.map b/sdks/sdk-core/dist/sdk-core.esm.js.map index 792bf3213..1d049b561 100644 --- a/sdks/sdk-core/dist/sdk-core.esm.js.map +++ b/sdks/sdk-core/dist/sdk-core.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"sdk-core.esm.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","env","NODE_ENV","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"sdk-core.esm.js","sources":["../src/chains.ts","../src/addresses.ts","../src/constants.ts","../src/entities/fractions/fraction.ts","../src/entities/fractions/currencyAmount.ts","../src/entities/fractions/percent.ts","../src/entities/fractions/price.ts","../src/entities/baseCurrency.ts","../src/entities/nativeCurrency.ts","../src/utils/validateAndParseAddress.ts","../src/entities/token.ts","../src/entities/weth9.ts","../src/entities/ether.ts","../src/utils/computePriceImpact.ts","../src/utils/computeZksyncCreate2Address.ts","../src/utils/sortedInsert.ts","../src/utils/sqrt.ts"],"sourcesContent":["export enum ChainId {\n MAINNET = 1,\n GOERLI = 5,\n SEPOLIA = 11155111,\n OPTIMISM = 10,\n OPTIMISM_GOERLI = 420,\n OPTIMISM_SEPOLIA = 11155420,\n ARBITRUM_ONE = 42161,\n ARBITRUM_GOERLI = 421613,\n ARBITRUM_SEPOLIA = 421614,\n POLYGON = 137,\n POLYGON_MUMBAI = 80001,\n CELO = 42220,\n CELO_ALFAJORES = 44787,\n GNOSIS = 100,\n MOONBEAM = 1284,\n BNB = 56,\n AVALANCHE = 43114,\n BASE_GOERLI = 84531,\n BASE_SEPOLIA = 84532,\n BASE = 8453,\n ZORA = 7777777,\n ZORA_SEPOLIA = 999999999,\n ROOTSTOCK = 30,\n BLAST = 81457,\n ZKSYNC = 324,\n WORLDCHAIN = 480,\n UNICHAIN_SEPOLIA = 1301,\n UNICHAIN = 130,\n MONAD_TESTNET = 10143,\n SONEIUM = 1868,\n MONAD = 143,\n BLOCKDAG_AWAKENING = 1043,\n}\n\nexport const SUPPORTED_CHAINS = [\n ChainId.MAINNET,\n ChainId.OPTIMISM,\n ChainId.OPTIMISM_GOERLI,\n ChainId.OPTIMISM_SEPOLIA,\n ChainId.ARBITRUM_ONE,\n ChainId.ARBITRUM_GOERLI,\n ChainId.ARBITRUM_SEPOLIA,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.GOERLI,\n ChainId.SEPOLIA,\n ChainId.CELO_ALFAJORES,\n ChainId.CELO,\n ChainId.BNB,\n ChainId.AVALANCHE,\n ChainId.BASE,\n ChainId.BASE_GOERLI,\n ChainId.BASE_SEPOLIA,\n ChainId.ZORA,\n ChainId.ZORA_SEPOLIA,\n ChainId.ROOTSTOCK,\n ChainId.BLAST,\n ChainId.ZKSYNC,\n ChainId.WORLDCHAIN,\n ChainId.UNICHAIN_SEPOLIA,\n ChainId.UNICHAIN,\n ChainId.MONAD_TESTNET,\n ChainId.SONEIUM,\n ChainId.MONAD,\n ChainId.BLOCKDAG_AWAKENING\n] as const\nexport type SupportedChainsType = (typeof SUPPORTED_CHAINS)[number]\n\nexport enum NativeCurrencyName {\n // Strings match input for CLI\n ETHER = 'ETH',\n MATIC = 'MATIC',\n CELO = 'CELO',\n GNOSIS = 'XDAI',\n MOONBEAM = 'GLMR',\n BNB = 'BNB',\n AVAX = 'AVAX',\n ROOTSTOCK = 'RBTC',\n BDAG = 'BDAG',\n}\n","import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'\n\ntype AddressMap = { [chainId: number]: string }\n\ntype ChainAddresses = {\n v3CoreFactoryAddress: string\n multicallAddress: string\n quoterAddress: string\n v3MigratorAddress?: string\n nonfungiblePositionManagerAddress?: string\n tickLensAddress?: string\n swapRouter02Address?: string\n mixedRouteQuoterV1Address?: string\n mixedRouteQuoterV2Address?: string\n\n // v4\n v4PoolManagerAddress?: string\n v4PositionManagerAddress?: string\n v4StateView?: string\n v4QuoterAddress?: string\n}\n\nconst DEFAULT_NETWORKS = [ChainId.MAINNET, ChainId.GOERLI, ChainId.SEPOLIA]\n\nfunction constructSameAddressMap(address: string, additionalNetworks: ChainId[] = []): AddressMap {\n return DEFAULT_NETWORKS.concat(additionalNetworks).reduce((memo, chainId) => {\n memo[chainId] = address\n return memo\n }, {})\n}\n\nexport const UNI_ADDRESSES: AddressMap = constructSameAddressMap('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', [\n ChainId.OPTIMISM,\n ChainId.ARBITRUM_ONE,\n ChainId.POLYGON,\n ChainId.POLYGON_MUMBAI,\n ChainId.SEPOLIA,\n])\n\nexport const UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS = '0x8B799381ac40b838BBA4131ffB26197C432AFe78'\n\n/**\n * @deprecated use V2_FACTORY_ADDRESSES instead\n */\nexport const V2_FACTORY_ADDRESS = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f'\nexport const V2_FACTORY_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.GOERLI]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.SEPOLIA]: '0xF62c03E08ada871A0bEb309762E260a7a6a880E6',\n [ChainId.OPTIMISM]: '0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf',\n [ChainId.ARBITRUM_ONE]: '0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9',\n [ChainId.AVALANCHE]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.BASE_SEPOLIA]: '0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e',\n [ChainId.BASE]: '0x8909dc15e40173ff4699343b6eb8132c65e18ec6',\n [ChainId.BNB]: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',\n [ChainId.POLYGON]: '0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C',\n [ChainId.CELO]: '0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f',\n [ChainId.BLAST]: '0x5C346464d33F90bABaf70dB6388507CC889C1070',\n [ChainId.WORLDCHAIN]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN_SEPOLIA]: '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',\n [ChainId.UNICHAIN]: '0x1f98400000000000000000000000000000000002',\n [ChainId.MONAD_TESTNET]: '0x733e88f248b742db6c14c0b1713af5ad7fdd59d0',\n [ChainId.SONEIUM]: '0x97febbc2adbd5644ba22736e962564b23f5828ce',\n [ChainId.MONAD]: '0x182a927119d56008d921126764bf884221b10f59',\n}\n/**\n * @deprecated use V2_ROUTER_ADDRESSES instead\n */\nexport const V2_ROUTER_ADDRESS = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'\nexport const V2_ROUTER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.GOERLI]: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',\n [ChainId.SEPOLIA]: '0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3',\n [ChainId.ARBITRUM_ONE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.OPTIMISM]: '0x4a7b5da61326a6379179b40d00f57e5bbdc962c2',\n [ChainId.BASE_SEPOLIA]: '0x1689E7B1F10000AE47eBfE339a4f69dECd19F602',\n [ChainId.BASE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.AVALANCHE]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.BNB]: '0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24',\n [ChainId.POLYGON]: '0xedf6066a2b290c185783862c7f4776a2c8077ad1',\n [ChainId.BLAST]: '0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035',\n [ChainId.WORLDCHAIN]: '0x541aB7c31A119441eF3575F6973277DE0eF460bd',\n [ChainId.UNICHAIN_SEPOLIA]: '0x920b806E40A00E02E7D2b94fFc89860fDaEd3640',\n [ChainId.UNICHAIN]: '0x284f11109359a7e1306c3e447ef14d38400063ff',\n [ChainId.MONAD_TESTNET]: '0xfb8e1c3b833f9e67a71c859a132cf783b645e436',\n [ChainId.SONEIUM]: '0x273f68c234fa55b550b40e563c4a488e0d334320',\n [ChainId.MONAD]: '0x4b2ab38dbf28d31d467aa8993f6c2585981d6804',\n}\n\n// Networks that share most of the same addresses i.e. Mainnet, Goerli, Optimism, Arbitrum, Polygon\nconst DEFAULT_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x1F98415757620B543A52E61c46B32eB19261F984',\n quoterAddress: '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6',\n v3MigratorAddress: '0xA5644E29708357803b5A882D272c41cC0dF92B34',\n nonfungiblePositionManagerAddress: '0xC36442b4a4522E871399CD717aBDD847Ab11FE88',\n}\nconst MAINNET_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E',\n\n v4PoolManagerAddress: '0x000000000004444c5dc75cB358380D2e3dE08A90',\n v4PositionManagerAddress: '0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e',\n v4StateView: '0x7ffe42c4a5deea5b0fec41c94c136cf115597227',\n v4QuoterAddress: '0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203',\n}\nconst GOERLI_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n mixedRouteQuoterV1Address: '0xBa60b6e6fF25488308789E6e0A65D838be34194e',\n}\n\nconst OPTIMISM_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x9a13f98cb987694c9f086b1f5eb990eea8264ec3',\n v4PositionManagerAddress: '0x3c3ea4b57a46241e54610e5f022e5c45859a1017',\n v4StateView: '0xc18a3169788f4f75a170290584eca6395c75ecdb',\n v4QuoterAddress: '0x1f3131a13296fb91c90870043742c3cdbff1a8d7',\n}\n\nconst ARBITRUM_ONE_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n multicallAddress: '0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB',\n tickLensAddress: '0xbfd8137f7d1516D3ea5cA83523914859ec47F573',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0xd88f38f930b7952f2db2432cb002e7abbf3dd869',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\nconst POLYGON_ADDRESSES: ChainAddresses = {\n ...DEFAULT_ADDRESSES,\n\n v4PoolManagerAddress: '0x67366782805870060151383f4bbff9dab53e5cd6',\n v4PositionManagerAddress: '0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9',\n v4StateView: '0x5ea1bd7974c8a611cbab0bdcafcb1d9cc9b3ba5a',\n v4QuoterAddress: '0xb3d5c3dfc3a7aebff71895a7191796bffc2c81b9',\n}\n\n// celo v3 and v4 addresses\nconst CELO_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xAfE208a311B21f13EF87E33A90049fC17A7acDEc',\n multicallAddress: '0x633987602DE5C4F337e3DbF265303A1080324204',\n quoterAddress: '0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8',\n v3MigratorAddress: '0x3cFd4d48EDfDCC53D3f173F596f621064614C582',\n nonfungiblePositionManagerAddress: '0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A',\n tickLensAddress: '0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D',\n\n v4PoolManagerAddress: '0x288dc841A52FCA2707c6947B3A777c5E56cd87BC',\n v4PositionManagerAddress: '0xf7965f3981e4d5bc383bfbcb61501763e9068ca9',\n v4StateView: '0xbc21f8720babf4b20d195ee5c6e99c52b76f2bfb',\n v4QuoterAddress: '0x28566da1093609182dff2cb2a91cfd72e61d66cd',\n}\n\n// BNB v3 addresses\nconst BNB_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7',\n multicallAddress: '0x963Df249eD09c358A4819E39d9Cd5736c3087184',\n quoterAddress: '0x78D78E420Da98ad378D7799bE8f4AF69033EB077',\n v3MigratorAddress: '0x32681814957e0C13117ddc0c2aba232b5c9e760f',\n nonfungiblePositionManagerAddress: '0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613',\n tickLensAddress: '0xD9270014D396281579760619CCf4c3af0501A47C',\n swapRouter02Address: '0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2',\n\n v4PoolManagerAddress: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',\n v4PositionManagerAddress: '0x7a4a5c919ae2541aed11041a1aeee68f1287f95b',\n v4StateView: '0xd13dd3d6e93f276fafc9db9e6bb47c1180aee0c4',\n v4QuoterAddress: '0x9f75dd27d6664c475b90e105573e550ff69437b0',\n}\n\n// optimism goerli addresses\nconst OPTIMISM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10',\n multicallAddress: '0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd',\n quoterAddress: '0x9569CbA925c8ca2248772A9A4976A516743A246F',\n v3MigratorAddress: '0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8',\n nonfungiblePositionManagerAddress: '0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6',\n tickLensAddress: '0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e',\n}\n\n// optimism sepolia addresses\nconst OPTIMISM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8CE191193D15ea94e11d327b4c7ad8bbE520f6aF',\n multicallAddress: '0x80e4e06841bb76AA9735E0448cB8d003C0EF009a',\n quoterAddress: '0x0FBEa6cf957d95ee9313490050F6A0DA68039404',\n v3MigratorAddress: '0xE7EcbAAaA54D007A00dbb6c1d2f150066D69dA07',\n nonfungiblePositionManagerAddress: '0xdA75cEf1C93078e8b736FCA5D5a30adb97C8957d',\n tickLensAddress: '0xCb7f54747F58F8944973cea5b8f4ac2209BadDC5',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n}\n\n// arbitrum goerli v3 addresses\nconst ARBITRUM_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6',\n multicallAddress: '0x8260CB40247290317a4c062F3542622367F206Ee',\n quoterAddress: '0x1dd92b83591781D0C6d98d07391eea4b9a6008FA',\n v3MigratorAddress: '0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3',\n nonfungiblePositionManagerAddress: '0x622e4726a167799826d1E1D150b076A7725f5D81',\n tickLensAddress: '0xb52429333da969a0C79a60930a4Bf0020E5D1DE8',\n}\n\n// arbitrum sepolia v3 addresses\nconst ARBITRUM_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x248AB79Bbb9bC29bB72f7Cd42F17e054Fc40188e',\n multicallAddress: '0x2B718b475e385eD29F56775a66aAB1F5cC6B2A0A',\n quoterAddress: '0x2779a0CC1c3e0E44D2542EC3e79e3864Ae93Ef0B',\n v3MigratorAddress: '0x398f43ef2c67B941147157DA1c5a868E906E043D',\n nonfungiblePositionManagerAddress: '0x6b2937Bde17889EDCf8fbD8dE31C3C2a70Bc4d65',\n tickLensAddress: '0x0fd18587734e5C2dcE2dccDcC7DD1EC89ba557d9',\n swapRouter02Address: '0x101F443B4d1b059569D643917553c771E1b9663E',\n\n v4PoolManagerAddress: '0xFB3e0C6F74eB1a21CC1Da29aeC80D2Dfe6C9a317',\n v4PositionManagerAddress: '0xAc631556d3d4019C95769033B5E719dD77124BAc',\n v4StateView: '0x9d467fa9062b6e9b1a46e26007ad82db116c67cb',\n v4QuoterAddress: '0x7de51022d70a725b508085468052e25e22b5c4c9',\n}\n\n// sepolia v3 addresses\nconst SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x0227628f3F023bb0B980b67D528571c95c6DaC1c',\n multicallAddress: '0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07',\n quoterAddress: '0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3',\n v3MigratorAddress: '0x729004182cF005CEC8Bd85df140094b6aCbe8b15',\n nonfungiblePositionManagerAddress: '0x1238536071E1c677A632429e3655c799b22cDA52',\n tickLensAddress: '0xd7f33bcdb21b359c8ee6f0251d30e94832baad07',\n swapRouter02Address: '0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E',\n\n // TODO: update mixedRouteQuoterV2Address once v4 on sepolia redeployed\n mixedRouteQuoterV2Address: '0x4745f77b56a0e2294426e3936dc4fab68d9543cd',\n\n // TODO: update all below once v4 on sepolia redeployed\n v4PoolManagerAddress: '0xE03A1074c86CFeDd5C142C4F04F1a1536e203543',\n v4PositionManagerAddress: '0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4',\n v4StateView: '0xe1dd9c3fa50edb962e442f60dfbc432e24537e4c',\n v4QuoterAddress: '0x61b3f2011a92d183c7dbadbda940a7555ccf9227',\n}\n\n// Avalanche v3 addresses\nconst AVALANCHE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD',\n multicallAddress: '0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2',\n quoterAddress: '0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F',\n v3MigratorAddress: '0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97',\n nonfungiblePositionManagerAddress: '0x655C406EBFa14EE2006250925e54ec43AD184f8B',\n tickLensAddress: '0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950',\n swapRouter02Address: '0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE',\n\n v4PoolManagerAddress: '0x06380c0e0912312b5150364b9dc4542ba0dbbc85',\n v4PositionManagerAddress: '0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd',\n v4StateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',\n v4QuoterAddress: '0xbe40675bb704506a3c2ccfb762dcfd1e979845c2',\n}\n\nconst BASE_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x33128a8fC17869897dcE68Ed026d694621f6FDfD',\n multicallAddress: '0x091e99cb1C49331a94dD62755D168E941AbD0693',\n quoterAddress: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',\n v3MigratorAddress: '0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7',\n nonfungiblePositionManagerAddress: '0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1',\n tickLensAddress: '0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d',\n swapRouter02Address: '0x2626664c2603336E57B271c5C0b26F421741e481',\n mixedRouteQuoterV1Address: '0xe544efae946f0008ae9a8d64493efa7886b73776',\n\n v4PoolManagerAddress: '0x498581ff718922c3f8e6a244956af099b2652b2b',\n v4PositionManagerAddress: '0x7c5f5a4bbd8fd63184577525326123b519429bdc',\n v4StateView: '0xa3c0c9b65bad0b08107aa264b0f3db444b867a71',\n v4QuoterAddress: '0x0d5e0f971ed27fbff6c2837bf31316121532048d',\n}\n\n// Base Goerli v3 addresses\nconst BASE_GOERLI_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2',\n multicallAddress: '0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439',\n quoterAddress: '0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9',\n v3MigratorAddress: '0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE',\n nonfungiblePositionManagerAddress: '0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30',\n tickLensAddress: '0x1acB873Ee909D0c98adB18e4474943249F931b92',\n swapRouter02Address: '0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d',\n}\n\n// Base Sepolia v3 addresses\nconst BASE_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24',\n multicallAddress: '0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1',\n quoterAddress: '0xC5290058841028F1614F3A6F0F5816cAd0df5E27',\n v3MigratorAddress: '0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10',\n nonfungiblePositionManagerAddress: '0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2',\n tickLensAddress: '0xedf6066a2b290C185783862C7F4776A2C8077AD1',\n swapRouter02Address: '0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4',\n\n // v4\n v4PoolManagerAddress: '0x05E73354cFDd6745C338b50BcFDfA3Aa6fA03408',\n v4PositionManagerAddress: '0x4b2c77d209d3405f41a037ec6c77f7f5b8e2ca80',\n v4StateView: '0x571291b572ed32ce6751a2cb2486ebee8defb9b4',\n v4QuoterAddress: '0x4a6513c898fe1b2d0e78d3b0e0a4a151589b1cba',\n}\n\nconst ZORA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb',\n multicallAddress: '0xA51c76bEE6746cB487a7e9312E43e2b8f4A37C15',\n quoterAddress: '0x11867e1b3348F3ce4FcC170BC5af3d23E07E64Df',\n v3MigratorAddress: '0x048352d8dCF13686982C799da63fA6426a9D0b60',\n nonfungiblePositionManagerAddress: '0xbC91e8DfA3fF18De43853372A3d7dfe585137D78',\n tickLensAddress: '0x209AAda09D74Ad3B8D0E92910Eaf85D2357e3044',\n swapRouter02Address: '0x7De04c96BE5159c3b5CeffC82aa176dc81281557',\n\n v4PoolManagerAddress: '0x0575338e4c17006ae181b47900a84404247ca30f',\n v4PositionManagerAddress: '0xf66c7b99e2040f0d9b326b3b7c152e9663543d63',\n v4StateView: '0x385785af07d63b50d0a0ea57c4ff89d06adf7328',\n v4QuoterAddress: '0x5edaccc0660e0a2c44b06e07ce8b915e625dc2c6',\n}\n\nconst ZORA_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x4324A677D74764f46f33ED447964252441aA8Db6',\n multicallAddress: '0xA1E7e3A69671C4494EC59Dbd442de930a93F911A',\n quoterAddress: '0xC195976fEF0985886E37036E2DF62bF371E12Df0',\n v3MigratorAddress: '0x65ef259b31bf1d977c37e9434658694267674897',\n nonfungiblePositionManagerAddress: '0xB8458EaAe43292e3c1F7994EFd016bd653d23c20',\n tickLensAddress: '0x23C0F71877a1Fc4e20A78018f9831365c85f3064',\n}\n\nconst ROOTSTOCK_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0xaF37EC98A00FD63689CF3060BF3B6784E00caD82',\n multicallAddress: '0x996a9858cDfa45Ad68E47c9A30a7201E29c6a386',\n quoterAddress: '0xb51727c996C68E60F598A923a5006853cd2fEB31',\n v3MigratorAddress: '0x16678977CA4ec3DAD5efc7b15780295FE5f56162',\n nonfungiblePositionManagerAddress: '0x9d9386c042F194B460Ec424a1e57ACDE25f5C4b1',\n tickLensAddress: '0x55B9dF5bF68ADe972191a91980459f48ecA16afC',\n swapRouter02Address: '0x0B14ff67f0014046b4b99057Aec4509640b3947A',\n}\n\nconst BLAST_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd',\n multicallAddress: '0xdC7f370de7631cE9e2c2e1DCDA6B3B5744Cf4705',\n quoterAddress: '0x6Cdcd65e03c1CEc3730AeeCd45bc140D57A25C77',\n v3MigratorAddress: '0x15CA7043CD84C5D21Ae76Ba0A1A967d42c40ecE0',\n nonfungiblePositionManagerAddress: '0xB218e4f7cF0533d4696fDfC419A0023D33345F28',\n tickLensAddress: '0x2E95185bCdD928a3e984B7e2D6560Ab1b17d7274',\n swapRouter02Address: '0x549FEB8c9bd4c12Ad2AB27022dA12492aC452B66',\n\n v4PoolManagerAddress: '0x1631559198a9e474033433b2958dabc135ab6446',\n v4PositionManagerAddress: '0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad',\n v4StateView: '0x12a88ae16f46dce4e8b15368008ab3380885df30',\n v4QuoterAddress: '0x6f71cdcb0d119ff72c6eb501abceb576fbf62bcf',\n}\n\nconst ZKSYNC_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x8FdA5a7a8dCA67BBcDd10F02Fa0649A937215422',\n multicallAddress: '0x0c68a7C72f074d1c45C16d41fa74eEbC6D16a65C',\n quoterAddress: '0x8Cb537fc92E26d8EBBb760E632c95484b6Ea3e28',\n v3MigratorAddress: '0x611841b24E43C4ACfd290B427a3D6cf1A59dac8E',\n nonfungiblePositionManagerAddress: '0x0616e5762c1E7Dc3723c50663dF10a162D690a86',\n tickLensAddress: '0xe10FF11b809f8EE07b056B452c3B2caa7FE24f89',\n swapRouter02Address: '0x99c56385daBCE3E81d8499d0b8d0257aBC07E8A3',\n}\n\nconst WORLDCHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x7a5028BDa40e7B173C278C5342087826455ea25a',\n multicallAddress: '0x0a22c04215c97E3F532F4eF30e0aD9458792dAB9',\n quoterAddress: '0x10158D43e6cc414deE1Bd1eB0EfC6a5cBCfF244c',\n v3MigratorAddress: '0x9EBDdCBa71C9027E1eB45135672a30bcFEec9de3',\n nonfungiblePositionManagerAddress: '0xec12a9F9a09f50550686363766Cc153D03c27b5e',\n tickLensAddress: '0xE61df0CaC9d85876aCE5E3037005D80943570623',\n swapRouter02Address: '0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6',\n\n v4PoolManagerAddress: '0xb1860d529182ac3bc1f51fa2abd56662b7d13f33',\n v4PositionManagerAddress: '0xc585e0f504613b5fbf874f21af14c65260fb41fa',\n v4StateView: '0x51d394718bc09297262e368c1a481217fdeb71eb',\n v4QuoterAddress: '0x55d235b3ff2daf7c3ede0defc9521f1d6fe6c5c0',\n}\n\nconst UNICHAIN_SEPOLIA_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1F98431c8aD98523631AE4a59f267346ea31F984',\n multicallAddress: '0x9D0F15f2cf58655fDDcD1EE6129C547fDaeD01b1',\n quoterAddress: '0x6Dd37329A1A225a6Fca658265D460423DCafBF89',\n v3MigratorAddress: '0xb5FA244C9d6D04B2FBac84418b3c4910ED1Ae5f2',\n nonfungiblePositionManagerAddress: '0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075',\n tickLensAddress: '0x5f739c790a48E97eec0efb81bab5D152c0A0ecA0',\n swapRouter02Address: '0xd1AAE39293221B77B0C71fBD6dCb7Ea29Bb5B166',\n\n v4PoolManagerAddress: '0x00b036b58a818b1bc34d502d3fe730db729e62ac',\n v4PositionManagerAddress: '0xf969aee60879c54baaed9f3ed26147db216fd664',\n v4StateView: '0xc199f1072a74d4e905aba1a84d9a45e2546b6222',\n v4QuoterAddress: '0x56dcd40a3f2d466f48e7f48bdbe5cc9b92ae4472',\n}\n\nconst UNICHAIN_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x1f98400000000000000000000000000000000003',\n multicallAddress: '0xb7610f9b733e7d45184be3a1bc966960ccc54f0b',\n quoterAddress: '0x565ac8c7863d9bb16d07e809ff49fe5cd467634c',\n v3MigratorAddress: '0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc',\n nonfungiblePositionManagerAddress: '0x943e6e07a7e8e791dafc44083e54041d743c46e9',\n tickLensAddress: '0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443',\n swapRouter02Address: '0x73855d06de49d0fe4a9c42636ba96c62da12ff9c',\n\n v4PoolManagerAddress: '0x1f98400000000000000000000000000000000004',\n v4PositionManagerAddress: '0x4529a01c7a0410167c5740c487a8de60232617bf',\n v4StateView: '0x86e8631a016f9068c3f085faf484ee3f5fdee8f2',\n v4QuoterAddress: '0x333e3c607b141b18ff6de9f258db6e77fe7491e0',\n}\n\nconst MONAD_TESTNET_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x961235a9020b05c44df1026d956d1f4d78014276',\n multicallAddress: '0xa707ceb989cc3728551ed0e6e44b718dd114cf44',\n quoterAddress: '0x1ba215c17565de7b0cb7ecab971bcf540c24a862',\n v3MigratorAddress: '0x0a78348b71f8ae8caff2f8f9d4d74a2f36516661',\n nonfungiblePositionManagerAddress: '0x3dcc735c74f10fe2b9db2bb55c40fbbbf24490f7',\n tickLensAddress: '0x337478eb6058455ecb3696184b30dd6a29e3a893',\n swapRouter02Address: '0x4c4eabd5fb1d1a7234a48692551eaecff8194ca7',\n}\n\nconst MONAD_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x204faca1764b154221e35c0d20abb3c525710498',\n multicallAddress: '0xd1b797d92d87b688193a2b976efc8d577d204343',\n quoterAddress: '0x2d01411773c8c24805306e89a41f7855c3c4fe65',\n v3MigratorAddress: '0x7078c4537c04c2b2e52ddba06074dbdacf23ca15',\n nonfungiblePositionManagerAddress: '0x7197e214c0b767cfb76fb734ab638e2c192f4e53',\n tickLensAddress: '0xf025e0fe9e331a0ef05c2ad3c4e9c64b625cda6f',\n swapRouter02Address: '0xfe31f71c1b106eac32f1a19239c9a9a72ddfb900',\n // v4\n v4PoolManagerAddress: '0x188d586ddcf52439676ca21a244753fa19f9ea8e',\n v4PositionManagerAddress: '0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016',\n v4StateView: '0x77395f3b2e73ae90843717371294fa97cc419d64',\n v4QuoterAddress: '0xa222dd357a9076d1091ed6aa2e16c9742dd26891',\n}\n\nconst SONEIUM_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x42ae7ec7ff020412639d443e245d936429fbe717',\n multicallAddress: '0x8ad5ef2f2508288d2de66f04dd883ad5f4ef62b2',\n quoterAddress: '0x3e6c707d0125226ff60f291b6bd1404634f00aba',\n v3MigratorAddress: '0xa107580f73bd797bd8b87ff24e98346d99f93ddb',\n nonfungiblePositionManagerAddress: '0x56c1205b0244332011c1e866f4ea5384eb6bfa2c',\n tickLensAddress: '0xcd08eefb928c86499e6235ac155906bb7c4dc41a',\n swapRouter02Address: '0x7e40db01736f88464e5f4e42394f3d5bbb6705b9',\n\n v4PoolManagerAddress: '0x360e68faccca8ca495c1b759fd9eee466db9fb32',\n v4PositionManagerAddress: '0x1b35d13a2e2528f192637f14b05f0dc0e7deb566',\n v4StateView: '0x76fd297e2d437cd7f76d50f01afe6160f86e9990',\n v4QuoterAddress: '0x3972c00f7ed4885e145823eb7c655375d275a1c5',\n}\n\nconst BLOCKDAG_AWAKENING_ADDRESSES: ChainAddresses = {\n v3CoreFactoryAddress: '0x3554fF0232a5f5315651B07783d40DDEa5fB1635',\n multicallAddress: '0x33713842D3AEa5C4401153Bf333A18F0AEbe675C',\n quoterAddress: '0x45a05B1e370EC9d73c5D8E588dD038b975B1ee36',\n v3MigratorAddress: '0x4A9403D922D33422ac8d961dA9CCDbAa0031c327',\n nonfungiblePositionManagerAddress: '0xd36aaE88283aD096526F695aD9d8BDC6Ba2EED93',\n tickLensAddress: '0x658769766598D14A6e81ffFb49D76b605ab54b50',\n swapRouter02Address: '0x1cD236e7DAda17051159a73d6505D036fC9dE861',\n}\n\nexport const CHAIN_TO_ADDRESSES_MAP: Record = {\n [ChainId.MAINNET]: MAINNET_ADDRESSES,\n [ChainId.OPTIMISM]: OPTIMISM_ADDRESSES,\n [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES,\n [ChainId.POLYGON]: POLYGON_ADDRESSES,\n [ChainId.POLYGON_MUMBAI]: POLYGON_ADDRESSES,\n [ChainId.GOERLI]: GOERLI_ADDRESSES,\n [ChainId.CELO]: CELO_ADDRESSES,\n [ChainId.CELO_ALFAJORES]: CELO_ADDRESSES,\n [ChainId.BNB]: BNB_ADDRESSES,\n [ChainId.OPTIMISM_GOERLI]: OPTIMISM_GOERLI_ADDRESSES,\n [ChainId.OPTIMISM_SEPOLIA]: OPTIMISM_SEPOLIA_ADDRESSES,\n [ChainId.ARBITRUM_GOERLI]: ARBITRUM_GOERLI_ADDRESSES,\n [ChainId.ARBITRUM_SEPOLIA]: ARBITRUM_SEPOLIA_ADDRESSES,\n [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES,\n [ChainId.AVALANCHE]: AVALANCHE_ADDRESSES,\n [ChainId.BASE]: BASE_ADDRESSES,\n [ChainId.BASE_GOERLI]: BASE_GOERLI_ADDRESSES,\n [ChainId.BASE_SEPOLIA]: BASE_SEPOLIA_ADDRESSES,\n [ChainId.ZORA]: ZORA_ADDRESSES,\n [ChainId.ZORA_SEPOLIA]: ZORA_SEPOLIA_ADDRESSES,\n [ChainId.ROOTSTOCK]: ROOTSTOCK_ADDRESSES,\n [ChainId.BLAST]: BLAST_ADDRESSES,\n [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES,\n [ChainId.WORLDCHAIN]: WORLDCHAIN_ADDRESSES,\n [ChainId.UNICHAIN_SEPOLIA]: UNICHAIN_SEPOLIA_ADDRESSES,\n [ChainId.UNICHAIN]: UNICHAIN_ADDRESSES,\n [ChainId.MONAD_TESTNET]: MONAD_TESTNET_ADDRESSES,\n [ChainId.SONEIUM]: SONEIUM_ADDRESSES,\n [ChainId.MONAD]: MONAD_ADDRESSES,\n [ChainId.BLOCKDAG_AWAKENING]: BLOCKDAG_AWAKENING_ADDRESSES,\n}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].v3CoreFactoryAddress\n return memo\n }, {}),\n}\n\nexport const V3_MIGRATOR_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const v3MigratorAddress = CHAIN_TO_ADDRESSES_MAP[chainId].v3MigratorAddress\n if (v3MigratorAddress) {\n memo[chainId] = v3MigratorAddress\n }\n return memo\n }, {}),\n}\n\nexport const MULTICALL_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].multicallAddress\n return memo\n }, {}),\n}\n\n/**\n * The oldest V0 governance address\n */\nexport const GOVERNANCE_ALPHA_V0_ADDRESSES: AddressMap = constructSameAddressMap(\n '0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F'\n)\n/**\n * The older V1 governance address\n */\nexport const GOVERNANCE_ALPHA_V1_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0xC4e172459f1E7939D522503B81AFAaC1014CE6F6',\n}\n/**\n * The latest governor bravo that is currently admin of timelock\n */\nexport const GOVERNANCE_BRAVO_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x408ED6354d4973f66138C91495F2f2FCbd8724C3',\n}\n\nexport const TIMELOCK_ADDRESSES: AddressMap = constructSameAddressMap('0x1a9C8182C09F50C8318d769245beA52c32BE35BC')\n\nexport const MERKLE_DISTRIBUTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0x090D4613473dEE047c3f2706764f49E0821D256e',\n}\n\nexport const ARGENT_WALLET_DETECTOR_ADDRESS: AddressMap = {\n [ChainId.MAINNET]: '0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8',\n}\n\nexport const QUOTER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n memo[chainId] = CHAIN_TO_ADDRESSES_MAP[chainId].quoterAddress\n return memo\n }, {}),\n}\n\nexport const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const nonfungiblePositionManagerAddress = CHAIN_TO_ADDRESSES_MAP[chainId].nonfungiblePositionManagerAddress\n if (nonfungiblePositionManagerAddress) {\n memo[chainId] = nonfungiblePositionManagerAddress\n }\n return memo\n }, {}),\n}\n\nexport const ENS_REGISTRAR_ADDRESSES: AddressMap = {\n ...constructSameAddressMap('0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'),\n}\n\nexport const SOCKS_CONTROLLER_ADDRESSES: AddressMap = {\n [ChainId.MAINNET]: '0x65770b5283117639760beA3F867b69b3697a91dd',\n}\n\nexport const TICK_LENS_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const tickLensAddress = CHAIN_TO_ADDRESSES_MAP[chainId].tickLensAddress\n if (tickLensAddress) {\n memo[chainId] = tickLensAddress\n }\n return memo\n }, {}),\n}\n\nexport const MIXED_ROUTE_QUOTER_V1_ADDRESSES: AddressMap = SUPPORTED_CHAINS.reduce((memo, chainId) => {\n const mixedRouteQuoterV1Address = CHAIN_TO_ADDRESSES_MAP[chainId].mixedRouteQuoterV1Address\n if (mixedRouteQuoterV1Address) {\n memo[chainId] = mixedRouteQuoterV1Address\n }\n return memo\n}, {})\n\nexport const SWAP_ROUTER_02_ADDRESSES = (chainId: number) => {\n if (SUPPORTED_CHAINS.includes(chainId)) {\n const id = chainId as SupportedChainsType\n return CHAIN_TO_ADDRESSES_MAP[id].swapRouter02Address ?? '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'\n }\n return ''\n}\n","import JSBI from 'jsbi'\n\n// exports for external consumption\nexport type BigintIsh = JSBI | string | number\n\nexport enum TradeType {\n EXACT_INPUT,\n EXACT_OUTPUT,\n}\n\nexport enum Rounding {\n ROUND_DOWN,\n ROUND_HALF_UP,\n ROUND_UP,\n}\n\nexport const MaxUint256 = JSBI.BigInt('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff')\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\nimport _Decimal from 'decimal.js-light'\nimport _Big, { RoundingMode } from 'big.js'\nimport toFormat from 'toformat'\n\nimport { BigintIsh, Rounding } from '../../constants'\n\nconst Decimal = toFormat(_Decimal)\nconst Big = toFormat(_Big)\n\nconst toSignificantRounding = {\n [Rounding.ROUND_DOWN]: Decimal.ROUND_DOWN,\n [Rounding.ROUND_HALF_UP]: Decimal.ROUND_HALF_UP,\n [Rounding.ROUND_UP]: Decimal.ROUND_UP,\n}\n\nconst toFixedRounding = {\n [Rounding.ROUND_DOWN]: RoundingMode.RoundDown,\n [Rounding.ROUND_HALF_UP]: RoundingMode.RoundHalfUp,\n [Rounding.ROUND_UP]: RoundingMode.RoundUp,\n}\n\nexport class Fraction {\n public readonly numerator: JSBI\n public readonly denominator: JSBI\n\n public constructor(numerator: BigintIsh, denominator: BigintIsh = JSBI.BigInt(1)) {\n this.numerator = JSBI.BigInt(numerator)\n this.denominator = JSBI.BigInt(denominator)\n }\n\n private static tryParseFraction(fractionish: BigintIsh | Fraction): Fraction {\n if (fractionish instanceof JSBI || typeof fractionish === 'number' || typeof fractionish === 'string')\n return new Fraction(fractionish)\n\n if ('numerator' in fractionish && 'denominator' in fractionish) return fractionish\n throw new Error('Could not parse fraction')\n }\n\n // performs floor division\n public get quotient(): JSBI {\n return JSBI.divide(this.numerator, this.denominator)\n }\n\n // remainder after floor division\n public get remainder(): Fraction {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator)\n }\n\n public invert(): Fraction {\n return new Fraction(this.denominator, this.numerator)\n }\n\n public add(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.add(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public subtract(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator)\n }\n return new Fraction(\n JSBI.subtract(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n ),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public lessThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.lessThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public equalTo(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.equal(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public greaterThan(other: Fraction | BigintIsh): boolean {\n const otherParsed = Fraction.tryParseFraction(other)\n return JSBI.greaterThan(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(otherParsed.numerator, this.denominator)\n )\n }\n\n public multiply(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.numerator),\n JSBI.multiply(this.denominator, otherParsed.denominator)\n )\n }\n\n public divide(other: Fraction | BigintIsh): Fraction {\n const otherParsed = Fraction.tryParseFraction(other)\n return new Fraction(\n JSBI.multiply(this.numerator, otherParsed.denominator),\n JSBI.multiply(this.denominator, otherParsed.numerator)\n )\n }\n\n public toSignificant(\n significantDigits: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(significantDigits), `${significantDigits} is not an integer.`)\n invariant(significantDigits > 0, `${significantDigits} is not positive.`)\n\n Decimal.set({ precision: significantDigits + 1, rounding: toSignificantRounding[rounding] })\n const quotient = new Decimal(this.numerator.toString())\n .div(this.denominator.toString())\n .toSignificantDigits(significantDigits)\n return quotient.toFormat(quotient.decimalPlaces(), format)\n }\n\n public toFixed(\n decimalPlaces: number,\n format: object = { groupSeparator: '' },\n rounding: Rounding = Rounding.ROUND_HALF_UP\n ): string {\n invariant(Number.isInteger(decimalPlaces), `${decimalPlaces} is not an integer.`)\n invariant(decimalPlaces >= 0, `${decimalPlaces} is negative.`)\n\n Big.DP = decimalPlaces\n Big.RM = toFixedRounding[rounding]\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format)\n }\n\n /**\n * Helper method for converting any super class back to a fraction\n */\n public get asFraction(): Fraction {\n return new Fraction(this.numerator, this.denominator)\n }\n}\n","import invariant from 'tiny-invariant'\nimport JSBI from 'jsbi'\nimport { Currency } from '../currency'\nimport { Token } from '../token'\nimport { Fraction } from './fraction'\nimport _Big from 'big.js'\n\nimport toFormat from 'toformat'\nimport { BigintIsh, Rounding, MaxUint256 } from '../../constants'\n\nconst Big = toFormat(_Big)\n\nexport class CurrencyAmount extends Fraction {\n public readonly currency: T\n public readonly decimalScale: JSBI\n\n /**\n * Returns a new currency amount instance from the unitless amount of token, i.e. the raw amount\n * @param currency the currency in the amount\n * @param rawAmount the raw token or ether amount\n */\n public static fromRawAmount(currency: T, rawAmount: BigintIsh): CurrencyAmount {\n return new CurrencyAmount(currency, rawAmount)\n }\n\n /**\n * Construct a currency amount with a denominator that is not equal to 1\n * @param currency the currency\n * @param numerator the numerator of the fractional token amount\n * @param denominator the denominator of the fractional token amount\n */\n public static fromFractionalAmount(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount {\n return new CurrencyAmount(currency, numerator, denominator)\n }\n\n protected constructor(currency: T, numerator: BigintIsh, denominator?: BigintIsh) {\n super(numerator, denominator)\n invariant(JSBI.lessThanOrEqual(this.quotient, MaxUint256), 'AMOUNT')\n this.currency = currency\n this.decimalScale = JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(currency.decimals))\n }\n\n public add(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const added = super.add(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, added.numerator, added.denominator)\n }\n\n public subtract(other: CurrencyAmount): CurrencyAmount {\n invariant(this.currency.equals(other.currency), 'CURRENCY')\n const subtracted = super.subtract(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, subtracted.numerator, subtracted.denominator)\n }\n\n public multiply(other: Fraction | BigintIsh): CurrencyAmount {\n const multiplied = super.multiply(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, multiplied.numerator, multiplied.denominator)\n }\n\n public divide(other: Fraction | BigintIsh): CurrencyAmount {\n const divided = super.divide(other)\n return CurrencyAmount.fromFractionalAmount(this.currency, divided.numerator, divided.denominator)\n }\n\n public toSignificant(\n significantDigits: number = 6,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n return super.divide(this.decimalScale).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(\n decimalPlaces: number = this.currency.decimals,\n format?: object,\n rounding: Rounding = Rounding.ROUND_DOWN\n ): string {\n invariant(decimalPlaces <= this.currency.decimals, 'DECIMALS')\n return super.divide(this.decimalScale).toFixed(decimalPlaces, format, rounding)\n }\n\n public toExact(format: object = { groupSeparator: '' }): string {\n Big.DP = this.currency.decimals\n return new Big(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(format)\n }\n\n public get wrapped(): CurrencyAmount {\n if (this.currency.isToken) return this as CurrencyAmount\n return CurrencyAmount.fromFractionalAmount(this.currency.wrapped, this.numerator, this.denominator)\n }\n}\n","import JSBI from 'jsbi'\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Fraction } from './fraction'\n\nconst ONE_HUNDRED = new Fraction(JSBI.BigInt(100))\n\n/**\n * Converts a fraction to a percent\n * @param fraction the fraction to convert\n */\nfunction toPercent(fraction: Fraction): Percent {\n return new Percent(fraction.numerator, fraction.denominator)\n}\n\nexport class Percent extends Fraction {\n /**\n * This boolean prevents a fraction from being interpreted as a Percent\n */\n public readonly isPercent: true = true\n\n add(other: Fraction | BigintIsh): Percent {\n return toPercent(super.add(other))\n }\n\n subtract(other: Fraction | BigintIsh): Percent {\n return toPercent(super.subtract(other))\n }\n\n multiply(other: Fraction | BigintIsh): Percent {\n return toPercent(super.multiply(other))\n }\n\n divide(other: Fraction | BigintIsh): Percent {\n return toPercent(super.divide(other))\n }\n\n public toSignificant(significantDigits: number = 5, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 2, format?: object, rounding?: Rounding): string {\n return super.multiply(ONE_HUNDRED).toFixed(decimalPlaces, format, rounding)\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nimport { BigintIsh, Rounding } from '../../constants'\nimport { Currency } from '../currency'\nimport { Fraction } from './fraction'\nimport { CurrencyAmount } from './currencyAmount'\n\nexport class Price extends Fraction {\n public readonly baseCurrency: TBase // input i.e. denominator\n public readonly quoteCurrency: TQuote // output i.e. numerator\n public readonly scalar: Fraction // used to adjust the raw fraction w/r/t the decimals of the {base,quote}Token\n\n /**\n * Construct a price, either with the base and quote currency amount, or the\n * @param args\n */\n public constructor(\n ...args:\n | [TBase, TQuote, BigintIsh, BigintIsh]\n | [{ baseAmount: CurrencyAmount; quoteAmount: CurrencyAmount }]\n ) {\n let baseCurrency: TBase, quoteCurrency: TQuote, denominator: BigintIsh, numerator: BigintIsh\n\n if (args.length === 4) {\n ;[baseCurrency, quoteCurrency, denominator, numerator] = args\n } else {\n const result = args[0].quoteAmount.divide(args[0].baseAmount)\n ;[baseCurrency, quoteCurrency, denominator, numerator] = [\n args[0].baseAmount.currency,\n args[0].quoteAmount.currency,\n result.denominator,\n result.numerator,\n ]\n }\n super(numerator, denominator)\n\n this.baseCurrency = baseCurrency\n this.quoteCurrency = quoteCurrency\n this.scalar = new Fraction(\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(baseCurrency.decimals)),\n JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(quoteCurrency.decimals))\n )\n }\n\n /**\n * Flip the price, switching the base and quote currency\n */\n public invert(): Price {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator)\n }\n\n /**\n * Multiply the price by another price, returning a new price. The other price must have the same base currency as this price's quote currency\n * @param other the other price\n */\n public multiply(other: Price): Price {\n invariant(this.quoteCurrency.equals(other.baseCurrency), 'TOKEN')\n const fraction = super.multiply(other)\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator)\n }\n\n /**\n * Return the amount of quote currency corresponding to a given amount of the base currency\n * @param currencyAmount the amount of base currency to quote against the price\n */\n public quote(currencyAmount: CurrencyAmount): CurrencyAmount {\n invariant(currencyAmount.currency.equals(this.baseCurrency), 'TOKEN')\n const result = super.multiply(currencyAmount)\n return CurrencyAmount.fromFractionalAmount(this.quoteCurrency, result.numerator, result.denominator)\n }\n\n /**\n * Get the value scaled by decimals for formatting\n * @private\n */\n private get adjustedForDecimals(): Fraction {\n return super.multiply(this.scalar)\n }\n\n public toSignificant(significantDigits: number = 6, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toSignificant(significantDigits, format, rounding)\n }\n\n public toFixed(decimalPlaces: number = 4, format?: object, rounding?: Rounding): string {\n return this.adjustedForDecimals.toFixed(decimalPlaces, format, rounding)\n }\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { Token } from './token'\n\n/**\n * A currency is any fungible financial instrument, including Ether, all ERC20 tokens, and other chain-native currencies\n */\nexport abstract class BaseCurrency {\n /**\n * Returns whether the currency is native to the chain and must be wrapped (e.g. Ether)\n */\n public abstract readonly isNative: boolean\n /**\n * Returns whether the currency is a token that is usable in Uniswap without wrapping\n */\n public abstract readonly isToken: boolean\n\n /**\n * The chain ID on which this currency resides\n */\n public readonly chainId: number\n /**\n * The decimals used in representing currency amounts\n */\n public readonly decimals: number\n /**\n * The symbol of the currency, i.e. a short textual non-unique identifier\n */\n public readonly symbol?: string\n /**\n * The name of the currency, i.e. a descriptive textual non-unique identifier\n */\n public readonly name?: string\n\n /**\n * Constructs an instance of the base class `BaseCurrency`.\n * @param chainId the chain ID on which this currency resides\n * @param decimals decimals of the currency\n * @param symbol symbol of the currency\n * @param name of the currency\n */\n protected constructor(chainId: number, decimals: number, symbol?: string, name?: string) {\n invariant(Number.isSafeInteger(chainId), 'CHAIN_ID')\n invariant(decimals >= 0 && decimals < 255 && Number.isInteger(decimals), 'DECIMALS')\n\n this.chainId = chainId\n this.decimals = decimals\n this.symbol = symbol\n this.name = name\n }\n\n /**\n * Returns whether this currency is functionally equivalent to the other currency\n * @param other the other currency\n */\n public abstract equals(other: Currency): boolean\n\n /**\n * Return the wrapped version of this currency that can be used with the Uniswap contracts. Currencies must\n * implement this to be used in Uniswap\n */\n public abstract get wrapped(): Token\n}\n","import { BaseCurrency } from './baseCurrency'\n\n/**\n * Represents the native currency of the chain on which it resides, e.g.\n */\nexport abstract class NativeCurrency extends BaseCurrency {\n public readonly isNative: true = true\n public readonly isToken: false = false\n}\n","import { getAddress } from '@ethersproject/address'\n\n/**\n * Validates an address and returns the parsed (checksummed) version of that address\n * @param address the unchecksummed hex address\n */\nexport function validateAndParseAddress(address: string): string {\n try {\n return getAddress(address)\n } catch (error) {\n throw new Error(`${address} is not a valid address.`)\n }\n}\n\n// Checks a string starts with 0x, is 42 characters long and contains only hex characters after 0x\nconst startsWith0xLen42HexRegex = /^0x[0-9a-fA-F]{40}$/\n\n/**\n * Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.\n * @param address the unchecksummed hex address\n */\nexport function checkValidAddress(address: string): string {\n if (startsWith0xLen42HexRegex.test(address)) {\n return address\n }\n\n throw new Error(`${address} is not a valid address.`)\n}\n","import { BigNumber } from '@ethersproject/bignumber'\nimport invariant from 'tiny-invariant'\nimport { checkValidAddress, validateAndParseAddress } from '../utils/validateAndParseAddress'\nimport { BaseCurrency } from './baseCurrency'\nimport { Currency } from './currency'\n\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */\nexport class Token extends BaseCurrency {\n public readonly isNative: false = false\n public readonly isToken: true = true\n\n /**\n * The contract address on the chain on which this token lives\n */\n public readonly address: string\n\n /**\n * Relevant for fee-on-transfer (FOT) token taxes,\n * Not every ERC20 token is FOT token, so this field is optional\n */\n public readonly buyFeeBps?: BigNumber\n public readonly sellFeeBps?: BigNumber\n\n /**\n *\n * @param chainId {@link BaseCurrency#chainId}\n * @param address The contract address on the chain on which this token lives\n * @param decimals {@link BaseCurrency#decimals}\n * @param symbol {@link BaseCurrency#symbol}\n * @param name {@link BaseCurrency#name}\n * @param bypassChecksum If true it only checks for length === 42, startsWith 0x and contains only hex characters\n * @param buyFeeBps Buy fee tax for FOT tokens, in basis points\n * @param sellFeeBps Sell fee tax for FOT tokens, in basis points\n */\n public constructor(\n chainId: number,\n address: string,\n decimals: number,\n symbol?: string,\n name?: string,\n bypassChecksum?: boolean,\n buyFeeBps?: BigNumber,\n sellFeeBps?: BigNumber\n ) {\n super(chainId, decimals, symbol, name)\n if (bypassChecksum) {\n this.address = checkValidAddress(address)\n } else {\n this.address = validateAndParseAddress(address)\n }\n if (buyFeeBps) {\n invariant(buyFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n if (sellFeeBps) {\n invariant(sellFeeBps.gte(BigNumber.from(0)), 'NON-NEGATIVE FOT FEES')\n }\n this.buyFeeBps = buyFeeBps\n this.sellFeeBps = sellFeeBps\n }\n\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */\n public equals(other: Currency): boolean {\n return other.isToken && this.chainId === other.chainId && this.address.toLowerCase() === other.address.toLowerCase()\n }\n\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */\n public sortsBefore(other: Token): boolean {\n invariant(this.chainId === other.chainId, 'CHAIN_IDS')\n invariant(this.address.toLowerCase() !== other.address.toLowerCase(), 'ADDRESSES')\n return this.address.toLowerCase() < other.address.toLowerCase()\n }\n\n /**\n * Return this token, which does not need to be wrapped\n */\n public get wrapped(): Token {\n return this\n }\n}\n","import { Token } from './token'\n\n/**\n * Known WETH9 implementation addresses, used in our implementation of Ether#wrapped\n */\nexport const WETH9: { [chainId: number]: Token } = {\n 1: new Token(1, '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', 18, 'WETH', 'Wrapped Ether'),\n 11155111: new Token(11155111, '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14', 18, 'WETH', 'Wrapped Ether'),\n 3: new Token(3, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 4: new Token(4, '0xc778417E063141139Fce010982780140Aa0cD5Ab', 18, 'WETH', 'Wrapped Ether'),\n 5: new Token(5, '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6', 18, 'WETH', 'Wrapped Ether'),\n 42: new Token(42, '0xd0A1E359811322d97991E03f863a0C30C2cF029C', 18, 'WETH', 'Wrapped Ether'),\n\n 10: new Token(10, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 69: new Token(69, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 11155420: new Token(11155420, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 42161: new Token(42161, '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1', 18, 'WETH', 'Wrapped Ether'),\n 421611: new Token(421611, '0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681', 18, 'WETH', 'Wrapped Ether'),\n 421614: new Token(421614, '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73', 18, 'WETH', 'Wrapped Ether'),\n\n 8453: new Token(8453, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 84532: new Token(84532, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n\n 56: new Token(56, '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c', 18, 'WBNB', 'Wrapped BNB'),\n 137: new Token(137, '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270', 18, 'WMATIC', 'Wrapped MATIC'),\n 43114: new Token(43114, '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', 18, 'WAVAX', 'Wrapped AVAX'),\n 7777777: new Token(7777777, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 81457: new Token(81457, '0x4300000000000000000000000000000000000004', 18, 'WETH', 'Wrapped Ether'),\n 324: new Token(324, '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91', 18, 'WETH', 'Wrapped Ether'),\n 480: new Token(480, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 1301: new Token(1301, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 130: new Token(130, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 10143: new Token(10143, '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701', 18, 'WMON', 'Wrapped Monad'),\n 1868: new Token(1868, '0x4200000000000000000000000000000000000006', 18, 'WETH', 'Wrapped Ether'),\n 143: new Token(143, '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A', 18, 'WMON', 'Wrapped Monad'),\n}\n","import invariant from 'tiny-invariant'\nimport { Currency } from './currency'\nimport { NativeCurrency } from './nativeCurrency'\nimport { Token } from './token'\nimport { WETH9 } from './weth9'\n\n/**\n * Ether is the main usage of a 'native' currency, i.e. for Ethereum mainnet and all testnets\n */\nexport class Ether extends NativeCurrency {\n protected constructor(chainId: number) {\n super(chainId, 18, 'ETH', 'Ether')\n }\n\n public get wrapped(): Token {\n const weth9 = WETH9[this.chainId]\n invariant(!!weth9, 'WRAPPED')\n return weth9\n }\n\n private static _etherCache: { [chainId: number]: Ether } = {}\n\n public static onChain(chainId: number): Ether {\n return this._etherCache[chainId] ?? (this._etherCache[chainId] = new Ether(chainId))\n }\n\n public equals(other: Currency): boolean {\n return other.isNative && other.chainId === this.chainId\n }\n}\n","import { Currency, CurrencyAmount, Percent, Price } from '../entities'\n\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */\nexport function computePriceImpact(\n midPrice: Price,\n inputAmount: CurrencyAmount,\n outputAmount: CurrencyAmount\n): Percent {\n const quotedOutputAmount = midPrice.quote(inputAmount)\n // calculate price impact := (exactQuote - outputAmount) / exactQuote\n const priceImpact = quotedOutputAmount.subtract(outputAmount).divide(quotedOutputAmount)\n return new Percent(priceImpact.numerator, priceImpact.denominator)\n}\n","import { getAddress } from '@ethersproject/address'\nimport { BytesLike, concat, hexZeroPad } from '@ethersproject/bytes'\nimport { keccak256 } from '@ethersproject/keccak256'\nimport { toUtf8Bytes } from '@ethersproject/strings'\n\nexport function computeZksyncCreate2Address(\n sender: string,\n bytecodeHash: BytesLike,\n salt: BytesLike,\n input: BytesLike = '0x'\n) {\n const prefix = keccak256(toUtf8Bytes('zksyncCreate2'))\n const inputHash = keccak256(input)\n const addressBytes = keccak256(concat([prefix, hexZeroPad(sender, 32), salt, bytecodeHash, inputHash])).slice(26)\n return getAddress(addressBytes)\n}\n","import invariant from 'tiny-invariant'\n\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null {\n invariant(maxSize > 0, 'MAX_SIZE_ZERO')\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, 'ITEMS_SIZE')\n\n // short circuit first item add\n if (items.length === 0) {\n items.push(add)\n return null\n } else {\n const isFull = items.length === maxSize\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add\n }\n\n let lo = 0,\n hi = items.length\n\n while (lo < hi) {\n const mid = (lo + hi) >>> 1\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1\n } else {\n hi = mid\n }\n }\n items.splice(lo, 0, add)\n return isFull ? items.pop()! : null\n }\n}\n","import JSBI from 'jsbi'\nimport invariant from 'tiny-invariant'\n\nexport const MAX_SAFE_INTEGER = JSBI.BigInt(Number.MAX_SAFE_INTEGER)\n\nconst ZERO = JSBI.BigInt(0)\nconst ONE = JSBI.BigInt(1)\nconst TWO = JSBI.BigInt(2)\n\n/**\n * Computes floor(sqrt(value))\n * @param value the value for which to compute the square root, rounded down\n */\nexport function sqrt(value: JSBI): JSBI {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), 'NEGATIVE')\n\n // rely on built in sqrt if possible\n if (JSBI.lessThan(value, MAX_SAFE_INTEGER)) {\n return JSBI.BigInt(Math.floor(Math.sqrt(JSBI.toNumber(value))))\n }\n\n let z: JSBI\n let x: JSBI\n z = value\n x = JSBI.add(JSBI.divide(value, TWO), ONE)\n while (JSBI.lessThan(x, z)) {\n z = x\n x = JSBI.divide(JSBI.add(JSBI.divide(value, x), x), TWO)\n }\n return z\n}\n"],"names":["ChainId","SUPPORTED_CHAINS","MAINNET","OPTIMISM","OPTIMISM_GOERLI","OPTIMISM_SEPOLIA","ARBITRUM_ONE","ARBITRUM_GOERLI","ARBITRUM_SEPOLIA","POLYGON","POLYGON_MUMBAI","GOERLI","SEPOLIA","CELO_ALFAJORES","CELO","BNB","AVALANCHE","BASE","BASE_GOERLI","BASE_SEPOLIA","ZORA","ZORA_SEPOLIA","ROOTSTOCK","BLAST","ZKSYNC","WORLDCHAIN","UNICHAIN_SEPOLIA","UNICHAIN","MONAD_TESTNET","SONEIUM","MONAD","BLOCKDAG_AWAKENING","NativeCurrencyName","DEFAULT_NETWORKS","constructSameAddressMap","address","additionalNetworks","concat","reduce","memo","chainId","UNI_ADDRESSES","UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS","V2_FACTORY_ADDRESS","V2_FACTORY_ADDRESSES","_V2_FACTORY_ADDRESSES","V2_ROUTER_ADDRESS","V2_ROUTER_ADDRESSES","_V2_ROUTER_ADDRESSES","DEFAULT_ADDRESSES","v3CoreFactoryAddress","multicallAddress","quoterAddress","v3MigratorAddress","nonfungiblePositionManagerAddress","MAINNET_ADDRESSES","_extends","mixedRouteQuoterV1Address","v4PoolManagerAddress","v4PositionManagerAddress","v4StateView","v4QuoterAddress","GOERLI_ADDRESSES","OPTIMISM_ADDRESSES","ARBITRUM_ONE_ADDRESSES","tickLensAddress","POLYGON_ADDRESSES","CELO_ADDRESSES","BNB_ADDRESSES","swapRouter02Address","OPTIMISM_GOERLI_ADDRESSES","OPTIMISM_SEPOLIA_ADDRESSES","ARBITRUM_GOERLI_ADDRESSES","ARBITRUM_SEPOLIA_ADDRESSES","SEPOLIA_ADDRESSES","mixedRouteQuoterV2Address","AVALANCHE_ADDRESSES","BASE_ADDRESSES","BASE_GOERLI_ADDRESSES","BASE_SEPOLIA_ADDRESSES","ZORA_ADDRESSES","ZORA_SEPOLIA_ADDRESSES","ROOTSTOCK_ADDRESSES","BLAST_ADDRESSES","ZKSYNC_ADDRESSES","WORLDCHAIN_ADDRESSES","UNICHAIN_SEPOLIA_ADDRESSES","UNICHAIN_ADDRESSES","MONAD_TESTNET_ADDRESSES","MONAD_ADDRESSES","SONEIUM_ADDRESSES","BLOCKDAG_AWAKENING_ADDRESSES","CHAIN_TO_ADDRESSES_MAP","_CHAIN_TO_ADDRESSES_M","V3_CORE_FACTORY_ADDRESSES","V3_MIGRATOR_ADDRESSES","MULTICALL_ADDRESSES","GOVERNANCE_ALPHA_V0_ADDRESSES","GOVERNANCE_ALPHA_V1_ADDRESSES","_GOVERNANCE_ALPHA_V1_","GOVERNANCE_BRAVO_ADDRESSES","_GOVERNANCE_BRAVO_ADD","TIMELOCK_ADDRESSES","MERKLE_DISTRIBUTOR_ADDRESS","_MERKLE_DISTRIBUTOR_A","ARGENT_WALLET_DETECTOR_ADDRESS","_ARGENT_WALLET_DETECT","QUOTER_ADDRESSES","NONFUNGIBLE_POSITION_MANAGER_ADDRESSES","ENS_REGISTRAR_ADDRESSES","SOCKS_CONTROLLER_ADDRESSES","_SOCKS_CONTROLLER_ADD","TICK_LENS_ADDRESSES","MIXED_ROUTE_QUOTER_V1_ADDRESSES","SWAP_ROUTER_02_ADDRESSES","includes","_CHAIN_TO_ADDRESSES_M2","id","TradeType","Rounding","MaxUint256","JSBI","BigInt","Decimal","toFormat","_Decimal","Big","_Big","toSignificantRounding","_toSignificantRoundin","ROUND_DOWN","ROUND_HALF_UP","ROUND_UP","toFixedRounding","_toFixedRounding","Fraction","numerator","denominator","tryParseFraction","fractionish","Error","_proto","prototype","invert","add","other","otherParsed","equal","multiply","subtract","lessThan","equalTo","greaterThan","divide","toSignificant","significantDigits","format","rounding","groupSeparator","Number","isInteger","process","env","NODE_ENV","invariant","set","precision","quotient","toString","div","toSignificantDigits","decimalPlaces","toFixed","DP","RM","_createClass","key","get","remainder","CurrencyAmount","_Fraction","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","_inheritsLoose","fromRawAmount","rawAmount","fromFractionalAmount","equals","added","subtracted","multiplied","divided","toExact","isToken","wrapped","ONE_HUNDRED","toPercent","fraction","Percent","Price","baseCurrency","quoteCurrency","_len","arguments","length","args","Array","_key","result","quoteAmount","baseAmount","_ref","scalar","quote","currencyAmount","adjustedForDecimals","BaseCurrency","symbol","name","isSafeInteger","NativeCurrency","_BaseCurrency","validateAndParseAddress","getAddress","error","startsWith0xLen42HexRegex","checkValidAddress","test","Token","bypassChecksum","buyFeeBps","sellFeeBps","gte","BigNumber","from","toLowerCase","sortsBefore","WETH9","Ether","_NativeCurrency","onChain","_this$_etherCache$cha","_etherCache","isNative","weth9","computePriceImpact","midPrice","inputAmount","outputAmount","quotedOutputAmount","priceImpact","computeZksyncCreate2Address","sender","bytecodeHash","salt","input","prefix","keccak256","toUtf8Bytes","inputHash","addressBytes","hexZeroPad","slice","sortedInsert","items","maxSize","comparator","push","isFull","lo","hi","mid","splice","pop","MAX_SAFE_INTEGER","ZERO","ONE","TWO","sqrt","value","greaterThanOrEqual","Math","floor","toNumber","z","x"],"mappings":"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"} \ No newline at end of file diff --git a/sdks/sdk-core/package.json b/sdks/sdk-core/package.json index 445a3b1fb..facbcd19d 100644 --- a/sdks/sdk-core/package.json +++ b/sdks/sdk-core/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/sdk-core", + "name": "@maxosllc/sdk-core", "description": "⚒️ An SDK for building applications on top of Uniswap V3", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.2", "keywords": [ "uniswap", "ethereum" @@ -53,36 +53,6 @@ "singleQuote": true }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" } } diff --git a/sdks/sdk-core/src/chains.ts b/sdks/sdk-core/src/chains.ts index 0ca3f1bcc..4706d2cdb 100644 --- a/sdks/sdk-core/src/chains.ts +++ b/sdks/sdk-core/src/chains.ts @@ -77,4 +77,5 @@ export enum NativeCurrencyName { BNB = 'BNB', AVAX = 'AVAX', ROOTSTOCK = 'RBTC', + BDAG = 'BDAG', } diff --git a/sdks/uniswapx-sdk/src/contracts/ERC1967Proxy.ts b/sdks/uniswapx-sdk/src/contracts/ERC1967Proxy.ts index 61b452aa7..63491b040 100644 --- a/sdks/uniswapx-sdk/src/contracts/ERC1967Proxy.ts +++ b/sdks/uniswapx-sdk/src/contracts/ERC1967Proxy.ts @@ -16,37 +16,12 @@ export interface ERC1967ProxyInterface extends utils.Interface { functions: {}; events: { - "AdminChanged(address,address)": EventFragment; - "BeaconUpgraded(address)": EventFragment; "Upgraded(address)": EventFragment; }; - getEvent(nameOrSignatureOrTopic: "AdminChanged"): EventFragment; - getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment; getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment; } -export interface AdminChangedEventObject { - previousAdmin: string; - newAdmin: string; -} -export type AdminChangedEvent = TypedEvent< - [string, string], - AdminChangedEventObject ->; - -export type AdminChangedEventFilter = TypedEventFilter; - -export interface BeaconUpgradedEventObject { - beacon: string; -} -export type BeaconUpgradedEvent = TypedEvent< - [string], - BeaconUpgradedEventObject ->; - -export type BeaconUpgradedEventFilter = TypedEventFilter; - export interface UpgradedEventObject { implementation: string; } @@ -85,22 +60,6 @@ export interface ERC1967Proxy extends BaseContract { callStatic: {}; filters: { - "AdminChanged(address,address)"( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - AdminChanged( - previousAdmin?: null, - newAdmin?: null - ): AdminChangedEventFilter; - - "BeaconUpgraded(address)"( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - BeaconUpgraded( - beacon?: PromiseOrValue | null - ): BeaconUpgradedEventFilter; - "Upgraded(address)"( implementation?: PromiseOrValue | null ): UpgradedEventFilter; diff --git a/sdks/uniswapx-sdk/src/contracts/MockSuperstateTokenV4.ts b/sdks/uniswapx-sdk/src/contracts/MockSuperstateTokenV4.ts new file mode 100644 index 000000000..8a2c7565f --- /dev/null +++ b/sdks/uniswapx-sdk/src/contracts/MockSuperstateTokenV4.ts @@ -0,0 +1,143 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumber, + BytesLike, + CallOverrides, + ContractTransaction, + Overrides, + PopulatedTransaction, + Signer, + utils, +} from "ethers"; +import type { FunctionFragment, Result } from "@ethersproject/abi"; +import type { Listener, Provider } from "@ethersproject/providers"; +import type { + TypedEventFilter, + TypedEvent, + TypedListener, + OnEvent, + PromiseOrValue, +} from "./common"; + +export interface MockSuperstateTokenV4Interface extends utils.Interface { + functions: { + "isAllowed(address)": FunctionFragment; + "setIsAllowed(address,bool)": FunctionFragment; + }; + + getFunction( + nameOrSignatureOrTopic: "isAllowed" | "setIsAllowed" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "isAllowed", + values: [PromiseOrValue] + ): string; + encodeFunctionData( + functionFragment: "setIsAllowed", + values: [PromiseOrValue, PromiseOrValue] + ): string; + + decodeFunctionResult(functionFragment: "isAllowed", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "setIsAllowed", + data: BytesLike + ): Result; + + events: {}; +} + +export interface MockSuperstateTokenV4 extends BaseContract { + connect(signerOrProvider: Signer | Provider | string): this; + attach(addressOrName: string): this; + deployed(): Promise; + + interface: MockSuperstateTokenV4Interface; + + queryFilter( + event: TypedEventFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>; + + listeners( + eventFilter?: TypedEventFilter + ): Array>; + listeners(eventName?: string): Array; + removeAllListeners( + eventFilter: TypedEventFilter + ): this; + removeAllListeners(eventName?: string): this; + off: OnEvent; + on: OnEvent; + once: OnEvent; + removeListener: OnEvent; + + functions: { + isAllowed( + addr: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[boolean]>; + + setIsAllowed( + addr: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + }; + + isAllowed( + addr: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setIsAllowed( + addr: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + + callStatic: { + isAllowed( + addr: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setIsAllowed( + addr: PromiseOrValue, + value: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + }; + + filters: {}; + + estimateGas: { + isAllowed( + addr: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setIsAllowed( + addr: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + }; + + populateTransaction: { + isAllowed( + addr: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + + setIsAllowed( + addr: PromiseOrValue, + value: PromiseOrValue, + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise; + }; +} diff --git a/sdks/uniswapx-sdk/src/contracts/factories/ERC1967Proxy__factory.ts b/sdks/uniswapx-sdk/src/contracts/factories/ERC1967Proxy__factory.ts index 7c5864433..42f775425 100644 --- a/sdks/uniswapx-sdk/src/contracts/factories/ERC1967Proxy__factory.ts +++ b/sdks/uniswapx-sdk/src/contracts/factories/ERC1967Proxy__factory.ts @@ -1,89 +1,132 @@ /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ - -import { Contract, Signer, utils } from "ethers"; -import type { Provider } from "@ethersproject/providers"; +import { + Signer, + utils, + Contract, + ContractFactory, + PayableOverrides, + BytesLike, +} from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; import type { ERC1967Proxy, ERC1967ProxyInterface } from "../ERC1967Proxy"; const _abi = [ { + type: "constructor", inputs: [ { - internalType: "address", - name: "_logic", + name: "implementation", type: "address", - }, - { internalType: "address", - name: "admin_", - type: "address", }, { - internalType: "bytes", name: "_data", type: "bytes", + internalType: "bytes", }, ], stateMutability: "payable", - type: "constructor", }, { - anonymous: false, + type: "fallback", + stateMutability: "payable", + }, + { + type: "event", + name: "Upgraded", inputs: [ { - indexed: false, - internalType: "address", - name: "previousAdmin", + name: "implementation", type: "address", - }, - { - indexed: false, + indexed: true, internalType: "address", - name: "newAdmin", - type: "address", }, ], - name: "AdminChanged", - type: "event", + anonymous: false, }, { - anonymous: false, + type: "error", + name: "AddressEmptyCode", inputs: [ { - indexed: true, - internalType: "address", - name: "beacon", + name: "target", type: "address", + internalType: "address", }, ], - name: "BeaconUpgraded", - type: "event", }, { - anonymous: false, + type: "error", + name: "ERC1967InvalidImplementation", inputs: [ { - indexed: true, - internalType: "address", name: "implementation", type: "address", + internalType: "address", }, ], - name: "Upgraded", - type: "event", }, { - stateMutability: "payable", - type: "fallback", + type: "error", + name: "ERC1967NonPayable", + inputs: [], }, { - stateMutability: "payable", - type: "receive", + type: "error", + name: "FailedCall", + inputs: [], }, ] as const; -export class ERC1967Proxy__factory { +const _bytecode = + "0x60806040526040516103cf3803806103cf8339810160408190526100229161023b565b61002c8282610033565b5050610320565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051610128919061030a565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020e57805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5f6040838503121561024c575f5ffd5b82516001600160a01b0381168114610262575f5ffd5b60208401519092506001600160401b0381111561027d575f5ffd5b8301601f8101851361028d575f5ffd5b80516001600160401b038111156102a6576102a6610227565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102d4576102d4610227565b6040528181528282016020018710156102eb575f5ffd5b8160208401602083015e5f602083830101528093505050509250929050565b5f82518060208501845e5f920191825250919050565b60a38061032c5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f5f375f5f365f845af43d5f5f3e8080156069573d5ff35b3d5ffdfea264697066735822122070f5897eb9502f578ed8893cbd4eca36ab9328296f3f7f6d7987e943af8ff20264736f6c634300081b0033"; + +type ERC1967ProxyConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC1967ProxyConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC1967Proxy__factory extends ContractFactory { + constructor(...args: ERC1967ProxyConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + implementation: PromiseOrValue, + _data: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy( + implementation, + _data, + overrides || {} + ) as Promise; + } + override getDeployTransaction( + implementation: PromiseOrValue, + _data: PromiseOrValue, + overrides?: PayableOverrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(implementation, _data, overrides || {}); + } + override attach(address: string): ERC1967Proxy { + return super.attach(address) as ERC1967Proxy; + } + override connect(signer: Signer): ERC1967Proxy__factory { + return super.connect(signer) as ERC1967Proxy__factory; + } + + static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): ERC1967ProxyInterface { return new utils.Interface(_abi) as ERC1967ProxyInterface; diff --git a/sdks/uniswapx-sdk/src/contracts/factories/MockSuperstateTokenV4__factory.ts b/sdks/uniswapx-sdk/src/contracts/factories/MockSuperstateTokenV4__factory.ts new file mode 100644 index 000000000..5f269f38e --- /dev/null +++ b/sdks/uniswapx-sdk/src/contracts/factories/MockSuperstateTokenV4__factory.ts @@ -0,0 +1,104 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; +import type { Provider, TransactionRequest } from "@ethersproject/providers"; +import type { PromiseOrValue } from "../common"; +import type { + MockSuperstateTokenV4, + MockSuperstateTokenV4Interface, +} from "../MockSuperstateTokenV4"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + ], + name: "isAllowed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "addr", + type: "address", + }, + { + internalType: "bool", + name: "value", + type: "bool", + }, + ], + name: "setIsAllowed", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b5061029e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063babcc5391461003b578063c2b7c5fc1461006b575b600080fd5b61005560048036038101906100509190610199565b610087565b60405161006291906101e1565b60405180910390f35b61008560048036038101906100809190610228565b6100dc565b005b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101668261013b565b9050919050565b6101768161015b565b811461018157600080fd5b50565b6000813590506101938161016d565b92915050565b6000602082840312156101af576101ae610136565b5b60006101bd84828501610184565b91505092915050565b60008115159050919050565b6101db816101c6565b82525050565b60006020820190506101f660008301846101d2565b92915050565b610205816101c6565b811461021057600080fd5b50565b600081359050610222816101fc565b92915050565b6000806040838503121561023f5761023e610136565b5b600061024d85828601610184565b925050602061025e85828601610213565b915050925092905056fea264697066735822122091293298b8d47f87b894ec1112c21a94c2b5a1e71f2acbbf6529d1795b2f275f64736f6c63430008100033"; + +type MockSuperstateTokenV4ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MockSuperstateTokenV4ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class MockSuperstateTokenV4__factory extends ContractFactory { + constructor(...args: MockSuperstateTokenV4ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override deploy( + overrides?: Overrides & { from?: PromiseOrValue } + ): Promise { + return super.deploy(overrides || {}) as Promise; + } + override getDeployTransaction( + overrides?: Overrides & { from?: PromiseOrValue } + ): TransactionRequest { + return super.getDeployTransaction(overrides || {}); + } + override attach(address: string): MockSuperstateTokenV4 { + return super.attach(address) as MockSuperstateTokenV4; + } + override connect(signer: Signer): MockSuperstateTokenV4__factory { + return super.connect(signer) as MockSuperstateTokenV4__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MockSuperstateTokenV4Interface { + return new utils.Interface(_abi) as MockSuperstateTokenV4Interface; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockSuperstateTokenV4 { + return new Contract( + address, + _abi, + signerOrProvider + ) as MockSuperstateTokenV4; + } +} diff --git a/sdks/uniswapx-sdk/src/contracts/factories/index.ts b/sdks/uniswapx-sdk/src/contracts/factories/index.ts index c2a226742..f33e59be5 100644 --- a/sdks/uniswapx-sdk/src/contracts/factories/index.ts +++ b/sdks/uniswapx-sdk/src/contracts/factories/index.ts @@ -8,6 +8,7 @@ export { ExclusiveFillerValidation__factory } from "./ExclusiveFillerValidation_ export { ISuperstateTokenV4__factory } from "./ISuperstateTokenV4__factory"; export { MockDSTokenInterface__factory } from "./MockDSTokenInterface__factory"; export { MockERC20__factory } from "./MockERC20__factory"; +export { MockSuperstateTokenV4__factory } from "./MockSuperstateTokenV4__factory"; export { OrderQuoter__factory } from "./OrderQuoter__factory"; export { Permit2__factory } from "./Permit2__factory"; export { PriorityOrderReactor__factory } from "./PriorityOrderReactor__factory"; diff --git a/sdks/uniswapx-sdk/src/contracts/index.ts b/sdks/uniswapx-sdk/src/contracts/index.ts index 58f81b134..7e7d41bbf 100644 --- a/sdks/uniswapx-sdk/src/contracts/index.ts +++ b/sdks/uniswapx-sdk/src/contracts/index.ts @@ -8,6 +8,7 @@ export type { ExclusiveFillerValidation } from "./ExclusiveFillerValidation"; export type { ISuperstateTokenV4 } from "./ISuperstateTokenV4"; export type { MockDSTokenInterface } from "./MockDSTokenInterface"; export type { MockERC20 } from "./MockERC20"; +export type { MockSuperstateTokenV4 } from "./MockSuperstateTokenV4"; export type { OrderQuoter } from "./OrderQuoter"; export type { Permit2 } from "./Permit2"; export type { PriorityOrderReactor } from "./PriorityOrderReactor"; @@ -26,6 +27,7 @@ export { ExclusiveFillerValidation__factory } from "./factories/ExclusiveFillerV export { ISuperstateTokenV4__factory } from "./factories/ISuperstateTokenV4__factory"; export { MockDSTokenInterface__factory } from "./factories/MockDSTokenInterface__factory"; export { MockERC20__factory } from "./factories/MockERC20__factory"; +export { MockSuperstateTokenV4__factory } from "./factories/MockSuperstateTokenV4__factory"; export { OrderQuoter__factory } from "./factories/OrderQuoter__factory"; export { Permit2__factory } from "./factories/Permit2__factory"; export { PriorityOrderReactor__factory } from "./factories/PriorityOrderReactor__factory"; diff --git a/sdks/universal-router-sdk/README.md b/sdks/universal-router-sdk/README.md index 08b6ce4a5..ab6a36d69 100644 --- a/sdks/universal-router-sdk/README.md +++ b/sdks/universal-router-sdk/README.md @@ -7,10 +7,10 @@ Install latest version of universal-router-sdk. Then import the corresponding Tr ### Trading on Uniswap warning: `swapERC20CallParameters()` to be deprecated in favor of `swapCallParameters()` ```typescript -import { TradeType } from '@uniswap/sdk-core' -import { Trade as V2TradeSDK } from '@uniswap/v2-sdk' -import { Trade as V3TradeSDK } from '@uniswap/v3-sdk' -import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@uniswap/router-sdk' +import { TradeType } from '@maxosllc/sdk-core' +import { Trade as V2TradeSDK } from '@maxosllc/v2-sdk' +import { Trade as V3TradeSDK } from '@maxosllc/v3-sdk' +import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@maxosllc/router-sdk' const options = { slippageTolerance, recipient } const routerTrade = new RouterTrade({ v2Routes, v3Routes, mixedRoutes, tradeType: TradeType.EXACT_INPUT }) diff --git a/sdks/universal-router-sdk/package.json b/sdks/universal-router-sdk/package.json index fb2a82672..6e6b679f3 100644 --- a/sdks/universal-router-sdk/package.json +++ b/sdks/universal-router-sdk/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/universal-router-sdk", + "name": "@maxosllc/universal-router-sdk", "description": "sdk for integrating with the Universal Router contracts", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.2", "keywords": [ "uniswap", "ethereum" @@ -29,16 +29,16 @@ "test:hardhat": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' hardhat test" }, "dependencies": { + "@maxosllc/router-sdk": "0.0.2", + "@maxosllc/sdk-core": "0.0.2", + "@maxosllc/v2-sdk": "0.0.2", + "@maxosllc/v3-sdk": "0.0.3", + "@maxosllc/v4-sdk": "0.0.2", "@openzeppelin/contracts": "4.7.0", "@uniswap/permit2-sdk": "^1.3.0", - "@uniswap/router-sdk": "^2.1.0", - "@uniswap/sdk-core": "^7.8.0", "@uniswap/universal-router": "2.0.0-beta.2", "@uniswap/v2-core": "^1.0.1", - "@uniswap/v2-sdk": "^4.16.0", "@uniswap/v3-core": "1.0.0", - "@uniswap/v3-sdk": "^3.26.0", - "@uniswap/v4-sdk": "^1.22.0", "bignumber.js": "^9.0.2", "ethers": "^5.7.0" }, @@ -65,37 +65,7 @@ "trailingComma": "es5" }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" }, "installConfig": { "hoistingLimits": "workspaces" diff --git a/sdks/universal-router-sdk/src/entities/actions/uniswap.ts b/sdks/universal-router-sdk/src/entities/actions/uniswap.ts index b7e82fd0d..3574020a9 100644 --- a/sdks/universal-router-sdk/src/entities/actions/uniswap.ts +++ b/sdks/universal-router-sdk/src/entities/actions/uniswap.ts @@ -1,6 +1,6 @@ import { RoutePlanner, CommandType } from '../../utils/routerCommands' -import { Trade as V2Trade, Pair } from '@uniswap/v2-sdk' -import { Trade as V3Trade, Pool as V3Pool, encodeRouteToPath } from '@uniswap/v3-sdk' +import { Trade as V2Trade, Pair } from '@maxosllc/v2-sdk' +import { Trade as V3Trade, Pool as V3Pool, encodeRouteToPath } from '@maxosllc/v3-sdk' import { Route as V4Route, Trade as V4Trade, @@ -8,13 +8,12 @@ import { V4Planner, encodeRouteToPath as encodeV4RouteToPath, Actions, -} from '@uniswap/v4-sdk' +} from '@maxosllc/v4-sdk' import { Trade as RouterTrade, MixedRouteTrade, Protocol, IRoute, - RouteV2, RouteV3, MixedRouteSDK, MixedRoute, @@ -22,16 +21,16 @@ import { getOutputOfPools, encodeMixedRouteToPath, partitionMixedRouteByProtocol, -} from '@uniswap/router-sdk' +} from '@maxosllc/router-sdk' import { Permit2Permit } from '../../utils/inputTokens' import { getPathCurrency } from '../../utils/pathCurrency' -import { Currency, TradeType, Token, CurrencyAmount, Percent } from '@uniswap/sdk-core' +import { Currency, TradeType, Token, CurrencyAmount, Percent } from '@maxosllc/sdk-core' import { Command, RouterActionType, TradeConfig } from '../Command' import { SENDER_AS_RECIPIENT, ROUTER_AS_RECIPIENT, CONTRACT_BALANCE, ETH_ADDRESS } from '../../utils/constants' import { getCurrencyAddress } from '../../utils/getCurrencyAddress' import { encodeFeeBips } from '../../utils/numbers' import { BigNumber, BigNumberish } from 'ethers' -import { TPool } from '@uniswap/router-sdk' +import { TPool } from '@maxosllc/router-sdk' export type FlatFeeOptions = { amount: BigNumberish @@ -287,11 +286,12 @@ function addV2Swap( routerMustCustody: boolean ): void { const trade = new V2Trade( - route as RouteV2, - tradeType == TradeType.EXACT_INPUT ? inputAmount : outputAmount, + route as any, + (tradeType == TradeType.EXACT_INPUT ? inputAmount : outputAmount) as CurrencyAmount, tradeType ) + if (tradeType == TradeType.EXACT_INPUT) { planner.addCommand(CommandType.V2_SWAP_EXACT_IN, [ // if native, we have to unwrap so keep in the router for now @@ -505,3 +505,4 @@ function riskOfPartialFill(trade: RouterTrade): b function hasFeeOption(swapOptions: SwapOptions): boolean { return !!swapOptions.fee || !!swapOptions.flatFee } + diff --git a/sdks/universal-router-sdk/src/swapRouter.ts b/sdks/universal-router-sdk/src/swapRouter.ts index 31a9a1d17..e664f1abb 100644 --- a/sdks/universal-router-sdk/src/swapRouter.ts +++ b/sdks/universal-router-sdk/src/swapRouter.ts @@ -8,7 +8,7 @@ import { Position as V3Position, NonfungiblePositionManager as V3PositionManager, RemoveLiquidityOptions as V3RemoveLiquidityOptions, -} from '@uniswap/v3-sdk' +} from '@maxosllc/v3-sdk' import { Position as V4Position, V4PositionManager, @@ -16,9 +16,9 @@ import { MintOptions, Pool as V4Pool, PoolKey, -} from '@uniswap/v4-sdk' -import { Trade as RouterTrade } from '@uniswap/router-sdk' -import { Currency, TradeType, Percent, CHAIN_TO_ADDRESSES_MAP, SupportedChainsType } from '@uniswap/sdk-core' +} from '@maxosllc/v4-sdk' +import { Trade as RouterTrade } from '@maxosllc/router-sdk' +import { Currency, TradeType, Percent, CHAIN_TO_ADDRESSES_MAP, SupportedChainsType } from '@maxosllc/sdk-core' import { UniswapTrade, SwapOptions } from './entities/actions/uniswap' import { RoutePlanner, CommandType } from './utils/routerCommands' import { encodePermit, encodeV3PositionPermit } from './utils/inputTokens' @@ -93,7 +93,7 @@ export abstract class SwapRouter { if (v4Pool.currency0.isNative) { invariant( (v4Pool.currency0.wrapped.equals(v3Token0) && v4Pool.currency1.equals(v3Token1)) || - (v4Pool.currency0.wrapped.equals(v3Token1) && v4Pool.currency1.equals(v3Token0)), + (v4Pool.currency0.wrapped.equals(v3Token1) && v4Pool.currency1.equals(v3Token0)), 'TOKEN_MISMATCH' ) } else { @@ -155,8 +155,8 @@ export abstract class SwapRouter { const selector = v3Call.slice(0, 10) invariant( selector == V3PositionManager.INTERFACE.getSighash('collect') || - selector == V3PositionManager.INTERFACE.getSighash('decreaseLiquidity') || - selector == V3PositionManager.INTERFACE.getSighash('burn'), + selector == V3PositionManager.INTERFACE.getSighash('decreaseLiquidity') || + selector == V3PositionManager.INTERFACE.getSighash('burn'), 'INVALID_V3_CALL: ' + selector ) planner.addCommand(CommandType.V3_POSITION_MANAGER_CALL, [v3Call]) diff --git a/sdks/universal-router-sdk/src/utils/commandParser.ts b/sdks/universal-router-sdk/src/utils/commandParser.ts index 485b7e73d..32e987ddc 100644 --- a/sdks/universal-router-sdk/src/utils/commandParser.ts +++ b/sdks/universal-router-sdk/src/utils/commandParser.ts @@ -1,7 +1,7 @@ import { ethers } from 'ethers' import UniversalRouter from '@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json' import { Interface } from '@ethersproject/abi' -import { V4BaseActionsParser, V4RouterAction } from '@uniswap/v4-sdk' +import { V4BaseActionsParser, V4RouterAction } from '@maxosllc/v4-sdk' import { CommandType, CommandDefinition, COMMAND_DEFINITION, Subparser, Parser } from '../utils/routerCommands' export type Param = { diff --git a/sdks/universal-router-sdk/src/utils/getCurrencyAddress.ts b/sdks/universal-router-sdk/src/utils/getCurrencyAddress.ts index 9c215927e..1788a762e 100644 --- a/sdks/universal-router-sdk/src/utils/getCurrencyAddress.ts +++ b/sdks/universal-router-sdk/src/utils/getCurrencyAddress.ts @@ -1,4 +1,4 @@ -import { Currency } from '@uniswap/sdk-core' +import { Currency } from '@maxosllc/sdk-core' import { ETH_ADDRESS } from './constants' export function getCurrencyAddress(currency: Currency): string { diff --git a/sdks/universal-router-sdk/src/utils/inputTokens.ts b/sdks/universal-router-sdk/src/utils/inputTokens.ts index 28a3cf490..9ee37b746 100644 --- a/sdks/universal-router-sdk/src/utils/inputTokens.ts +++ b/sdks/universal-router-sdk/src/utils/inputTokens.ts @@ -1,7 +1,7 @@ import invariant from 'tiny-invariant' import { ethers } from 'ethers' -import { validateAndParseAddress, BigintIsh } from '@uniswap/sdk-core' -import { NFTPermitOptions, NonfungiblePositionManager } from '@uniswap/v3-sdk' +import { validateAndParseAddress, BigintIsh } from '@maxosllc/sdk-core' +import { NFTPermitOptions, NonfungiblePositionManager } from '@maxosllc/v3-sdk' import { PermitSingle } from '@uniswap/permit2-sdk' import { CommandType, RoutePlanner } from './routerCommands' import { ROUTER_AS_RECIPIENT } from './constants' diff --git a/sdks/universal-router-sdk/src/utils/numbers.ts b/sdks/universal-router-sdk/src/utils/numbers.ts index cc8c5fac3..f58548eb8 100644 --- a/sdks/universal-router-sdk/src/utils/numbers.ts +++ b/sdks/universal-router-sdk/src/utils/numbers.ts @@ -1,8 +1,8 @@ import { BigNumber } from 'ethers' import JSBI from 'jsbi' import bn from 'bignumber.js' -import { Percent } from '@uniswap/sdk-core' -import { toHex } from '@uniswap/v3-sdk' +import { Percent } from '@maxosllc/sdk-core' +import { toHex } from '@maxosllc/v3-sdk' export function expandTo18DecimalsBN(n: number): BigNumber { // use bn intermediately to allow decimals in intermediate calculations diff --git a/sdks/universal-router-sdk/src/utils/pathCurrency.ts b/sdks/universal-router-sdk/src/utils/pathCurrency.ts index b69966ea6..f3b2f946a 100644 --- a/sdks/universal-router-sdk/src/utils/pathCurrency.ts +++ b/sdks/universal-router-sdk/src/utils/pathCurrency.ts @@ -1,6 +1,6 @@ -import { Currency, Token } from '@uniswap/sdk-core' -import { Pool as V4Pool } from '@uniswap/v4-sdk' -import { TPool } from '@uniswap/router-sdk' +import { Currency, Token } from '@maxosllc/sdk-core' +import { Pool as V4Pool } from '@maxosllc/v4-sdk' +import { TPool } from '@maxosllc/router-sdk' export function getPathCurrency(currency: Currency, pool: TPool): Currency { // return currency if the currency matches a currency of the pool diff --git a/sdks/universal-router-sdk/src/utils/routerTradeAdapter.ts b/sdks/universal-router-sdk/src/utils/routerTradeAdapter.ts index 9ff459a6c..de86bddd7 100644 --- a/sdks/universal-router-sdk/src/utils/routerTradeAdapter.ts +++ b/sdks/universal-router-sdk/src/utils/routerTradeAdapter.ts @@ -1,8 +1,8 @@ -import { MixedRouteSDK, Trade as RouterTrade } from '@uniswap/router-sdk' -import { Currency, CurrencyAmount, Ether, Token, TradeType } from '@uniswap/sdk-core' -import { Pair, Route as V2Route } from '@uniswap/v2-sdk' -import { Pool as V3Pool, Route as V3Route, FeeAmount } from '@uniswap/v3-sdk' -import { Pool as V4Pool, Route as V4Route } from '@uniswap/v4-sdk' +import { MixedRouteSDK, Trade as RouterTrade } from '@maxosllc/router-sdk' +import { Currency, CurrencyAmount, Ether, Token, TradeType } from '@maxosllc/sdk-core' +import { Pair, Route as V2Route } from '@maxosllc/v2-sdk' +import { Pool as V3Pool, Route as V3Route, FeeAmount } from '@maxosllc/v3-sdk' +import { Pool as V4Pool, Route as V4Route } from '@maxosllc/v4-sdk' import { BigNumber } from 'ethers' import { ETH_ADDRESS, E_ETH_ADDRESS } from './constants' @@ -146,7 +146,7 @@ export class RouterTradeAdapter { : null, mixedRoute: !isOnlyV4 && !isOnlyV3 && !isOnlyV2 - ? new MixedRouteSDK(subRoute.map(RouterTradeAdapter.toPoolOrPair), parsedCurrencyIn, parsedCurrencyOut) + ? new MixedRouteSDK(subRoute.map(RouterTradeAdapter.toPoolOrPair) as any, parsedCurrencyIn, parsedCurrencyOut) : null, inputAmount, outputAmount, @@ -157,28 +157,28 @@ export class RouterTradeAdapter { v2Routes: typedRoutes .filter((route) => route.routev2) .map((route) => ({ - routev2: route.routev2 as V2Route, + routev2: route.routev2 as any, inputAmount: route.inputAmount, outputAmount: route.outputAmount, })), v3Routes: typedRoutes .filter((route) => route.routev3) .map((route) => ({ - routev3: route.routev3 as V3Route, + routev3: route.routev3 as any, inputAmount: route.inputAmount, outputAmount: route.outputAmount, })), v4Routes: typedRoutes .filter((route) => route.routev4) .map((route) => ({ - routev4: route.routev4 as V4Route, + routev4: route.routev4 as any, inputAmount: route.inputAmount, outputAmount: route.outputAmount, })), mixedRoutes: typedRoutes .filter((route) => route.mixedRoute) .map((route) => ({ - mixedRoute: route.mixedRoute as MixedRouteSDK, + mixedRoute: route.mixedRoute as any, inputAmount: route.inputAmount, outputAmount: route.outputAmount, })), diff --git a/sdks/universal-router-sdk/test/forge/writeInterop.ts b/sdks/universal-router-sdk/test/forge/writeInterop.ts index 9b2d8462e..c16e2b54d 100644 --- a/sdks/universal-router-sdk/test/forge/writeInterop.ts +++ b/sdks/universal-router-sdk/test/forge/writeInterop.ts @@ -1,6 +1,6 @@ import fs from 'fs' import { hexToDecimalString } from '../utils/hexToDecimalString' -import { MethodParameters } from '@uniswap/v3-sdk' +import { MethodParameters } from '@maxosllc/v3-sdk' const INTEROP_FILE = './test/forge/interop.json' diff --git a/sdks/universal-router-sdk/test/uniswapTrades.test.ts b/sdks/universal-router-sdk/test/uniswapTrades.test.ts index d87fb3075..cc21b124b 100644 --- a/sdks/universal-router-sdk/test/uniswapTrades.test.ts +++ b/sdks/universal-router-sdk/test/uniswapTrades.test.ts @@ -3,8 +3,8 @@ import JSBI from 'jsbi' import { BigNumber, ethers, utils, Wallet, Signature } from 'ethers' import { expandTo18Decimals } from '../src/utils/numbers' import { SwapRouter, UniswapTrade, FlatFeeOptions } from '../src' -import { MixedRouteTrade, MixedRouteSDK } from '@uniswap/router-sdk' -import { Trade as V2Trade, Pair, Route as RouteV2 } from '@uniswap/v2-sdk' +import { MixedRouteTrade, MixedRouteSDK } from '@maxosllc/router-sdk' +import { Trade as V2Trade, Pair, Route as RouteV2 } from '@maxosllc/v2-sdk' import { Trade as V3Trade, Route as V3Route, @@ -16,8 +16,8 @@ import { TickMath, FeeAmount, NonfungiblePositionManager, -} from '@uniswap/v3-sdk' -import { Pool as V4Pool, Route as V4Route, Trade as V4Trade, Position as V4Position } from '@uniswap/v4-sdk' +} from '@maxosllc/v3-sdk' +import { Pool as V4Pool, Route as V4Route, Trade as V4Trade, Position as V4Position } from '@maxosllc/v4-sdk' import { generatePermitSignature, toInputPermit, makePermit, generateEip2098PermitSignature } from './utils/permit2' import { CHAIN_TO_ADDRESSES_MAP, @@ -29,7 +29,7 @@ import { Percent, Token, TradeType, -} from '@uniswap/sdk-core' +} from '@maxosllc/sdk-core' import { registerFixture } from './forge/writeInterop' import { buildTrade, getUniswapPools, swapOptions, ETHER, DAI, USDC, WETH } from './utils/uniswapData' import { hexToDecimalString } from './utils/hexToDecimalString' diff --git a/sdks/universal-router-sdk/test/utils/commandParser.test.ts b/sdks/universal-router-sdk/test/utils/commandParser.test.ts index 8ffe92abb..21268b0c0 100644 --- a/sdks/universal-router-sdk/test/utils/commandParser.test.ts +++ b/sdks/universal-router-sdk/test/utils/commandParser.test.ts @@ -1,11 +1,11 @@ import { expect } from 'chai' -import { Token, WETH9 } from '@uniswap/sdk-core' -import { encodeSqrtRatioX96, nearestUsableTick, TickMath } from '@uniswap/v3-sdk' +import { Token, WETH9 } from '@maxosllc/sdk-core' +import { encodeSqrtRatioX96, nearestUsableTick, TickMath } from '@maxosllc/v3-sdk' import { ethers, BigNumber } from 'ethers' import { CommandParser, UniversalRouterCall } from '../../src/utils/commandParser' import { RoutePlanner, CommandType } from '../../src/utils/routerCommands' import { SwapRouter } from '../../src/swapRouter' -import { V4Planner, Actions, Pool } from '@uniswap/v4-sdk' +import { V4Planner, Actions, Pool } from '@maxosllc/v4-sdk' const addressOne = '0x0000000000000000000000000000000000000001' const addressTwo = '0x0000000000000000000000000000000000000002' diff --git a/sdks/universal-router-sdk/test/utils/uniswapData.ts b/sdks/universal-router-sdk/test/utils/uniswapData.ts index df701905b..28efcef1c 100644 --- a/sdks/universal-router-sdk/test/utils/uniswapData.ts +++ b/sdks/universal-router-sdk/test/utils/uniswapData.ts @@ -1,7 +1,7 @@ import JSBI from 'jsbi' import { ethers } from 'ethers' -import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@uniswap/router-sdk' -import { Trade as V2Trade, Pair, Route as RouteV2, computePairAddress } from '@uniswap/v2-sdk' +import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@maxosllc/router-sdk' +import { Trade as V2Trade, Pair, Route as RouteV2, computePairAddress } from '@maxosllc/v2-sdk' import { Trade as V3Trade, Pool, @@ -11,14 +11,14 @@ import { TICK_SPACINGS, FeeAmount, Position, -} from '@uniswap/v3-sdk' -import { Pool as V4Pool, Route as RouteV4, Trade as V4Trade, Position as V4Position } from '@uniswap/v4-sdk' +} from '@maxosllc/v3-sdk' +import { Pool as V4Pool, Route as RouteV4, Trade as V4Trade, Position as V4Position } from '@maxosllc/v4-sdk' import { SwapOptions } from '../../src' -import { CurrencyAmount, TradeType, Ether, Token, Percent, Currency } from '@uniswap/sdk-core' +import { CurrencyAmount, TradeType, Ether, Token, Percent, Currency } from '@maxosllc/sdk-core' import IUniswapV3Pool from '@uniswap/v3-core/artifacts/contracts/UniswapV3Pool.sol/UniswapV3Pool.json' import { TEST_RECIPIENT_ADDRESS, ROUTER_ADDRESS } from './addresses' import { MigrateV3ToV4Options } from '../../src/swapRouter' -import { encodeSqrtRatioX96 } from '@uniswap/v3-sdk' +import { encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' const V2_FACTORY = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f' const V2_ABI = [ diff --git a/sdks/v2-sdk/package.json b/sdks/v2-sdk/package.json index 388a46153..bbe2cf6cf 100644 --- a/sdks/v2-sdk/package.json +++ b/sdks/v2-sdk/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/v2-sdk", + "name": "@maxosllc/v2-sdk", "description": "🛠 An SDK for building applications on top of Uniswap V2", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.2", "keywords": [ "uniswap", "ethereum" @@ -26,7 +26,7 @@ "dependencies": { "@ethersproject/address": "^5.0.2", "@ethersproject/solidity": "^5.0.9", - "@uniswap/sdk-core": "^7.8.0", + "@maxosllc/sdk-core": "0.0.2", "tiny-invariant": "^1.1.0", "tiny-warning": "^1.0.3" }, @@ -52,36 +52,6 @@ "singleQuote": true }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" } } diff --git a/sdks/v2-sdk/src/constants.ts b/sdks/v2-sdk/src/constants.ts index 2a7b02e25..1c5634d9c 100644 --- a/sdks/v2-sdk/src/constants.ts +++ b/sdks/v2-sdk/src/constants.ts @@ -1,4 +1,4 @@ -import { Percent, V2_FACTORY_ADDRESSES } from '@uniswap/sdk-core' +import { Percent, V2_FACTORY_ADDRESSES } from '@maxosllc/sdk-core' import JSBI from 'jsbi' /** diff --git a/sdks/v2-sdk/src/entities/entities.test.ts b/sdks/v2-sdk/src/entities/entities.test.ts index 9179f3b8f..165113469 100644 --- a/sdks/v2-sdk/src/entities/entities.test.ts +++ b/sdks/v2-sdk/src/entities/entities.test.ts @@ -1,6 +1,6 @@ import JSBI from 'jsbi' import invariant from 'tiny-invariant' -import { WETH9 as _WETH9, TradeType, Token, CurrencyAmount } from '@uniswap/sdk-core' +import { WETH9 as _WETH9, TradeType, Token, CurrencyAmount } from '@maxosllc/sdk-core' import { Pair, Route, Trade } from '../index' const ADDRESSES = [ diff --git a/sdks/v2-sdk/src/entities/pair.test.ts b/sdks/v2-sdk/src/entities/pair.test.ts index ee4bbb162..8988ecde5 100644 --- a/sdks/v2-sdk/src/entities/pair.test.ts +++ b/sdks/v2-sdk/src/entities/pair.test.ts @@ -1,5 +1,5 @@ import { BigNumber } from '@ethersproject/bignumber' -import { ChainId, CurrencyAmount, Price, Token, V2_FACTORY_ADDRESSES, WETH9 } from '@uniswap/sdk-core' +import { ChainId, CurrencyAmount, Price, Token, V2_FACTORY_ADDRESSES, WETH9 } from '@maxosllc/sdk-core' import { InsufficientInputAmountError } from '../errors' import { computePairAddress, Pair } from './pair' diff --git a/sdks/v2-sdk/src/entities/pair.ts b/sdks/v2-sdk/src/entities/pair.ts index aec39bf61..b2827f9e8 100644 --- a/sdks/v2-sdk/src/entities/pair.ts +++ b/sdks/v2-sdk/src/entities/pair.ts @@ -1,7 +1,7 @@ import { getCreate2Address } from '@ethersproject/address' import { BigNumber } from '@ethersproject/bignumber' import { keccak256, pack } from '@ethersproject/solidity' -import { BigintIsh, CurrencyAmount, Percent, Price, sqrt, Token } from '@uniswap/sdk-core' +import { BigintIsh, CurrencyAmount, Percent, Price, sqrt, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' diff --git a/sdks/v2-sdk/src/entities/route.test.ts b/sdks/v2-sdk/src/entities/route.test.ts index c061f45fa..9eea5325a 100644 --- a/sdks/v2-sdk/src/entities/route.test.ts +++ b/sdks/v2-sdk/src/entities/route.test.ts @@ -1,4 +1,4 @@ -import { Ether, Token, WETH9, CurrencyAmount } from '@uniswap/sdk-core' +import { Ether, Token, WETH9, CurrencyAmount } from '@maxosllc/sdk-core' import { Pair, Route } from './index' describe('Route', () => { diff --git a/sdks/v2-sdk/src/entities/route.ts b/sdks/v2-sdk/src/entities/route.ts index d7701e466..37d4445c1 100644 --- a/sdks/v2-sdk/src/entities/route.ts +++ b/sdks/v2-sdk/src/entities/route.ts @@ -1,5 +1,5 @@ import invariant from 'tiny-invariant' -import { Currency, Price, Token } from '@uniswap/sdk-core' +import { Currency, Price, Token } from '@maxosllc/sdk-core' import { Pair } from './pair' diff --git a/sdks/v2-sdk/src/entities/trade.test.ts b/sdks/v2-sdk/src/entities/trade.test.ts index 048009205..240c5d8f5 100644 --- a/sdks/v2-sdk/src/entities/trade.test.ts +++ b/sdks/v2-sdk/src/entities/trade.test.ts @@ -2,7 +2,7 @@ import { Pair } from './pair' import { Route } from './route' import { Trade } from './trade' import JSBI from 'jsbi' -import { Ether, CurrencyAmount, Percent, Token, TradeType, WETH9, Price } from '@uniswap/sdk-core' +import { Ether, CurrencyAmount, Percent, Token, TradeType, WETH9, Price } from '@maxosllc/sdk-core' describe('Trade', () => { const ETHER = Ether.onChain(1) diff --git a/sdks/v2-sdk/src/entities/trade.ts b/sdks/v2-sdk/src/entities/trade.ts index 8a2e8d68d..926519692 100644 --- a/sdks/v2-sdk/src/entities/trade.ts +++ b/sdks/v2-sdk/src/entities/trade.ts @@ -8,7 +8,7 @@ import { Price, sortedInsert, TradeType, -} from '@uniswap/sdk-core' +} from '@maxosllc/sdk-core' import { ONE, ZERO } from '../constants' import invariant from 'tiny-invariant' diff --git a/sdks/v2-sdk/src/router.test.ts b/sdks/v2-sdk/src/router.test.ts index 720641241..8b118d9e9 100644 --- a/sdks/v2-sdk/src/router.test.ts +++ b/sdks/v2-sdk/src/router.test.ts @@ -2,7 +2,7 @@ import JSBI from 'jsbi' import { Pair, Route, Trade } from './entities' import { Router } from './router' import invariant from 'tiny-invariant' -import { CurrencyAmount, Percent, Ether, Token, WETH9 } from '@uniswap/sdk-core' +import { CurrencyAmount, Percent, Ether, Token, WETH9 } from '@maxosllc/sdk-core' function checkDeadline(deadline: string[] | string): void { expect(typeof deadline).toBe('string') diff --git a/sdks/v2-sdk/src/router.ts b/sdks/v2-sdk/src/router.ts index d38503109..f69b0c136 100644 --- a/sdks/v2-sdk/src/router.ts +++ b/sdks/v2-sdk/src/router.ts @@ -1,4 +1,4 @@ -import { Token, Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress } from '@uniswap/sdk-core' +import { Token, Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress } from '@maxosllc/sdk-core' import { Trade } from './entities' import invariant from 'tiny-invariant' @@ -66,7 +66,7 @@ export abstract class Router { /** * Cannot be constructed. */ - private constructor() {} + private constructor() { } /** * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade. * @param trade to produce call parameters for diff --git a/sdks/v3-sdk/package.json b/sdks/v3-sdk/package.json index 4695ed74c..ae8481ad9 100644 --- a/sdks/v3-sdk/package.json +++ b/sdks/v3-sdk/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/v3-sdk", + "name": "@maxosllc/v3-sdk", "description": "⚒️ An SDK for building applications on top of Uniswap V3", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.3", "keywords": [ "uniswap", "ethereum" @@ -27,7 +27,7 @@ "dependencies": { "@ethersproject/abi": "^5.5.0", "@ethersproject/solidity": "^5.0.9", - "@uniswap/sdk-core": "^7.8.0", + "@maxosllc/sdk-core": "0.0.2", "@uniswap/swap-router-contracts": "^1.3.0", "@uniswap/v3-periphery": "^1.1.1", "@uniswap/v3-staker": "1.0.0", @@ -55,36 +55,6 @@ "singleQuote": true }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" } } diff --git a/sdks/v3-sdk/src/constants.ts b/sdks/v3-sdk/src/constants.ts index 9e2427287..db530ba40 100644 --- a/sdks/v3-sdk/src/constants.ts +++ b/sdks/v3-sdk/src/constants.ts @@ -1,4 +1,4 @@ -import { ChainId } from '@uniswap/sdk-core' +import { ChainId } from '@maxosllc/sdk-core' export const FACTORY_ADDRESS = '0x1F98431c8aD98523631AE4a59f267346ea31F984' diff --git a/sdks/v3-sdk/src/entities/pool.test.ts b/sdks/v3-sdk/src/entities/pool.test.ts index 1644eb36a..c78185263 100644 --- a/sdks/v3-sdk/src/entities/pool.test.ts +++ b/sdks/v3-sdk/src/entities/pool.test.ts @@ -1,4 +1,4 @@ -import { Token, CurrencyAmount, WETH9 } from '@uniswap/sdk-core' +import { Token, CurrencyAmount, WETH9 } from '@maxosllc/sdk-core' import { FeeAmount, TICK_SPACINGS } from '../constants' import { nearestUsableTick } from '../utils/nearestUsableTick' import { TickMath } from '../utils/tickMath' diff --git a/sdks/v3-sdk/src/entities/pool.ts b/sdks/v3-sdk/src/entities/pool.ts index 851ce3373..2ac6c183f 100644 --- a/sdks/v3-sdk/src/entities/pool.ts +++ b/sdks/v3-sdk/src/entities/pool.ts @@ -1,4 +1,4 @@ -import { BigintIsh, CurrencyAmount, Price, Token } from '@uniswap/sdk-core' +import { BigintIsh, CurrencyAmount, Price, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { FACTORY_ADDRESS, FeeAmount, TICK_SPACINGS } from '../constants' diff --git a/sdks/v3-sdk/src/entities/position.test.ts b/sdks/v3-sdk/src/entities/position.test.ts index 75f8d2e3b..b6f9ce8a2 100644 --- a/sdks/v3-sdk/src/entities/position.test.ts +++ b/sdks/v3-sdk/src/entities/position.test.ts @@ -1,4 +1,4 @@ -import { Percent, Token } from '@uniswap/sdk-core' +import { Percent, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { FeeAmount, TICK_SPACINGS } from '../constants' import { encodeSqrtRatioX96 } from '../utils/encodeSqrtRatioX96' diff --git a/sdks/v3-sdk/src/entities/position.ts b/sdks/v3-sdk/src/entities/position.ts index ffe4bad0e..048bf2bf4 100644 --- a/sdks/v3-sdk/src/entities/position.ts +++ b/sdks/v3-sdk/src/entities/position.ts @@ -1,4 +1,4 @@ -import { BigintIsh, MaxUint256, Percent, Price, CurrencyAmount, Token } from '@uniswap/sdk-core' +import { BigintIsh, MaxUint256, Percent, Price, CurrencyAmount, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { ZERO } from '../internalConstants' diff --git a/sdks/v3-sdk/src/entities/route.test.ts b/sdks/v3-sdk/src/entities/route.test.ts index baeb49322..e8ccb3461 100644 --- a/sdks/v3-sdk/src/entities/route.test.ts +++ b/sdks/v3-sdk/src/entities/route.test.ts @@ -1,4 +1,4 @@ -import { Ether, Token, WETH9 } from '@uniswap/sdk-core' +import { Ether, Token, WETH9 } from '@maxosllc/sdk-core' import { FeeAmount } from '../constants' import { encodeSqrtRatioX96 } from '../utils/encodeSqrtRatioX96' import { TickMath } from '../utils/tickMath' diff --git a/sdks/v3-sdk/src/entities/route.ts b/sdks/v3-sdk/src/entities/route.ts index 7b7d6ff8e..ee507bcf6 100644 --- a/sdks/v3-sdk/src/entities/route.ts +++ b/sdks/v3-sdk/src/entities/route.ts @@ -1,6 +1,6 @@ import invariant from 'tiny-invariant' -import { Currency, Price, Token } from '@uniswap/sdk-core' +import { Currency, Price, Token } from '@maxosllc/sdk-core' import { Pool } from './pool' /** diff --git a/sdks/v3-sdk/src/entities/tick.ts b/sdks/v3-sdk/src/entities/tick.ts index 95fbd0a60..0a74c72df 100644 --- a/sdks/v3-sdk/src/entities/tick.ts +++ b/sdks/v3-sdk/src/entities/tick.ts @@ -1,6 +1,6 @@ import JSBI from 'jsbi' import invariant from 'tiny-invariant' -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import { TickMath } from '../utils' export interface TickConstructorArgs { diff --git a/sdks/v3-sdk/src/entities/tickDataProvider.ts b/sdks/v3-sdk/src/entities/tickDataProvider.ts index e121d946a..c1729ec5e 100644 --- a/sdks/v3-sdk/src/entities/tickDataProvider.ts +++ b/sdks/v3-sdk/src/entities/tickDataProvider.ts @@ -1,4 +1,4 @@ -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' /** * Provides information about ticks diff --git a/sdks/v3-sdk/src/entities/tickListDataProvider.ts b/sdks/v3-sdk/src/entities/tickListDataProvider.ts index c226e5ae3..61b809a9c 100644 --- a/sdks/v3-sdk/src/entities/tickListDataProvider.ts +++ b/sdks/v3-sdk/src/entities/tickListDataProvider.ts @@ -1,4 +1,4 @@ -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import { TickList } from '../utils/tickList' import { Tick, TickConstructorArgs } from './tick' import { TickDataProvider } from './tickDataProvider' diff --git a/sdks/v3-sdk/src/entities/trade.test.ts b/sdks/v3-sdk/src/entities/trade.test.ts index b719903fe..c90931b4c 100644 --- a/sdks/v3-sdk/src/entities/trade.test.ts +++ b/sdks/v3-sdk/src/entities/trade.test.ts @@ -1,4 +1,4 @@ -import { CurrencyAmount, Ether, Percent, Price, sqrt, Token, TradeType, WETH9 } from '@uniswap/sdk-core' +import { CurrencyAmount, Ether, Percent, Price, sqrt, Token, TradeType, WETH9 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { FeeAmount, TICK_SPACINGS } from '../constants' import { encodeSqrtRatioX96 } from '../utils/encodeSqrtRatioX96' diff --git a/sdks/v3-sdk/src/entities/trade.ts b/sdks/v3-sdk/src/entities/trade.ts index b2f3677de..0258fab72 100644 --- a/sdks/v3-sdk/src/entities/trade.ts +++ b/sdks/v3-sdk/src/entities/trade.ts @@ -1,4 +1,4 @@ -import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@uniswap/sdk-core' +import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@maxosllc/sdk-core' import invariant from 'tiny-invariant' import { ONE, ZERO } from '../internalConstants' import { Pool } from './pool' diff --git a/sdks/v3-sdk/src/nonfungiblePositionManager.test.ts b/sdks/v3-sdk/src/nonfungiblePositionManager.test.ts index be5400f91..dde80ecfe 100644 --- a/sdks/v3-sdk/src/nonfungiblePositionManager.test.ts +++ b/sdks/v3-sdk/src/nonfungiblePositionManager.test.ts @@ -1,4 +1,4 @@ -import { Percent, Token, CurrencyAmount, WETH9, Ether } from '@uniswap/sdk-core' +import { Percent, Token, CurrencyAmount, WETH9, Ether } from '@maxosllc/sdk-core' import { ethers } from 'ethers' import { FeeAmount, TICK_SPACINGS } from './constants' import { Pool } from './entities/pool' diff --git a/sdks/v3-sdk/src/nonfungiblePositionManager.ts b/sdks/v3-sdk/src/nonfungiblePositionManager.ts index e17815e3e..c86df9c49 100644 --- a/sdks/v3-sdk/src/nonfungiblePositionManager.ts +++ b/sdks/v3-sdk/src/nonfungiblePositionManager.ts @@ -6,7 +6,7 @@ import { validateAndParseAddress, Currency, NativeCurrency, -} from '@uniswap/sdk-core' +} from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { Position } from './entities/position' diff --git a/sdks/v3-sdk/src/payments.test.ts b/sdks/v3-sdk/src/payments.test.ts index 608ac25b2..dd7aff555 100644 --- a/sdks/v3-sdk/src/payments.test.ts +++ b/sdks/v3-sdk/src/payments.test.ts @@ -1,4 +1,4 @@ -import { Percent, Token } from '@uniswap/sdk-core' +import { Percent, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { Payments } from './payments' diff --git a/sdks/v3-sdk/src/payments.ts b/sdks/v3-sdk/src/payments.ts index 6224ef7df..5abc90b7c 100644 --- a/sdks/v3-sdk/src/payments.ts +++ b/sdks/v3-sdk/src/payments.ts @@ -1,7 +1,7 @@ import JSBI from 'jsbi' import { Interface } from '@ethersproject/abi' import IPeripheryPaymentsWithFee from '@uniswap/v3-periphery/artifacts/contracts/interfaces/IPeripheryPaymentsWithFee.sol/IPeripheryPaymentsWithFee.json' -import { Percent, Token, validateAndParseAddress } from '@uniswap/sdk-core' +import { Percent, Token, validateAndParseAddress } from '@maxosllc/sdk-core' import { toHex } from './utils/calldata' export interface FeeOptions { diff --git a/sdks/v3-sdk/src/quoter.test.ts b/sdks/v3-sdk/src/quoter.test.ts index adc7464d8..effd7d352 100644 --- a/sdks/v3-sdk/src/quoter.test.ts +++ b/sdks/v3-sdk/src/quoter.test.ts @@ -1,5 +1,5 @@ import JSBI from 'jsbi' -import { CurrencyAmount, Token, TradeType, WETH9 } from '@uniswap/sdk-core' +import { CurrencyAmount, Token, TradeType, WETH9 } from '@maxosllc/sdk-core' import { FeeAmount, TICK_SPACINGS } from './constants' import { SwapQuoter } from './quoter' import { nearestUsableTick, encodeSqrtRatioX96, TickMath } from './utils' diff --git a/sdks/v3-sdk/src/quoter.ts b/sdks/v3-sdk/src/quoter.ts index 88c2a7d0f..d0a9778d2 100644 --- a/sdks/v3-sdk/src/quoter.ts +++ b/sdks/v3-sdk/src/quoter.ts @@ -1,5 +1,5 @@ import { Interface } from '@ethersproject/abi' -import { BigintIsh, Currency, CurrencyAmount, TradeType } from '@uniswap/sdk-core' +import { BigintIsh, Currency, CurrencyAmount, TradeType } from '@maxosllc/sdk-core' import { encodeRouteToPath, MethodParameters, toHex } from './utils' import IQuoter from '@uniswap/v3-periphery/artifacts/contracts/lens/Quoter.sol/Quoter.json' import IQuoterV2 from '@uniswap/swap-router-contracts/artifacts/contracts/lens/QuoterV2.sol/QuoterV2.json' diff --git a/sdks/v3-sdk/src/selfPermit.test.ts b/sdks/v3-sdk/src/selfPermit.test.ts index 5c8e56bec..981500a1b 100644 --- a/sdks/v3-sdk/src/selfPermit.test.ts +++ b/sdks/v3-sdk/src/selfPermit.test.ts @@ -1,4 +1,4 @@ -import { Token } from '@uniswap/sdk-core' +import { Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { AllowedPermitArguments, SelfPermit, StandardPermitArguments } from './selfPermit' diff --git a/sdks/v3-sdk/src/selfPermit.ts b/sdks/v3-sdk/src/selfPermit.ts index 99cf9d700..119c3b8fd 100644 --- a/sdks/v3-sdk/src/selfPermit.ts +++ b/sdks/v3-sdk/src/selfPermit.ts @@ -1,4 +1,4 @@ -import { BigintIsh, Token } from '@uniswap/sdk-core' +import { BigintIsh, Token } from '@maxosllc/sdk-core' import { Interface } from '@ethersproject/abi' import ISelfPermit from '@uniswap/v3-periphery/artifacts/contracts/interfaces/ISelfPermit.sol/ISelfPermit.json' import { toHex } from './utils' diff --git a/sdks/v3-sdk/src/staker.test.ts b/sdks/v3-sdk/src/staker.test.ts index 9b4999dfe..0568ea626 100644 --- a/sdks/v3-sdk/src/staker.test.ts +++ b/sdks/v3-sdk/src/staker.test.ts @@ -1,4 +1,4 @@ -import { Token } from '@uniswap/sdk-core' +import { Token } from '@maxosllc/sdk-core' import { FeeAmount } from './constants' import { Pool } from './entities/pool' import { Staker } from './staker' diff --git a/sdks/v3-sdk/src/staker.ts b/sdks/v3-sdk/src/staker.ts index 137e38eb9..854ff86ec 100644 --- a/sdks/v3-sdk/src/staker.ts +++ b/sdks/v3-sdk/src/staker.ts @@ -1,4 +1,4 @@ -import { BigintIsh, Token, validateAndParseAddress } from '@uniswap/sdk-core' +import { BigintIsh, Token, validateAndParseAddress } from '@maxosllc/sdk-core' import { MethodParameters, toHex } from './utils/calldata' import { defaultAbiCoder, Interface } from '@ethersproject/abi' import IUniswapV3Staker from '@uniswap/v3-staker/artifacts/contracts/UniswapV3Staker.sol/UniswapV3Staker.json' diff --git a/sdks/v3-sdk/src/swapRouter.test.ts b/sdks/v3-sdk/src/swapRouter.test.ts index edaab2636..17eddb627 100644 --- a/sdks/v3-sdk/src/swapRouter.test.ts +++ b/sdks/v3-sdk/src/swapRouter.test.ts @@ -1,5 +1,5 @@ import JSBI from 'jsbi' -import { CurrencyAmount, Ether, Percent, Token, TradeType, WETH9 } from '@uniswap/sdk-core' +import { CurrencyAmount, Ether, Percent, Token, TradeType, WETH9 } from '@maxosllc/sdk-core' import { FeeAmount, TICK_SPACINGS } from './constants' import { Pool } from './entities/pool' import { SwapRouter } from './swapRouter' diff --git a/sdks/v3-sdk/src/swapRouter.ts b/sdks/v3-sdk/src/swapRouter.ts index 32dd9b944..071ac2a3e 100644 --- a/sdks/v3-sdk/src/swapRouter.ts +++ b/sdks/v3-sdk/src/swapRouter.ts @@ -1,5 +1,5 @@ import { Interface } from '@ethersproject/abi' -import { BigintIsh, Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress } from '@uniswap/sdk-core' +import { BigintIsh, Currency, CurrencyAmount, Percent, TradeType, validateAndParseAddress } from '@maxosllc/sdk-core' import invariant from 'tiny-invariant' import { Trade } from './entities/trade' import { ADDRESS_ZERO } from './constants' diff --git a/sdks/v3-sdk/src/utils/calldata.ts b/sdks/v3-sdk/src/utils/calldata.ts index 8bcc066ee..426fa4009 100644 --- a/sdks/v3-sdk/src/utils/calldata.ts +++ b/sdks/v3-sdk/src/utils/calldata.ts @@ -1,4 +1,4 @@ -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import JSBI from 'jsbi' /** diff --git a/sdks/v3-sdk/src/utils/computePoolAddress.test.ts b/sdks/v3-sdk/src/utils/computePoolAddress.test.ts index 79e739dd0..27ed6c2b7 100644 --- a/sdks/v3-sdk/src/utils/computePoolAddress.test.ts +++ b/sdks/v3-sdk/src/utils/computePoolAddress.test.ts @@ -1,6 +1,6 @@ import { defaultAbiCoder } from '@ethersproject/abi' -import { Token } from '@uniswap/sdk-core' -import { computeZksyncCreate2Address } from '@uniswap/sdk-core' +import { Token } from '@maxosllc/sdk-core' +import { computeZksyncCreate2Address } from '@maxosllc/sdk-core' import { FeeAmount } from '../constants' import { computePoolAddress } from './computePoolAddress' import { keccak256 as solKeccak256 } from '@ethersproject/solidity' diff --git a/sdks/v3-sdk/src/utils/computePoolAddress.ts b/sdks/v3-sdk/src/utils/computePoolAddress.ts index 2a13a21ba..f7a02f484 100644 --- a/sdks/v3-sdk/src/utils/computePoolAddress.ts +++ b/sdks/v3-sdk/src/utils/computePoolAddress.ts @@ -1,7 +1,7 @@ import { defaultAbiCoder } from '@ethersproject/abi' import { getCreate2Address } from '@ethersproject/address' import { keccak256 } from '@ethersproject/solidity' -import { ChainId, computeZksyncCreate2Address, Token } from '@uniswap/sdk-core' +import { ChainId, computeZksyncCreate2Address, Token } from '@maxosllc/sdk-core' import { FeeAmount, poolInitCodeHash } from '../constants' /** diff --git a/sdks/v3-sdk/src/utils/encodeRouteToPath.test.ts b/sdks/v3-sdk/src/utils/encodeRouteToPath.test.ts index 4c6c4af15..6fa0d10ef 100644 --- a/sdks/v3-sdk/src/utils/encodeRouteToPath.test.ts +++ b/sdks/v3-sdk/src/utils/encodeRouteToPath.test.ts @@ -1,4 +1,4 @@ -import { Ether, Token, WETH9 } from '@uniswap/sdk-core' +import { Ether, Token, WETH9 } from '@maxosllc/sdk-core' import { FeeAmount } from '../constants' import { Pool } from '../entities/pool' import { Route } from '../entities/route' diff --git a/sdks/v3-sdk/src/utils/encodeRouteToPath.ts b/sdks/v3-sdk/src/utils/encodeRouteToPath.ts index 83c64d387..fab5db313 100644 --- a/sdks/v3-sdk/src/utils/encodeRouteToPath.ts +++ b/sdks/v3-sdk/src/utils/encodeRouteToPath.ts @@ -1,5 +1,5 @@ import { pack } from '@ethersproject/solidity' -import { Currency, Token } from '@uniswap/sdk-core' +import { Currency, Token } from '@maxosllc/sdk-core' import { Pool } from '../entities/pool' import { Route } from '../entities/route' diff --git a/sdks/v3-sdk/src/utils/encodeSqrtRatioX96.ts b/sdks/v3-sdk/src/utils/encodeSqrtRatioX96.ts index 4705c3e44..c2f4674eb 100644 --- a/sdks/v3-sdk/src/utils/encodeSqrtRatioX96.ts +++ b/sdks/v3-sdk/src/utils/encodeSqrtRatioX96.ts @@ -1,5 +1,5 @@ import JSBI from 'jsbi' -import { BigintIsh, sqrt } from '@uniswap/sdk-core' +import { BigintIsh, sqrt } from '@maxosllc/sdk-core' /** * Returns the sqrt ratio as a Q64.96 corresponding to a given ratio of amount1 and amount0 diff --git a/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.test.ts b/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.test.ts index 83b0eb4c8..3016d12ec 100644 --- a/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.test.ts +++ b/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.test.ts @@ -1,4 +1,4 @@ -import { MaxUint256 } from '@uniswap/sdk-core' +import { MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { encodeSqrtRatioX96 } from './encodeSqrtRatioX96' import { maxLiquidityForAmounts } from './maxLiquidityForAmounts' diff --git a/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.ts b/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.ts index 598f97563..e7772f917 100644 --- a/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.ts +++ b/sdks/v3-sdk/src/utils/maxLiquidityForAmounts.ts @@ -1,4 +1,4 @@ -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { Q96 } from '../internalConstants' diff --git a/sdks/v3-sdk/src/utils/mostSignificantBit.test.ts b/sdks/v3-sdk/src/utils/mostSignificantBit.test.ts index 15621f981..56150bd0b 100644 --- a/sdks/v3-sdk/src/utils/mostSignificantBit.test.ts +++ b/sdks/v3-sdk/src/utils/mostSignificantBit.test.ts @@ -1,4 +1,4 @@ -import { MaxUint256 } from '@uniswap/sdk-core' +import { MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { ONE } from '../internalConstants' import { mostSignificantBit } from './mostSignificantBit' diff --git a/sdks/v3-sdk/src/utils/mostSignificantBit.ts b/sdks/v3-sdk/src/utils/mostSignificantBit.ts index 208cac6be..1d45236f3 100644 --- a/sdks/v3-sdk/src/utils/mostSignificantBit.ts +++ b/sdks/v3-sdk/src/utils/mostSignificantBit.ts @@ -1,4 +1,4 @@ -import { MaxUint256 } from '@uniswap/sdk-core' +import { MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { ZERO } from '../internalConstants' diff --git a/sdks/v3-sdk/src/utils/priceTickConversions.test.ts b/sdks/v3-sdk/src/utils/priceTickConversions.test.ts index 08f8d442a..b3e7c1558 100644 --- a/sdks/v3-sdk/src/utils/priceTickConversions.test.ts +++ b/sdks/v3-sdk/src/utils/priceTickConversions.test.ts @@ -1,4 +1,4 @@ -import { Price, Token } from '@uniswap/sdk-core' +import { Price, Token } from '@maxosllc/sdk-core' import { tickToPrice } from './index' import { priceToClosestTick } from './priceTickConversions' diff --git a/sdks/v3-sdk/src/utils/priceTickConversions.ts b/sdks/v3-sdk/src/utils/priceTickConversions.ts index 027a056a7..8a6b486e5 100644 --- a/sdks/v3-sdk/src/utils/priceTickConversions.ts +++ b/sdks/v3-sdk/src/utils/priceTickConversions.ts @@ -1,4 +1,4 @@ -import { Price, Token } from '@uniswap/sdk-core' +import { Price, Token } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { Q192 } from '../internalConstants' import { encodeSqrtRatioX96 } from './encodeSqrtRatioX96' diff --git a/sdks/v3-sdk/src/utils/sqrtPriceMath.ts b/sdks/v3-sdk/src/utils/sqrtPriceMath.ts index 2c9af3755..4dc318349 100644 --- a/sdks/v3-sdk/src/utils/sqrtPriceMath.ts +++ b/sdks/v3-sdk/src/utils/sqrtPriceMath.ts @@ -1,4 +1,4 @@ -import { MaxUint256 } from '@uniswap/sdk-core' +import { MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { ONE, ZERO, Q96 } from '../internalConstants' diff --git a/sdks/v3-sdk/src/utils/tickMath.ts b/sdks/v3-sdk/src/utils/tickMath.ts index 71730fe82..77e070af6 100644 --- a/sdks/v3-sdk/src/utils/tickMath.ts +++ b/sdks/v3-sdk/src/utils/tickMath.ts @@ -1,4 +1,4 @@ -import { MaxUint256 } from '@uniswap/sdk-core' +import { MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { ONE, ZERO } from '../internalConstants' diff --git a/sdks/v4-sdk/package.json b/sdks/v4-sdk/package.json index 800fab00d..ff17e15ca 100644 --- a/sdks/v4-sdk/package.json +++ b/sdks/v4-sdk/package.json @@ -1,7 +1,7 @@ { - "name": "@uniswap/v4-sdk", + "name": "@maxosllc/v4-sdk", "description": "⚒️ An SDK for building applications on top of Uniswap V4", - "repository": "https://github.com/Uniswap/sdks.git", + "version": "0.0.2", "keywords": [ "uniswap", "ethereum" @@ -26,8 +26,8 @@ "sideEffects": false, "dependencies": { "@ethersproject/solidity": "^5.0.9", - "@uniswap/sdk-core": "^7.8.0", - "@uniswap/v3-sdk": "3.26.0", + "@maxosllc/sdk-core": "0.0.2", + "@maxosllc/v3-sdk": "0.0.3", "tiny-invariant": "^1.1.0", "tiny-warning": "^1.0.3" }, @@ -64,36 +64,6 @@ "singleQuote": true }, "publishConfig": { - "access": "public", - "provenance": true - }, - "release": { - "extends": "semantic-release-monorepo", - "branches": [ - { - "name": "main", - "prerelease": false - } - ], - "plugins": [ - [ - "@semantic-release/commit-analyzer", - { - "preset": "angular", - "releaseRules": "../../publishing/release-rules.cjs" - } - ], - "@semantic-release/release-notes-generator", - "@semantic-release/npm", - "@semantic-release/github", - [ - "@semantic-release/exec", - { - "successCmd": "git restore yarn.lock && yarn", - "failCmd": "git restore yarn.lock && yarn", - "execCwd": "../.." - } - ] - ] + "access": "public" } } diff --git a/sdks/v4-sdk/src/PositionManager.test.ts b/sdks/v4-sdk/src/PositionManager.test.ts index 8e3cb336e..2fb6f04df 100644 --- a/sdks/v4-sdk/src/PositionManager.test.ts +++ b/sdks/v4-sdk/src/PositionManager.test.ts @@ -1,4 +1,4 @@ -import { Ether, Percent, Token } from '@uniswap/sdk-core' +import { Ether, Percent, Token } from '@maxosllc/sdk-core' import { ethers } from 'ethers' import { EMPTY_BYTES, diff --git a/sdks/v4-sdk/src/PositionManager.ts b/sdks/v4-sdk/src/PositionManager.ts index 869fe3057..56a2c9a15 100644 --- a/sdks/v4-sdk/src/PositionManager.ts +++ b/sdks/v4-sdk/src/PositionManager.ts @@ -1,4 +1,4 @@ -import { BigintIsh, Percent, validateAndParseAddress, NativeCurrency } from '@uniswap/sdk-core' +import { BigintIsh, Percent, validateAndParseAddress, NativeCurrency } from '@maxosllc/sdk-core' import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer' import JSBI from 'jsbi' import { Position } from './entities/position' diff --git a/sdks/v4-sdk/src/entities/pool.test.ts b/sdks/v4-sdk/src/entities/pool.test.ts index 5ad1a600a..7fc21aca8 100644 --- a/sdks/v4-sdk/src/entities/pool.test.ts +++ b/sdks/v4-sdk/src/entities/pool.test.ts @@ -1,7 +1,7 @@ -import { Token, CurrencyAmount, WETH9, Ether, ChainId } from '@uniswap/sdk-core' +import { Token, CurrencyAmount, WETH9, Ether, ChainId } from '@maxosllc/sdk-core' import { Pool, DYNAMIC_FEE_FLAG } from './pool' import JSBI from 'jsbi' -import { nearestUsableTick, encodeSqrtRatioX96, TickMath } from '@uniswap/v3-sdk' +import { nearestUsableTick, encodeSqrtRatioX96, TickMath } from '@maxosllc/v3-sdk' import { ADDRESS_ZERO, FEE_AMOUNT_LOW, diff --git a/sdks/v4-sdk/src/entities/pool.ts b/sdks/v4-sdk/src/entities/pool.ts index 9ddc01361..6946aaad6 100644 --- a/sdks/v4-sdk/src/entities/pool.ts +++ b/sdks/v4-sdk/src/entities/pool.ts @@ -1,6 +1,6 @@ import invariant from 'tiny-invariant' import { keccak256 } from '@ethersproject/solidity' -import { BigintIsh, Currency, CurrencyAmount, Price } from '@uniswap/sdk-core' +import { BigintIsh, Currency, CurrencyAmount, Price } from '@maxosllc/sdk-core' import { v3Swap, NoTickDataProvider, @@ -9,7 +9,7 @@ import { TickDataProvider, TickListDataProvider, TickMath, -} from '@uniswap/v3-sdk' +} from '@maxosllc/v3-sdk' import { defaultAbiCoder, isAddress } from 'ethers/lib/utils' import { sortsBefore } from '../utils/sortsBefore' import { Hook } from '../utils/hook' diff --git a/sdks/v4-sdk/src/entities/position.test.ts b/sdks/v4-sdk/src/entities/position.test.ts index 508dd54db..6ba13f91e 100644 --- a/sdks/v4-sdk/src/entities/position.test.ts +++ b/sdks/v4-sdk/src/entities/position.test.ts @@ -1,10 +1,10 @@ -import { Token } from '@uniswap/sdk-core' +import { Token } from '@maxosllc/sdk-core' import { Pool } from './pool' import { Position } from './position' import { TICK_SPACING_TEN, ADDRESS_ZERO } from '../internalConstants' -import { Percent } from '@uniswap/sdk-core' -import { maxLiquidityForAmounts, nearestUsableTick, TickMath } from '@uniswap/v3-sdk' -import { encodeSqrtRatioX96 } from '@uniswap/v3-sdk' +import { Percent } from '@maxosllc/sdk-core' +import { maxLiquidityForAmounts, nearestUsableTick, TickMath } from '@maxosllc/v3-sdk' +import { encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' describe('Position', () => { const USDC = new Token(1, '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 6, 'USDC', 'USD Coin') diff --git a/sdks/v4-sdk/src/entities/position.ts b/sdks/v4-sdk/src/entities/position.ts index e5c1e4cfc..23287d5a2 100644 --- a/sdks/v4-sdk/src/entities/position.ts +++ b/sdks/v4-sdk/src/entities/position.ts @@ -1,8 +1,8 @@ -import { BigintIsh, Percent, Price, CurrencyAmount, Currency, MaxUint256 } from '@uniswap/sdk-core' +import { BigintIsh, Percent, Price, CurrencyAmount, Currency, MaxUint256 } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import invariant from 'tiny-invariant' import { Pool } from './pool' -import { encodeSqrtRatioX96, maxLiquidityForAmounts, SqrtPriceMath, TickMath } from '@uniswap/v3-sdk' +import { encodeSqrtRatioX96, maxLiquidityForAmounts, SqrtPriceMath, TickMath } from '@maxosllc/v3-sdk' import { ZERO } from '../internalConstants' import { tickToPrice } from '../utils/priceTickConversions' import { AllowanceTransferPermitBatch } from '../PositionManager' diff --git a/sdks/v4-sdk/src/entities/route.test.ts b/sdks/v4-sdk/src/entities/route.test.ts index 313cbec7d..69883dd2a 100644 --- a/sdks/v4-sdk/src/entities/route.test.ts +++ b/sdks/v4-sdk/src/entities/route.test.ts @@ -1,5 +1,5 @@ -import { Ether, Token, WETH9 } from '@uniswap/sdk-core' -import { encodeSqrtRatioX96, TickMath } from '@uniswap/v3-sdk' +import { Ether, Token, WETH9 } from '@maxosllc/sdk-core' +import { encodeSqrtRatioX96, TickMath } from '@maxosllc/v3-sdk' import { Pool } from './pool' import { Route } from './route' import { ADDRESS_ZERO, FEE_AMOUNT_MEDIUM, TICK_SPACING_TEN } from '../internalConstants' diff --git a/sdks/v4-sdk/src/entities/route.ts b/sdks/v4-sdk/src/entities/route.ts index 7e4156e2b..0d3d9a74b 100644 --- a/sdks/v4-sdk/src/entities/route.ts +++ b/sdks/v4-sdk/src/entities/route.ts @@ -1,6 +1,6 @@ import invariant from 'tiny-invariant' -import { Currency, Price } from '@uniswap/sdk-core' +import { Currency, Price } from '@maxosllc/sdk-core' import { Pool } from './pool' import { getPathCurrency } from '../utils/pathCurrency' diff --git a/sdks/v4-sdk/src/entities/trade.test.ts b/sdks/v4-sdk/src/entities/trade.test.ts index dac314491..42b02a568 100644 --- a/sdks/v4-sdk/src/entities/trade.test.ts +++ b/sdks/v4-sdk/src/entities/trade.test.ts @@ -1,7 +1,7 @@ -import { Currency, CurrencyAmount, Ether, WETH9, Percent, Price, sqrt, Token, TradeType } from '@uniswap/sdk-core' +import { Currency, CurrencyAmount, Ether, WETH9, Percent, Price, sqrt, Token, TradeType } from '@maxosllc/sdk-core' import { ADDRESS_ZERO, FEE_AMOUNT_MEDIUM, TICK_SPACING_SIXTY } from '../internalConstants' import JSBI from 'jsbi' -import { nearestUsableTick, encodeSqrtRatioX96, TickMath } from '@uniswap/v3-sdk' +import { nearestUsableTick, encodeSqrtRatioX96, TickMath } from '@maxosllc/v3-sdk' import { Pool } from './pool' import { Route } from './route' import { Trade } from './trade' diff --git a/sdks/v4-sdk/src/entities/trade.ts b/sdks/v4-sdk/src/entities/trade.ts index 6ac00f9db..f5f2ec792 100644 --- a/sdks/v4-sdk/src/entities/trade.ts +++ b/sdks/v4-sdk/src/entities/trade.ts @@ -1,4 +1,4 @@ -import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@uniswap/sdk-core' +import { Currency, Fraction, Percent, Price, sortedInsert, CurrencyAmount, TradeType, Token } from '@maxosllc/sdk-core' import invariant from 'tiny-invariant' import { ONE, ZERO } from '../internalConstants' import { Pool } from './pool' diff --git a/sdks/v4-sdk/src/internalConstants.ts b/sdks/v4-sdk/src/internalConstants.ts index cd4c779cf..ab8cf8fb3 100644 --- a/sdks/v4-sdk/src/internalConstants.ts +++ b/sdks/v4-sdk/src/internalConstants.ts @@ -1,6 +1,6 @@ import JSBI from 'jsbi' import { constants } from 'ethers' -import { encodeSqrtRatioX96 } from '@uniswap/v3-sdk' +import { encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' // constants used internally but not expected to be used externally export const ADDRESS_ZERO = constants.AddressZero diff --git a/sdks/v4-sdk/src/utils/calldata.ts b/sdks/v4-sdk/src/utils/calldata.ts index 8bcc066ee..426fa4009 100644 --- a/sdks/v4-sdk/src/utils/calldata.ts +++ b/sdks/v4-sdk/src/utils/calldata.ts @@ -1,4 +1,4 @@ -import { BigintIsh } from '@uniswap/sdk-core' +import { BigintIsh } from '@maxosllc/sdk-core' import JSBI from 'jsbi' /** diff --git a/sdks/v4-sdk/src/utils/currencyMap.ts b/sdks/v4-sdk/src/utils/currencyMap.ts index e0fc2325b..a8e464db6 100644 --- a/sdks/v4-sdk/src/utils/currencyMap.ts +++ b/sdks/v4-sdk/src/utils/currencyMap.ts @@ -1,4 +1,4 @@ -import { Currency } from '@uniswap/sdk-core' +import { Currency } from '@maxosllc/sdk-core' import { ADDRESS_ZERO } from '../internalConstants' // Uniswap v4 supports native pools. Those currencies are represented by the zero address. diff --git a/sdks/v4-sdk/src/utils/encodeRouteToPath.test.ts b/sdks/v4-sdk/src/utils/encodeRouteToPath.test.ts index 7c2d3775d..c056d170e 100644 --- a/sdks/v4-sdk/src/utils/encodeRouteToPath.test.ts +++ b/sdks/v4-sdk/src/utils/encodeRouteToPath.test.ts @@ -1,5 +1,5 @@ -import { Ether, Token, WETH9 } from '@uniswap/sdk-core' -import { encodeSqrtRatioX96 } from '@uniswap/v3-sdk' +import { Ether, Token, WETH9 } from '@maxosllc/sdk-core' +import { encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' import { Route } from '../entities/route' import { Pool } from '../entities/pool' import { encodeRouteToPath } from './encodeRouteToPath' diff --git a/sdks/v4-sdk/src/utils/encodeRouteToPath.ts b/sdks/v4-sdk/src/utils/encodeRouteToPath.ts index efb2ecfbb..7e0c10431 100644 --- a/sdks/v4-sdk/src/utils/encodeRouteToPath.ts +++ b/sdks/v4-sdk/src/utils/encodeRouteToPath.ts @@ -1,4 +1,4 @@ -import { Currency } from '@uniswap/sdk-core' +import { Currency } from '@maxosllc/sdk-core' import { Route } from '../entities/route' import { ADDRESS_ZERO } from '../internalConstants' diff --git a/sdks/v4-sdk/src/utils/pathCurrency.ts b/sdks/v4-sdk/src/utils/pathCurrency.ts index 3ad554fea..9f5a010f3 100644 --- a/sdks/v4-sdk/src/utils/pathCurrency.ts +++ b/sdks/v4-sdk/src/utils/pathCurrency.ts @@ -1,4 +1,4 @@ -import { Currency, CurrencyAmount } from '@uniswap/sdk-core' +import { Currency, CurrencyAmount } from '@maxosllc/sdk-core' import { Pool } from '../entities/pool' export function amountWithPathCurrency(amount: CurrencyAmount, pool: Pool): CurrencyAmount { diff --git a/sdks/v4-sdk/src/utils/priceTickConversions.ts b/sdks/v4-sdk/src/utils/priceTickConversions.ts index b30f4605a..aa56a29e3 100644 --- a/sdks/v4-sdk/src/utils/priceTickConversions.ts +++ b/sdks/v4-sdk/src/utils/priceTickConversions.ts @@ -1,7 +1,7 @@ -import { Price, Currency } from '@uniswap/sdk-core' +import { Price, Currency } from '@maxosllc/sdk-core' import JSBI from 'jsbi' import { Q192 } from '../internalConstants' -import { TickMath, encodeSqrtRatioX96 } from '@uniswap/v3-sdk' +import { TickMath, encodeSqrtRatioX96 } from '@maxosllc/v3-sdk' import { sortsBefore } from '../utils/sortsBefore' /** diff --git a/sdks/v4-sdk/src/utils/sortsBefore.ts b/sdks/v4-sdk/src/utils/sortsBefore.ts index a68712cf8..35b391aef 100644 --- a/sdks/v4-sdk/src/utils/sortsBefore.ts +++ b/sdks/v4-sdk/src/utils/sortsBefore.ts @@ -1,4 +1,4 @@ -import { Currency } from '@uniswap/sdk-core' +import { Currency } from '@maxosllc/sdk-core' export function sortsBefore(currencyA: Currency, currencyB: Currency): boolean { if (currencyA.isNative) return true diff --git a/sdks/v4-sdk/src/utils/v4BaseActionsParser.test.ts b/sdks/v4-sdk/src/utils/v4BaseActionsParser.test.ts index b97f80aab..5d67f2cad 100644 --- a/sdks/v4-sdk/src/utils/v4BaseActionsParser.test.ts +++ b/sdks/v4-sdk/src/utils/v4BaseActionsParser.test.ts @@ -1,5 +1,5 @@ import { expect } from 'chai' -import { WETH9 } from '@uniswap/sdk-core' +import { WETH9 } from '@maxosllc/sdk-core' import { ethers } from 'ethers' import { Route } from '../entities/route' import { encodeRouteToPath } from './encodeRouteToPath' diff --git a/sdks/v4-sdk/src/utils/v4Planner.test.ts b/sdks/v4-sdk/src/utils/v4Planner.test.ts index d467415ed..34a3211b5 100644 --- a/sdks/v4-sdk/src/utils/v4Planner.test.ts +++ b/sdks/v4-sdk/src/utils/v4Planner.test.ts @@ -1,7 +1,7 @@ import { BigNumber } from 'ethers' import JSBI from 'jsbi' -import { CurrencyAmount, Ether, Percent, TradeType, Token, WETH9 } from '@uniswap/sdk-core' -import { encodeSqrtRatioX96, nearestUsableTick, TickMath } from '@uniswap/v3-sdk' +import { CurrencyAmount, Ether, Percent, TradeType, Token, WETH9 } from '@maxosllc/sdk-core' +import { encodeSqrtRatioX96, nearestUsableTick, TickMath } from '@maxosllc/v3-sdk' import { Pool } from '../entities/pool' import { Trade } from '../entities/trade' import { Route } from '../entities/route' diff --git a/sdks/v4-sdk/src/utils/v4Planner.ts b/sdks/v4-sdk/src/utils/v4Planner.ts index e3fa98b5a..8d26f6b11 100644 --- a/sdks/v4-sdk/src/utils/v4Planner.ts +++ b/sdks/v4-sdk/src/utils/v4Planner.ts @@ -1,7 +1,7 @@ import invariant from 'tiny-invariant' import { defaultAbiCoder } from 'ethers/lib/utils' import { BigNumber } from 'ethers' -import { Currency, Percent, TradeType } from '@uniswap/sdk-core' +import { Currency, Percent, TradeType } from '@maxosllc/sdk-core' import { Trade } from '../entities/trade' import { ADDRESS_ZERO, EMPTY_BYTES } from '../internalConstants' import { encodeRouteToPath } from './encodeRouteToPath' diff --git a/sdks/v4-sdk/src/utils/v4PositionPlanner.ts b/sdks/v4-sdk/src/utils/v4PositionPlanner.ts index 900b33f8f..e8900beb8 100644 --- a/sdks/v4-sdk/src/utils/v4PositionPlanner.ts +++ b/sdks/v4-sdk/src/utils/v4PositionPlanner.ts @@ -1,6 +1,6 @@ import { Actions, V4Planner } from './v4Planner' import { Pool } from '../entities' -import { BigintIsh, Currency } from '@uniswap/sdk-core' +import { BigintIsh, Currency } from '@maxosllc/sdk-core' import { toAddress } from '../utils/currencyMap' import { EMPTY_BYTES } from '../internalConstants' diff --git a/yarn.lock b/yarn.lock index a1e535062..bd359dabd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2589,6 +2589,242 @@ __metadata: languageName: node linkType: hard +"@maxosllc/router-sdk@npm:0.0.2": + version: 0.0.2 + resolution: "@maxosllc/router-sdk@npm:0.0.2" + dependencies: + "@ethersproject/abi": ^5.5.0 + "@maxosllc/sdk-core": 0.0.2 + "@maxosllc/v2-sdk": 0.0.2 + "@maxosllc/v3-sdk": 0.0.3 + "@maxosllc/v4-sdk": 0.0.2 + "@uniswap/swap-router-contracts": ^1.3.0 + checksum: 340a7ca70bdc1453204cea0b6385ce79a66c166af2c55f6fd1409620fae3e24d5fc223abff3149b06efc2248d59a4af47a35a346835bc0b5fce5e9fed4cd4677 + languageName: node + linkType: hard + +"@maxosllc/router-sdk@workspace:sdks/router-sdk": + version: 0.0.0-use.local + resolution: "@maxosllc/router-sdk@workspace:sdks/router-sdk" + dependencies: + "@ethersproject/abi": ^5.5.0 + "@maxosllc/sdk-core": 0.0.2 + "@maxosllc/v2-sdk": 0.0.2 + "@maxosllc/v3-sdk": 0.0.3 + "@maxosllc/v4-sdk": 0.0.2 + "@types/jest": ^24.0.25 + "@uniswap/swap-router-contracts": ^1.3.0 + eslint-config-prettier: ^9.1.0 + eslint-plugin-prettier: ^3.4.1 + prettier: ^2.4.1 + tsdx: ^0.14.1 + languageName: unknown + linkType: soft + +"@maxosllc/sdk-core@npm:0.0.2": + version: 0.0.2 + resolution: "@maxosllc/sdk-core@npm:0.0.2" + dependencies: + "@ethersproject/address": ^5.0.2 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/strings": 5.7.0 + big.js: ^5.2.2 + decimal.js-light: ^2.5.0 + jsbi: ^3.1.4 + tiny-invariant: ^1.1.0 + toformat: ^2.0.0 + checksum: 3ab6bdce28563d796ea81c57131bad7a650fb063d229b8b9ba1b73aac88b929dd89ee4aab2254e7b81d95d574de210bd0c0a32483f5ab3f90f50b8064db55980 + languageName: node + linkType: hard + +"@maxosllc/sdk-core@workspace:sdks/sdk-core": + version: 0.0.0-use.local + resolution: "@maxosllc/sdk-core@workspace:sdks/sdk-core" + dependencies: + "@ethersproject/address": ^5.0.2 + "@ethersproject/bytes": ^5.7.0 + "@ethersproject/keccak256": 5.7.0 + "@ethersproject/strings": 5.7.0 + "@types/big.js": ^4.0.5 + "@types/jest": ^24.0.25 + babel-eslint: 10.1.0 + big.js: ^5.2.2 + decimal.js-light: ^2.5.0 + eslint-config-prettier: ^9.1.0 + eslint-config-react-app: 7.0.1 + eslint-plugin-flowtype: 8.0.3 + eslint-plugin-jsx-a11y: 6.10.2 + eslint-plugin-prettier: ^3.4.1 + eslint-plugin-react: 7.37.4 + eslint-plugin-react-hooks: 5.2.0 + jsbi: ^3.1.4 + tiny-invariant: ^1.1.0 + toformat: ^2.0.0 + tsdx: ^0.14.1 + languageName: unknown + linkType: soft + +"@maxosllc/universal-router-sdk@workspace:sdks/universal-router-sdk": + version: 0.0.0-use.local + resolution: "@maxosllc/universal-router-sdk@workspace:sdks/universal-router-sdk" + dependencies: + "@maxosllc/router-sdk": 0.0.2 + "@maxosllc/sdk-core": 0.0.2 + "@maxosllc/v2-sdk": 0.0.2 + "@maxosllc/v3-sdk": 0.0.3 + "@maxosllc/v4-sdk": 0.0.2 + "@openzeppelin/contracts": 4.7.0 + "@types/chai": ^4.3.3 + "@types/mocha": ^9.1.1 + "@types/node": ^18.7.16 + "@types/node-fetch": ^2.6.2 + "@uniswap/permit2-sdk": ^1.3.0 + "@uniswap/universal-router": 2.0.0-beta.2 + "@uniswap/v2-core": ^1.0.1 + "@uniswap/v3-core": 1.0.0 + bignumber.js: ^9.0.2 + chai: ^4.3.6 + dotenv: ^16.0.3 + eslint-plugin-prettier: ^3.4.1 + ethers: ^5.7.0 + hardhat: ^2.25.0 + prettier: ^2.4.1 + ts-node: ^10.9.1 + tsdx: ^0.14.1 + tslib: ^2.3.0 + typedoc: ^0.21.2 + typescript: ^4.3.3 + languageName: unknown + linkType: soft + +"@maxosllc/v2-sdk@npm:0.0.2": + version: 0.0.2 + resolution: "@maxosllc/v2-sdk@npm:0.0.2" + dependencies: + "@ethersproject/address": ^5.0.2 + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + checksum: 8c114cb40f329b0142639b42d440fa90ba64e12ea9aa0a9a63dff03942c00bd5d937c5afaeb4851078ea7111f4cbfc16e0ec4387082e87587463857559b4c53f + languageName: node + linkType: hard + +"@maxosllc/v2-sdk@workspace:sdks/v2-sdk": + version: 0.0.0-use.local + resolution: "@maxosllc/v2-sdk@workspace:sdks/v2-sdk" + dependencies: + "@ethersproject/address": ^5.0.2 + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + "@types/big.js": ^4.0.5 + "@types/jest": ^24.0.25 + "@uniswap/v2-core": ^1.0.1 + eslint: ^8.57.0 + eslint-config-prettier: ^9.1.0 + eslint-config-react-app: 7.0.1 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-functional: ^3.0.2 + eslint-plugin-import: ^2.22.0 + eslint-plugin-prettier: ^3.4.1 + jest: 25.5.0 + prettier: ^2.4.1 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + tsdx: ^0.14.1 + typescript: ^4.3.3 + languageName: unknown + linkType: soft + +"@maxosllc/v3-sdk@npm:0.0.3": + version: 0.0.3 + resolution: "@maxosllc/v3-sdk@npm:0.0.3" + dependencies: + "@ethersproject/abi": ^5.5.0 + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + "@uniswap/swap-router-contracts": ^1.3.0 + "@uniswap/v3-periphery": ^1.1.1 + "@uniswap/v3-staker": 1.0.0 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + checksum: 2437204ef47dc5a0284dffdf9868cf402c2655261f5431162e85aeec8dab1ec0b659baf28fa649ac0518db83aa252ec1bd4db8fd22af1c61c049427516dc63af + languageName: node + linkType: hard + +"@maxosllc/v3-sdk@workspace:sdks/v3-sdk": + version: 0.0.0-use.local + resolution: "@maxosllc/v3-sdk@workspace:sdks/v3-sdk" + dependencies: + "@ethersproject/abi": ^5.5.0 + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + "@types/jest": ^24.0.25 + "@uniswap/swap-router-contracts": ^1.3.0 + "@uniswap/v3-core": 1.0.0 + "@uniswap/v3-periphery": ^1.1.1 + "@uniswap/v3-staker": 1.0.0 + babel-jest: 25.5.1 + eslint: ^8.57.0 + eslint-config-prettier: ^9.1.0 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-functional: ^3.0.2 + eslint-plugin-import: ^2.22.0 + eslint-plugin-prettier: ^3.4.1 + jest: 25.5.0 + prettier: ^2.4.1 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + tsdx: ^0.14.1 + typescript: ^4.3.3 + languageName: unknown + linkType: soft + +"@maxosllc/v4-sdk@npm:0.0.2": + version: 0.0.2 + resolution: "@maxosllc/v4-sdk@npm:0.0.2" + dependencies: + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + "@maxosllc/v3-sdk": 0.0.3 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + checksum: c2264d29867d44194badc84f092695d2a7a7a1bc551a054c857b0e240722b5460d869e559904d31d28ac5a0f2b1f6b1e1fd43982fc57e22482e6518d4b46b3bc + languageName: node + linkType: hard + +"@maxosllc/v4-sdk@workspace:sdks/v4-sdk": + version: 0.0.0-use.local + resolution: "@maxosllc/v4-sdk@workspace:sdks/v4-sdk" + dependencies: + "@ethersproject/solidity": ^5.0.9 + "@maxosllc/sdk-core": 0.0.2 + "@maxosllc/v3-sdk": 0.0.3 + "@types/chai": ^4.3.3 + "@types/mocha": ^9.1.1 + "@types/node": ^18.7.16 + "@types/node-fetch": ^2.6.2 + chai: ^4.3.6 + dotenv: ^16.0.3 + eslint: ^8.57.0 + eslint-config-prettier: ^9.1.0 + eslint-plugin-eslint-comments: ^3.2.0 + eslint-plugin-functional: ^3.0.2 + eslint-plugin-import: ^2.22.0 + eslint-plugin-prettier: ^3.4.1 + jest: 25.5.0 + prettier: ^2.4.1 + tiny-invariant: ^1.1.0 + tiny-warning: ^1.0.3 + ts-node: ^10.9.1 + tsdx: ^0.14.1 + tslib: ^2.3.0 + typedoc: ^0.21.2 + typescript: ^4.3.3 + languageName: unknown + linkType: soft + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -4840,39 +5076,7 @@ __metadata: languageName: unknown linkType: soft -"@uniswap/router-sdk@npm:^2.1.0": - version: 2.1.0 - resolution: "@uniswap/router-sdk@npm:2.1.0" - dependencies: - "@ethersproject/abi": ^5.5.0 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/swap-router-contracts": ^1.3.0 - "@uniswap/v2-sdk": ^4.16.0 - "@uniswap/v3-sdk": ^3.26.0 - "@uniswap/v4-sdk": ^1.22.0 - checksum: 337d4f5962296a8ab82b0515b86a109ec25679c3719279a74df75d52c59b8a23261a23f0af7f7369daf1612ea212a05d2436f23e0c0b037db869cf5794ccbf3a - languageName: node - linkType: hard - -"@uniswap/router-sdk@workspace:sdks/router-sdk": - version: 0.0.0-use.local - resolution: "@uniswap/router-sdk@workspace:sdks/router-sdk" - dependencies: - "@ethersproject/abi": ^5.5.0 - "@types/jest": ^24.0.25 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/swap-router-contracts": ^1.3.0 - "@uniswap/v2-sdk": ^4.16.0 - "@uniswap/v3-sdk": ^3.26.0 - "@uniswap/v4-sdk": ^1.22.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-prettier: ^3.4.1 - prettier: ^2.4.1 - tsdx: ^0.14.1 - languageName: unknown - linkType: soft - -"@uniswap/sdk-core@npm:^7.5.0, @uniswap/sdk-core@npm:^7.6.0, @uniswap/sdk-core@npm:^7.8.0": +"@uniswap/sdk-core@npm:^7.5.0, @uniswap/sdk-core@npm:^7.6.0": version: 7.8.0 resolution: "@uniswap/sdk-core@npm:7.8.0" dependencies: @@ -4889,33 +5093,6 @@ __metadata: languageName: node linkType: hard -"@uniswap/sdk-core@workspace:sdks/sdk-core": - version: 0.0.0-use.local - resolution: "@uniswap/sdk-core@workspace:sdks/sdk-core" - dependencies: - "@ethersproject/address": ^5.0.2 - "@ethersproject/bytes": ^5.7.0 - "@ethersproject/keccak256": 5.7.0 - "@ethersproject/strings": 5.7.0 - "@types/big.js": ^4.0.5 - "@types/jest": ^24.0.25 - babel-eslint: 10.1.0 - big.js: ^5.2.2 - decimal.js-light: ^2.5.0 - eslint-config-prettier: ^9.1.0 - eslint-config-react-app: 7.0.1 - eslint-plugin-flowtype: 8.0.3 - eslint-plugin-jsx-a11y: 6.10.2 - eslint-plugin-prettier: ^3.4.1 - eslint-plugin-react: 7.37.4 - eslint-plugin-react-hooks: 5.2.0 - jsbi: ^3.1.4 - tiny-invariant: ^1.1.0 - toformat: ^2.0.0 - tsdx: ^0.14.1 - languageName: unknown - linkType: soft - "@uniswap/smart-wallet-sdk@workspace:sdks/smart-wallet-sdk": version: 0.0.0-use.local resolution: "@uniswap/smart-wallet-sdk@workspace:sdks/smart-wallet-sdk" @@ -5006,39 +5183,6 @@ __metadata: languageName: unknown linkType: soft -"@uniswap/universal-router-sdk@workspace:sdks/universal-router-sdk": - version: 0.0.0-use.local - resolution: "@uniswap/universal-router-sdk@workspace:sdks/universal-router-sdk" - dependencies: - "@openzeppelin/contracts": 4.7.0 - "@types/chai": ^4.3.3 - "@types/mocha": ^9.1.1 - "@types/node": ^18.7.16 - "@types/node-fetch": ^2.6.2 - "@uniswap/permit2-sdk": ^1.3.0 - "@uniswap/router-sdk": ^2.1.0 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/universal-router": 2.0.0-beta.2 - "@uniswap/v2-core": ^1.0.1 - "@uniswap/v2-sdk": ^4.16.0 - "@uniswap/v3-core": 1.0.0 - "@uniswap/v3-sdk": ^3.26.0 - "@uniswap/v4-sdk": ^1.22.0 - bignumber.js: ^9.0.2 - chai: ^4.3.6 - dotenv: ^16.0.3 - eslint-plugin-prettier: ^3.4.1 - ethers: ^5.7.0 - hardhat: ^2.25.0 - prettier: ^2.4.1 - ts-node: ^10.9.1 - tsdx: ^0.14.1 - tslib: ^2.3.0 - typedoc: ^0.21.2 - typescript: ^4.3.3 - languageName: unknown - linkType: soft - "@uniswap/universal-router@npm:2.0.0-beta.2": version: 2.0.0-beta.2 resolution: "@uniswap/universal-router@npm:2.0.0-beta.2" @@ -5057,45 +5201,6 @@ __metadata: languageName: node linkType: hard -"@uniswap/v2-sdk@npm:^4.16.0": - version: 4.16.0 - resolution: "@uniswap/v2-sdk@npm:4.16.0" - dependencies: - "@ethersproject/address": ^5.0.2 - "@ethersproject/solidity": ^5.0.9 - "@uniswap/sdk-core": ^7.8.0 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - checksum: 1e379f2cbc2a57355366717889c479c35be9ba8468204b571ad060276bfb908f7eb4e397f8045c0ca823d5cc6b8dd7ed45fc13dbfcc76d1d2276a060f5a45420 - languageName: node - linkType: hard - -"@uniswap/v2-sdk@workspace:sdks/v2-sdk": - version: 0.0.0-use.local - resolution: "@uniswap/v2-sdk@workspace:sdks/v2-sdk" - dependencies: - "@ethersproject/address": ^5.0.2 - "@ethersproject/solidity": ^5.0.9 - "@types/big.js": ^4.0.5 - "@types/jest": ^24.0.25 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/v2-core": ^1.0.1 - eslint: ^8.57.0 - eslint-config-prettier: ^9.1.0 - eslint-config-react-app: 7.0.1 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-functional: ^3.0.2 - eslint-plugin-import: ^2.22.0 - eslint-plugin-prettier: ^3.4.1 - jest: 25.5.0 - prettier: ^2.4.1 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - tsdx: ^0.14.1 - typescript: ^4.3.3 - languageName: unknown - linkType: soft - "@uniswap/v3-core@npm:1.0.0": version: 1.0.0 resolution: "@uniswap/v3-core@npm:1.0.0" @@ -5123,50 +5228,6 @@ __metadata: languageName: node linkType: hard -"@uniswap/v3-sdk@npm:3.26.0, @uniswap/v3-sdk@npm:^3.26.0": - version: 3.26.0 - resolution: "@uniswap/v3-sdk@npm:3.26.0" - dependencies: - "@ethersproject/abi": ^5.5.0 - "@ethersproject/solidity": ^5.0.9 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/swap-router-contracts": ^1.3.0 - "@uniswap/v3-periphery": ^1.1.1 - "@uniswap/v3-staker": 1.0.0 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - checksum: 4e08fd5013b4ba780a4b1c2954aeecc6473daba3947d94671c3b5aa7ff8a596cf58321120b03418dd7078e45b4e4c6a3284af750eba4821b50a7a99918858935 - languageName: node - linkType: hard - -"@uniswap/v3-sdk@workspace:sdks/v3-sdk": - version: 0.0.0-use.local - resolution: "@uniswap/v3-sdk@workspace:sdks/v3-sdk" - dependencies: - "@ethersproject/abi": ^5.5.0 - "@ethersproject/solidity": ^5.0.9 - "@types/jest": ^24.0.25 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/swap-router-contracts": ^1.3.0 - "@uniswap/v3-core": 1.0.0 - "@uniswap/v3-periphery": ^1.1.1 - "@uniswap/v3-staker": 1.0.0 - babel-jest: 25.5.1 - eslint: ^8.57.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-functional: ^3.0.2 - eslint-plugin-import: ^2.22.0 - eslint-plugin-prettier: ^3.4.1 - jest: 25.5.0 - prettier: ^2.4.1 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - tsdx: ^0.14.1 - typescript: ^4.3.3 - languageName: unknown - linkType: soft - "@uniswap/v3-staker@npm:1.0.0": version: 1.0.0 resolution: "@uniswap/v3-staker@npm:1.0.0" @@ -5178,50 +5239,6 @@ __metadata: languageName: node linkType: hard -"@uniswap/v4-sdk@npm:^1.22.0": - version: 1.22.0 - resolution: "@uniswap/v4-sdk@npm:1.22.0" - dependencies: - "@ethersproject/solidity": ^5.0.9 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/v3-sdk": 3.26.0 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - checksum: 6e590ed4f7cc1f8c86e27cec2837308b74a7dc0288c813809aafd5c08b3906ef9c425f6bc1acbbab68b62c75b218e28b270a4afb519a1c92feddeedc4d118054 - languageName: node - linkType: hard - -"@uniswap/v4-sdk@workspace:sdks/v4-sdk": - version: 0.0.0-use.local - resolution: "@uniswap/v4-sdk@workspace:sdks/v4-sdk" - dependencies: - "@ethersproject/solidity": ^5.0.9 - "@types/chai": ^4.3.3 - "@types/mocha": ^9.1.1 - "@types/node": ^18.7.16 - "@types/node-fetch": ^2.6.2 - "@uniswap/sdk-core": ^7.8.0 - "@uniswap/v3-sdk": 3.26.0 - chai: ^4.3.6 - dotenv: ^16.0.3 - eslint: ^8.57.0 - eslint-config-prettier: ^9.1.0 - eslint-plugin-eslint-comments: ^3.2.0 - eslint-plugin-functional: ^3.0.2 - eslint-plugin-import: ^2.22.0 - eslint-plugin-prettier: ^3.4.1 - jest: 25.5.0 - prettier: ^2.4.1 - tiny-invariant: ^1.1.0 - tiny-warning: ^1.0.3 - ts-node: ^10.9.1 - tsdx: ^0.14.1 - tslib: ^2.3.0 - typedoc: ^0.21.2 - typescript: ^4.3.3 - languageName: unknown - linkType: soft - "JSONStream@npm:^1.0.3": version: 1.3.5 resolution: "JSONStream@npm:1.3.5"