From 2f5dcb642f81569766a1f9a207c61c813ff8f60a Mon Sep 17 00:00:00 2001 From: jsy1218 <91580504+jsy1218@users.noreply.github.com> Date: Thu, 14 Mar 2024 11:55:13 -0700 Subject: [PATCH] feat: support blast (#374) --- lib/config/chains.ts | 1 + package.json | 4 +- test/constants.ts | 2 +- test/integ/quote-classic.test.ts | 29 +++++- test/integ/quote-gouda.test.ts | 2 +- test/integ/quote-xv2.test.ts | 2 +- test/utils/forkAndFund.ts | 2 +- yarn.lock | 170 ++++++++++++++++--------------- 8 files changed, 122 insertions(+), 90 deletions(-) diff --git a/lib/config/chains.ts b/lib/config/chains.ts index 8ab69eec..f3867d3b 100644 --- a/lib/config/chains.ts +++ b/lib/config/chains.ts @@ -19,6 +19,7 @@ export const SUPPORTED_CHAINS = { ChainId.AVALANCHE, ChainId.BASE_GOERLI, ChainId.BASE, + ChainId.BLAST, ], [RoutingType.DUTCH_LIMIT]: [ChainId.MAINNET, ChainId.POLYGON, ChainId.GOERLI], [RoutingType.DUTCH_V2]: [ChainId.MAINNET], diff --git a/package.json b/package.json index 939c4230..a8b9f746 100644 --- a/package.json +++ b/package.json @@ -70,8 +70,8 @@ "@uniswap/default-token-list": "^11.7.0", "@uniswap/permit2-sdk": "^1.2.0", "@uniswap/router-sdk": "^1.4.0", - "@uniswap/sdk-core": "^4.0.7", - "@uniswap/smart-order-router": "3.17.1", + "@uniswap/sdk-core": "^4.2.0", + "@uniswap/smart-order-router": "3.25.0", "@uniswap/uniswapx-sdk": "1.5.0-alpha.7", "@uniswap/universal-router-sdk": "1.7.1", "aws-cdk-lib": "2.85.0", diff --git a/test/constants.ts b/test/constants.ts index 2a14ea98..ef6a456f 100644 --- a/test/constants.ts +++ b/test/constants.ts @@ -375,7 +375,7 @@ export function getTestAmount(currency: Currency): string { case XSGD_MAINNET: return '1000'; case DAI_ON(ChainId.MAINNET): - return '1000'; + return '5000'; case WBTC_MAINNET: return '1'; default: diff --git a/test/integ/quote-classic.test.ts b/test/integ/quote-classic.test.ts index 209efe29..c6622ed8 100644 --- a/test/integ/quote-classic.test.ts +++ b/test/integ/quote-classic.test.ts @@ -525,7 +525,11 @@ describe('quote', function () { CurrencyAmount.fromRawAmount(UNI_MAINNET, quoteJSON.quote) ); } else { - expect(tokenOutAfter.subtract(tokenOutBefore).toExact()).to.equal('10000'); + const tokensDiff = tokenOutBefore.subtract(tokenOutAfter); + const percentDiff = tokensDiff.asFraction.divide(quoteReq.amount); + // After Dencun, start seeing exact out amount has slight rounding error + // We will tolerate by 0.0001% for now + expect(percentDiff.lessThan(new Fraction(1, 1000000))).to.be.true; // Can't easily check slippage for ETH due to gas costs effecting ETH balance. } }); @@ -2469,6 +2473,7 @@ describe('quote', function () { [ChainId.MAINNET]: USDC_ON(1), [ChainId.OPTIMISM]: USDC_ON(ChainId.OPTIMISM), [ChainId.OPTIMISM_GOERLI]: USDC_ON(ChainId.OPTIMISM_GOERLI), + [ChainId.OPTIMISM_SEPOLIA]: null, [ChainId.ARBITRUM_ONE]: USDC_ON(ChainId.ARBITRUM_ONE), [ChainId.POLYGON]: USDC_ON(ChainId.POLYGON), [ChainId.POLYGON_MUMBAI]: USDC_ON(ChainId.POLYGON_MUMBAI), @@ -2481,14 +2486,20 @@ describe('quote', function () { [ChainId.MOONBEAM]: null, [ChainId.GNOSIS]: null, [ChainId.ARBITRUM_GOERLI]: null, + [ChainId.ARBITRUM_SEPOLIA]: null, [ChainId.BASE_GOERLI]: USDC_ON(ChainId.BASE_GOERLI), [ChainId.BASE]: USDC_ON(ChainId.BASE), + [ChainId.ZORA]: null, + [ChainId.ZORA_SEPOLIA]: null, + [ChainId.ROOTSTOCK]: null, + [ChainId.BLAST]: null, }; const TEST_ERC20_2: { [chainId in ChainId]: Token | null } = { [ChainId.MAINNET]: DAI_ON(1), [ChainId.OPTIMISM]: DAI_ON(ChainId.OPTIMISM), [ChainId.OPTIMISM_GOERLI]: DAI_ON(ChainId.OPTIMISM_GOERLI), + [ChainId.OPTIMISM_SEPOLIA]: null, [ChainId.ARBITRUM_ONE]: DAI_ON(ChainId.ARBITRUM_ONE), [ChainId.POLYGON]: DAI_ON(ChainId.POLYGON), [ChainId.POLYGON_MUMBAI]: DAI_ON(ChainId.POLYGON_MUMBAI), @@ -2501,8 +2512,13 @@ describe('quote', function () { [ChainId.MOONBEAM]: null, [ChainId.GNOSIS]: null, [ChainId.ARBITRUM_GOERLI]: null, + [ChainId.ARBITRUM_SEPOLIA]: null, [ChainId.BASE_GOERLI]: WNATIVE_ON(ChainId.BASE_GOERLI), [ChainId.BASE]: WNATIVE_ON(ChainId.BASE), + [ChainId.ZORA]: null, + [ChainId.ZORA_SEPOLIA]: null, + [ChainId.ROOTSTOCK]: null, + [ChainId.BLAST]: null, }; // TODO: Find valid pools/tokens on optimistic kovan and polygon mumbai. We skip those tests for now. @@ -2511,12 +2527,19 @@ describe('quote', function () { (c) => c !== ChainId.POLYGON_MUMBAI && c !== ChainId.ARBITRUM_GOERLI && + c !== ChainId.ARBITRUM_SEPOLIA && c !== ChainId.CELO_ALFAJORES && c !== ChainId.GOERLI && c !== ChainId.SEPOLIA && c !== ChainId.OPTIMISM_GOERLI && - c != ChainId.BASE && - c != ChainId.BASE_GOERLI + c != ChainId.OPTIMISM_SEPOLIA && + c !== ChainId.BASE && + c !== ChainId.BASE_GOERLI && + // We will follow up supporting ZORA and ROOTSTOCK + c !== ChainId.ZORA && + c !== ChainId.ZORA_SEPOLIA && + c !== ChainId.ROOTSTOCK && + c !== ChainId.BLAST )) { for (const type of ['EXACT_INPUT', 'EXACT_OUTPUT']) { const erc1 = TEST_ERC20_1[chain]; diff --git a/test/integ/quote-gouda.test.ts b/test/integ/quote-gouda.test.ts index 45fed6bd..18f38820 100644 --- a/test/integ/quote-gouda.test.ts +++ b/test/integ/quote-gouda.test.ts @@ -62,7 +62,7 @@ describe('quoteUniswapX', function () { parseAmount('5000', UNI_MAINNET), parseAmount('4000', WETH9[1]), parseAmount('5000000', DAI_MAINNET), - parseAmount('50000', agEUR_MAINNET), + parseAmount('5000', agEUR_MAINNET), parseAmount('475000', XSGD_MAINNET), ]); }); diff --git a/test/integ/quote-xv2.test.ts b/test/integ/quote-xv2.test.ts index d0ec769e..cd705e31 100644 --- a/test/integ/quote-xv2.test.ts +++ b/test/integ/quote-xv2.test.ts @@ -50,7 +50,7 @@ describe('quoteUniswapX-v2', function () { parseAmount('5000', UNI_MAINNET), parseAmount('4000', WETH9[1]), parseAmount('5000000', DAI_MAINNET), - parseAmount('50000', agEUR_MAINNET), + parseAmount('5000', agEUR_MAINNET), parseAmount('475000', XSGD_MAINNET), ]); }); diff --git a/test/utils/forkAndFund.ts b/test/utils/forkAndFund.ts index 495a13ef..0f2b8cce 100644 --- a/test/utils/forkAndFund.ts +++ b/test/utils/forkAndFund.ts @@ -24,7 +24,7 @@ const WHALES = [ '0xd0C6f16CC58f1b23c51d1529B95fec2740218F0a', '0x171d311eAcd2206d21Cb462d661C33F0eddadC03', '0xD91cd0Bcc450409a542A4daeFbFc4118a9F9f5f3', - '0xa173524e030a2d2398036fb33ea3ed6d784c5904', + '0xa116f421ff82A9704428259fd8CC63347127B777', ]; const { ethers } = hre; diff --git a/yarn.lock b/yarn.lock index 1ffc60e5..e31ce9c5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1616,6 +1616,13 @@ dependencies: "@types/node" "*" +"@types/brotli@^1.3.4": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@types/brotli/-/brotli-1.3.4.tgz#3eefc5493218a99141771f351142dd640efde5d8" + integrity sha512-cKYjgaS2DMdCKF7R0F5cgx1nfBYObN2ihIuPGQ4/dlIY6RpV7OWNwe9L8V4tTVKL2eZqOkNM9FM/rgTvLf4oXw== + dependencies: + "@types/node" "*" + "@types/bunyan@^1.8.8": version "1.8.8" resolved "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.8.tgz" @@ -1923,10 +1930,10 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@uniswap/default-token-list@^11.2.0": - version "11.7.0" - resolved "https://registry.yarnpkg.com/@uniswap/default-token-list/-/default-token-list-11.7.0.tgz#2267dbb4ac5f9fd2ce83057e761efe98eb1daada" - integrity sha512-IZmD222NYPfYlRZou1+kbd4vDbye8ir1XJTJmpUsOXkRsOejknKGMqU5nXx8cY5FUVdNXyz6E+HmOLMk0PQyGQ== +"@uniswap/default-token-list@^11.13.0": + version "11.15.0" + resolved "https://registry.yarnpkg.com/@uniswap/default-token-list/-/default-token-list-11.15.0.tgz#2269a7337617915039d3aaf96185b9bf2572d9b0" + integrity sha512-EqKvShhsmm1M5OE11PUWsc5rzRTDdbEyGV9OmLi8xvia4LyrT/6xE9JteqaV1UT13vGtk8sqqq0QYAwuuubY7A== "@uniswap/default-token-list@^11.7.0": version "11.13.0" @@ -1957,17 +1964,6 @@ "@uniswap/v2-sdk" "^3.0.1" "@uniswap/v3-sdk" "^3.8.3" -"@uniswap/router-sdk@^1.6.0": - version "1.6.0" - resolved "https://registry.npmjs.org/@uniswap/router-sdk/-/router-sdk-1.6.0.tgz" - integrity sha512-onpAzcvEnrsm8tUtu49IrR9EP3n9j0IDpGc0Ee3FDDkVgXrp9cIrAADC+yb56vgLtJFnshbhyIdjXLMIzWe0Gw== - dependencies: - "@ethersproject/abi" "^5.5.0" - "@uniswap/sdk-core" "^4" - "@uniswap/swap-router-contracts" "1.1.0" - "@uniswap/v2-sdk" "^3.2.0" - "@uniswap/v3-sdk" "^3.10.0" - "@uniswap/router-sdk@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@uniswap/router-sdk/-/router-sdk-1.8.0.tgz#725419196ac8aebd5cca58026a1527d494f182a8" @@ -1979,6 +1975,17 @@ "@uniswap/v2-sdk" "^4.1.0" "@uniswap/v3-sdk" "^3.10.1" +"@uniswap/router-sdk@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@uniswap/router-sdk/-/router-sdk-1.9.0.tgz#f35432ddc400ddb83985adc840c5898e2bc008cd" + integrity sha512-UeQrrjhOIzPDxHzkF341Sd9PjIzJwiHFQhaEYFIWNE4yC/wzSiISxc5Ebp94p/KVmettoFRa+682yn9IZBhFTA== + dependencies: + "@ethersproject/abi" "^5.5.0" + "@uniswap/sdk-core" "^4.2.0" + "@uniswap/swap-router-contracts" "^1.1.0" + "@uniswap/v2-sdk" "^4.3.0" + "@uniswap/v3-sdk" "^3.11.0" + "@uniswap/sdk-core@^3.0.0-alpha.3", "@uniswap/sdk-core@^3.0.1": version "3.2.2" resolved "https://registry.npmjs.org/@uniswap/sdk-core/-/sdk-core-3.2.2.tgz" @@ -1991,7 +1998,7 @@ tiny-invariant "^1.1.0" toformat "^2.0.0" -"@uniswap/sdk-core@^4", "@uniswap/sdk-core@^4.0.0", "@uniswap/sdk-core@^4.0.2", "@uniswap/sdk-core@^4.0.3": +"@uniswap/sdk-core@^4.0.3": version "4.0.6" resolved "https://registry.npmjs.org/@uniswap/sdk-core/-/sdk-core-4.0.6.tgz" integrity sha512-6GzCVfnOiJtvo91zlF/VjnC2OEbBRThVclzrh7+Zmo8dBovXwSlXwqn3RkSWACn/XEOzAKH70TficfOWm6mWJA== @@ -2015,24 +2022,38 @@ tiny-invariant "^1.1.0" toformat "^2.0.0" -"@uniswap/smart-order-router@3.17.1": - version "3.17.1" - resolved "https://registry.yarnpkg.com/@uniswap/smart-order-router/-/smart-order-router-3.17.1.tgz#f8e3237fab46de0858c5242a3169573c6009f5e1" - integrity sha512-Ol17EMZv7A3KyEGgq5feL78o5u1SYc5LmNvg3FASq6m8SlgZN7XiirNZic9WNwYoHk2I7gTM3PMKFyik5XrkEw== +"@uniswap/sdk-core@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@uniswap/sdk-core/-/sdk-core-4.2.0.tgz#9930f133baec9c1118d891ebf8fcba7f7efc153d" + integrity sha512-yXAMLHZRYYuh6KpN2nOlLTYBjGiopmI9WUB4Z0tyNkW4ZZub54cUt22eibpGbZAhRAMxclox9IPIs6wwrM3soQ== dependencies: - "@uniswap/default-token-list" "^11.2.0" + "@ethersproject/address" "^5.0.2" + big.js "^5.2.2" + decimal.js-light "^2.5.0" + jsbi "^3.1.4" + tiny-invariant "^1.1.0" + toformat "^2.0.0" + +"@uniswap/smart-order-router@3.25.0": + version "3.25.0" + resolved "https://registry.yarnpkg.com/@uniswap/smart-order-router/-/smart-order-router-3.25.0.tgz#ad4695d996931572455b254988be8e591cda1d56" + integrity sha512-Og1X/dRm+LR5A2nGRy16CvVyQ1Sx6AzBdTb7YQVKiBoRD3hpEyhgd2akXn+f1i0RVZRUL7UmmpaGq783fE8Fbg== + dependencies: + "@types/brotli" "^1.3.4" + "@uniswap/default-token-list" "^11.13.0" "@uniswap/permit2-sdk" "^1.2.0" - "@uniswap/router-sdk" "^1.6.0" - "@uniswap/sdk-core" "^4.0.7" - "@uniswap/swap-router-contracts" "^1.3.0" + "@uniswap/router-sdk" "^1.9.0" + "@uniswap/sdk-core" "^4.2.0" + "@uniswap/swap-router-contracts" "^1.3.1" "@uniswap/token-lists" "^1.0.0-beta.31" - "@uniswap/universal-router" "^1.0.1" - "@uniswap/universal-router-sdk" "^1.5.8" - "@uniswap/v2-sdk" "^3.2.2" - "@uniswap/v3-sdk" "^3.10.0" + "@uniswap/universal-router" "^1.6.0" + "@uniswap/universal-router-sdk" "^1.8.1" + "@uniswap/v2-sdk" "^4.3.0" + "@uniswap/v3-sdk" "^3.11.0" async-retry "^1.3.1" await-timeout "^1.1.1" axios "^0.21.1" + brotli "^1.3.3" bunyan "^1.8.15" bunyan-blackhole "^1.1.1" ethers "^5.7.2" @@ -2054,7 +2075,7 @@ "@uniswap/v3-periphery" "1.3.0" hardhat-watcher "^2.1.1" -"@uniswap/swap-router-contracts@^1.1.0": +"@uniswap/swap-router-contracts@^1.1.0", "@uniswap/swap-router-contracts@^1.3.1": version "1.3.1" resolved "https://registry.yarnpkg.com/@uniswap/swap-router-contracts/-/swap-router-contracts-1.3.1.tgz#0ebbb93eb578625618ed9489872de381f9c66fb4" integrity sha512-mh/YNbwKb7Mut96VuEtL+Z5bRe0xVIbjjiryn+iMMrK2sFKhR4duk/86mEz0UO5gSx4pQIw9G5276P5heY/7Rg== @@ -2066,7 +2087,7 @@ dotenv "^14.2.0" hardhat-watcher "^2.1.1" -"@uniswap/swap-router-contracts@^1.2.1", "@uniswap/swap-router-contracts@^1.3.0": +"@uniswap/swap-router-contracts@^1.2.1": version "1.3.0" resolved "https://registry.npmjs.org/@uniswap/swap-router-contracts/-/swap-router-contracts-1.3.0.tgz" integrity sha512-iKvCuRkHXEe0EMjOf8HFUISTIhlxI57kKFllf3C3PUIE0HmwxrayyoflwAz5u/TRsFGYqJ9IjX2UgzLCsrNa5A== @@ -2108,30 +2129,21 @@ bignumber.js "^9.0.2" ethers "^5.3.1" -"@uniswap/universal-router-sdk@^1.5.8": - version "1.5.8" - resolved "https://registry.yarnpkg.com/@uniswap/universal-router-sdk/-/universal-router-sdk-1.5.8.tgz#16c62c3883e99073ba8b6e19188cf418b6551847" - integrity sha512-9tDDBTXarpdRfJStF5mDCNmsQrCfiIT6HCQN1EPq0tAm2b+JzjRkUzsLpbNpVef066FETc3YjPH6JDPB3CMyyA== +"@uniswap/universal-router-sdk@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@uniswap/universal-router-sdk/-/universal-router-sdk-1.8.1.tgz#1d94c3142aed697d3a06c0542ae8cc9404640296" + integrity sha512-oA4JFLD1JmfJn5AnPcvgOmLIqZnsUpDYSShYCt8CaA3AzBzKmPTz9xpGdQwVHIH8rJnYu6mPTqRg5GwLobeMGA== dependencies: "@uniswap/permit2-sdk" "^1.2.0" - "@uniswap/router-sdk" "^1.6.0" - "@uniswap/sdk-core" "^4.0.0" - "@uniswap/universal-router" "1.4.3" - "@uniswap/v2-sdk" "^3.2.0" - "@uniswap/v3-sdk" "^3.10.0" + "@uniswap/router-sdk" "^1.9.0" + "@uniswap/sdk-core" "^4.2.0" + "@uniswap/universal-router" "1.6.0" + "@uniswap/v2-sdk" "^4.2.0" + "@uniswap/v3-sdk" "^3.11.0" bignumber.js "^9.0.2" ethers "^5.3.1" -"@uniswap/universal-router@1.4.3", "@uniswap/universal-router@^1.0.1": - version "1.4.3" - resolved "https://registry.npmjs.org/@uniswap/universal-router/-/universal-router-1.4.3.tgz" - integrity sha512-SZmYfhYZtsuxrTMCitcA39iJuG9sbe2nvm9iQfd70WjMpbB0+GuEs5OqSHc5tB/ujrVKzPJ1LOoNNGOs0xPEeA== - dependencies: - "@openzeppelin/contracts" "4.7.0" - "@uniswap/v2-core" "1.0.1" - "@uniswap/v3-core" "1.0.0" - -"@uniswap/universal-router@1.6.0": +"@uniswap/universal-router@1.6.0", "@uniswap/universal-router@^1.6.0": version "1.6.0" resolved "https://registry.yarnpkg.com/@uniswap/universal-router/-/universal-router-1.6.0.tgz#3d7372e98a0303c70587802ee6841b8b6b42fc6f" integrity sha512-Gt0b0rtMV1vSrgXY3vz5R1RCZENB+rOkbOidY9GvcXrK1MstSrQSOAc+FCr8FSgsDhmRAdft0lk5YUxtM9i9Lg== @@ -2156,21 +2168,10 @@ tiny-invariant "^1.1.0" tiny-warning "^1.0.3" -"@uniswap/v2-sdk@^3.2.0": - version "3.2.0" - resolved "https://registry.npmjs.org/@uniswap/v2-sdk/-/v2-sdk-3.2.0.tgz" - integrity sha512-kBOJ6Iwtgb/2LckLMIzfbPM37/ll0F+33lzPmZlqoJwsT0F2hZdVfAhclufZcSb0Y9RdLXl6372CZJ+lhx8cUQ== - dependencies: - "@ethersproject/address" "^5.0.0" - "@ethersproject/solidity" "^5.0.0" - "@uniswap/sdk-core" "^4.0.2" - tiny-invariant "^1.1.0" - tiny-warning "^1.0.3" - -"@uniswap/v2-sdk@^3.2.2": - version "3.2.2" - resolved "https://registry.yarnpkg.com/@uniswap/v2-sdk/-/v2-sdk-3.2.2.tgz#8009dc542268e0b736a0298156df3e00c6f99220" - integrity sha512-FyFEQPfNMXhG9i2M8AfowBhMqq44GzhaKU9wpCS6ancI3T+wg89hycTUXONIjsRm5WnpqmvQY73nGUK7T17RMw== +"@uniswap/v2-sdk@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@uniswap/v2-sdk/-/v2-sdk-4.1.0.tgz#05c18bcef11daeec3224e0fb78e81eeb4e0d31d0" + integrity sha512-sIfEF/zYxssjXNum1HBO/vT5rQuDuSuKB3rp23z1V9vZaatkWwW91LwJtlpVh5X0j+nZ+nduBb1pWxeDHdq4Zg== dependencies: "@ethersproject/address" "^5.0.0" "@ethersproject/solidity" "^5.0.0" @@ -2178,14 +2179,14 @@ tiny-invariant "^1.1.0" tiny-warning "^1.0.3" -"@uniswap/v2-sdk@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@uniswap/v2-sdk/-/v2-sdk-4.1.0.tgz#05c18bcef11daeec3224e0fb78e81eeb4e0d31d0" - integrity sha512-sIfEF/zYxssjXNum1HBO/vT5rQuDuSuKB3rp23z1V9vZaatkWwW91LwJtlpVh5X0j+nZ+nduBb1pWxeDHdq4Zg== +"@uniswap/v2-sdk@^4.2.0", "@uniswap/v2-sdk@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@uniswap/v2-sdk/-/v2-sdk-4.3.0.tgz#621dcf4ea236448a0a49cd901932b3a466c8ae02" + integrity sha512-FUKkgo/1TQc/HuWWgsoy1FIcsLkKwm3Nnor88yfn2NH8ER5RK/wDF9UzDDilYh3yyf2mAnaY89CKFhcIl+lbBQ== dependencies: "@ethersproject/address" "^5.0.0" "@ethersproject/solidity" "^5.0.0" - "@uniswap/sdk-core" "^4.0.7" + "@uniswap/sdk-core" "^4.2.0" tiny-invariant "^1.1.0" tiny-warning "^1.0.3" @@ -2245,28 +2246,28 @@ "@uniswap/v3-core" "^1.0.0" base64-sol "1.0.1" -"@uniswap/v3-sdk@^3.10.0": - version "3.10.0" - resolved "https://registry.npmjs.org/@uniswap/v3-sdk/-/v3-sdk-3.10.0.tgz" - integrity sha512-sbmSA1O+Ct960r66Ie/c1rOmVadpwRu8nQ79pGICv0pZJdnFIQ/SReG3F+iC2C2UNNjNP6aC2WDUggXrjyrgnA== +"@uniswap/v3-sdk@^3.10.1": + version "3.10.2" + resolved "https://registry.yarnpkg.com/@uniswap/v3-sdk/-/v3-sdk-3.10.2.tgz#dd23aa80b9b3a539ecdd5532e6778cd2aa799e31" + integrity sha512-5sfYSvRB9ityrB0c/MFaYUsTBQvrwgCuXSyBPsqU8fh6v2dzFgOD3SLx/tHFg8R0RRyN4XPTrw6nqDYXRFtu+g== dependencies: "@ethersproject/abi" "^5.0.12" "@ethersproject/solidity" "^5.0.9" - "@uniswap/sdk-core" "^4" + "@uniswap/sdk-core" "^4.0.7" "@uniswap/swap-router-contracts" "^1.2.1" "@uniswap/v3-periphery" "^1.1.1" "@uniswap/v3-staker" "1.0.0" tiny-invariant "^1.1.0" tiny-warning "^1.0.3" -"@uniswap/v3-sdk@^3.10.1": - version "3.10.2" - resolved "https://registry.yarnpkg.com/@uniswap/v3-sdk/-/v3-sdk-3.10.2.tgz#dd23aa80b9b3a539ecdd5532e6778cd2aa799e31" - integrity sha512-5sfYSvRB9ityrB0c/MFaYUsTBQvrwgCuXSyBPsqU8fh6v2dzFgOD3SLx/tHFg8R0RRyN4XPTrw6nqDYXRFtu+g== +"@uniswap/v3-sdk@^3.11.0": + version "3.11.0" + resolved "https://registry.yarnpkg.com/@uniswap/v3-sdk/-/v3-sdk-3.11.0.tgz#328309fbafddd8c618b7b6850bb99cacf6733a79" + integrity sha512-gz6Q6SlN34AXvxhyz181F90D4OuIkxLnzBAucEzB9Fv3Z+3orHZY/SpGaD02nP1VsNQVu/DQvOsdkPUDGn1Y9Q== dependencies: "@ethersproject/abi" "^5.0.12" "@ethersproject/solidity" "^5.0.9" - "@uniswap/sdk-core" "^4.0.7" + "@uniswap/sdk-core" "^4.2.0" "@uniswap/swap-router-contracts" "^1.2.1" "@uniswap/v3-periphery" "^1.1.1" "@uniswap/v3-staker" "1.0.0" @@ -2677,9 +2678,9 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.3.1: +base64-js@^1.1.2, base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base64-sol@1.0.1: @@ -2766,6 +2767,13 @@ brorand@^1.1.0: resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +brotli@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.3.tgz#7365d8cc00f12cf765d2b2c898716bcf4b604d48" + integrity sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg== + dependencies: + base64-js "^1.1.2" + browser-level@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz"