@huuduynvc/sdk-core 7.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +6 -0
- package/dist/addresses.d.ts +58 -0
- package/dist/chains.d.ts +43 -0
- package/dist/constants.d.ts +12 -0
- package/dist/entities/baseCurrency.d.ts +49 -0
- package/dist/entities/currency.d.ts +3 -0
- package/dist/entities/ether.d.ts +13 -0
- package/dist/entities/fractions/currencyAmount.d.ts +31 -0
- package/dist/entities/fractions/fraction.d.ts +24 -0
- package/dist/entities/fractions/index.d.ts +4 -0
- package/dist/entities/fractions/percent.d.ts +14 -0
- package/dist/entities/fractions/price.d.ts +38 -0
- package/dist/entities/index.d.ts +6 -0
- package/dist/entities/nativeCurrency.d.ts +8 -0
- package/dist/entities/token.d.ts +48 -0
- package/dist/entities/weth9.d.ts +7 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8 -0
- package/dist/sdk-core.cjs.development.js +1123 -0
- package/dist/sdk-core.cjs.development.js.map +1 -0
- package/dist/sdk-core.cjs.production.min.js +2 -0
- package/dist/sdk-core.cjs.production.min.js.map +1 -0
- package/dist/sdk-core.esm.js +1084 -0
- package/dist/sdk-core.esm.js.map +1 -0
- package/dist/utils/computePriceImpact.d.ts +8 -0
- package/dist/utils/computeZksyncCreate2Address.d.ts +2 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/sortedInsert.d.ts +1 -0
- package/dist/utils/sqrt.d.ts +7 -0
- package/dist/utils/validateAndParseAddress.d.ts +10 -0
- package/package.json +51 -0
@@ -0,0 +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}\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] 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<AddressMap>((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}\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}\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 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\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\nexport const CHAIN_TO_ADDRESSES_MAP: Record<SupportedChainsType, ChainAddresses> = {\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}\n\n/* V3 Contract Addresses */\nexport const V3_CORE_FACTORY_ADDRESSES: AddressMap = {\n ...SUPPORTED_CHAINS.reduce<AddressMap>((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<AddressMap>((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<AddressMap>((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<AddressMap>((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<AddressMap>((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<AddressMap>((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<AddressMap>((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<T extends Currency> 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<T extends Currency>(currency: T, rawAmount: BigintIsh): CurrencyAmount<T> {\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<T extends Currency>(\n currency: T,\n numerator: BigintIsh,\n denominator: BigintIsh\n ): CurrencyAmount<T> {\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<T>): CurrencyAmount<T> {\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<T>): CurrencyAmount<T> {\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<T> {\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<T> {\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<Token> {\n if (this.currency.isToken) return this as CurrencyAmount<Token>\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<TBase extends Currency, TQuote extends Currency> 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<TBase>; quoteAmount: CurrencyAmount<TQuote> }]\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<TQuote, TBase> {\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<TOtherQuote extends Currency>(other: Price<TQuote, TOtherQuote>): Price<TBase, TOtherQuote> {\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<TBase>): CurrencyAmount<TQuote> {\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}\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<TBase extends Currency, TQuote extends Currency>(\n midPrice: Price<TBase, TQuote>,\n inputAmount: CurrencyAmount<TBase>,\n outputAmount: CurrencyAmount<TQuote>\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<T>(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","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","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","_inheritsLoose","currency","_this","call","lessThanOrEqual","decimalScale","exponentiate","decimals","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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"}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { Currency, CurrencyAmount, Percent, Price } from '../entities';
|
2
|
+
/**
|
3
|
+
* Returns the percent difference between the mid price and the execution price, i.e. price impact.
|
4
|
+
* @param midPrice mid price before the trade
|
5
|
+
* @param inputAmount the input amount of the trade
|
6
|
+
* @param outputAmount the output amount of the trade
|
7
|
+
*/
|
8
|
+
export declare function computePriceImpact<TBase extends Currency, TQuote extends Currency>(midPrice: Price<TBase, TQuote>, inputAmount: CurrencyAmount<TBase>, outputAmount: CurrencyAmount<TQuote>): Percent;
|
@@ -0,0 +1,5 @@
|
|
1
|
+
export { computePriceImpact } from './computePriceImpact';
|
2
|
+
export { computeZksyncCreate2Address } from './computeZksyncCreate2Address';
|
3
|
+
export { sortedInsert } from './sortedInsert';
|
4
|
+
export { sqrt } from './sqrt';
|
5
|
+
export { validateAndParseAddress } from './validateAndParseAddress';
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function sortedInsert<T>(items: T[], add: T, maxSize: number, comparator: (a: T, b: T) => number): T | null;
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/**
|
2
|
+
* Validates an address and returns the parsed (checksummed) version of that address
|
3
|
+
* @param address the unchecksummed hex address
|
4
|
+
*/
|
5
|
+
export declare function validateAndParseAddress(address: string): string;
|
6
|
+
/**
|
7
|
+
* Checks if an address is valid by checking 0x prefix, length === 42 and hex encoding.
|
8
|
+
* @param address the unchecksummed hex address
|
9
|
+
*/
|
10
|
+
export declare function checkValidAddress(address: string): string;
|
package/package.json
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
{
|
2
|
+
"name": "@huuduynvc/sdk-core",
|
3
|
+
"description": "⚒️ An SDK for building applications on top of Uniswap V3",
|
4
|
+
"repository": "https://github.com/matthew-dex/sdk-core.git",
|
5
|
+
"keywords": [
|
6
|
+
"uniswap",
|
7
|
+
"ethereum"
|
8
|
+
],
|
9
|
+
"version": "7.5.3",
|
10
|
+
"license": "MIT",
|
11
|
+
"main": "dist/index.js",
|
12
|
+
"typings": "dist/index.d.ts",
|
13
|
+
"module": "dist/sdk-core.esm.js",
|
14
|
+
"files": [
|
15
|
+
"dist"
|
16
|
+
],
|
17
|
+
"engines": {
|
18
|
+
"node": ">=10"
|
19
|
+
},
|
20
|
+
"scripts": {
|
21
|
+
"build": "tsdx build",
|
22
|
+
"lint": "tsdx lint src",
|
23
|
+
"release": "semantic-release",
|
24
|
+
"start": "tsdx watch",
|
25
|
+
"test": "tsdx test"
|
26
|
+
},
|
27
|
+
"dependencies": {
|
28
|
+
"@ethersproject/address": "^5.0.2",
|
29
|
+
"@ethersproject/bytes": "^5.7.0",
|
30
|
+
"@ethersproject/keccak256": "5.7.0",
|
31
|
+
"@ethersproject/strings": "5.7.0",
|
32
|
+
"big.js": "^5.2.2",
|
33
|
+
"decimal.js-light": "^2.5.0",
|
34
|
+
"jsbi": "^3.1.4",
|
35
|
+
"tiny-invariant": "^1.1.0",
|
36
|
+
"toformat": "^2.0.0"
|
37
|
+
},
|
38
|
+
"devDependencies": {
|
39
|
+
"@types/big.js": "^4.0.5",
|
40
|
+
"@types/jest": "^24.0.25",
|
41
|
+
"tsdx": "^0.14.1"
|
42
|
+
},
|
43
|
+
"prettier": {
|
44
|
+
"printWidth": 120,
|
45
|
+
"semi": false,
|
46
|
+
"singleQuote": true
|
47
|
+
},
|
48
|
+
"publishConfig": {
|
49
|
+
"access": "public"
|
50
|
+
}
|
51
|
+
}
|