From d08cae175a80394c99971708de25c94cae92affd Mon Sep 17 00:00:00 2001 From: Noah Zinsmeister Date: Thu, 8 Apr 2021 11:27:19 -0400 Subject: [PATCH] update to latest deploy + multicall 2 --- src/connectors/index.ts | 2 +- src/constants/multicall/abi.json | 466 +++++++++++++++++++++---------- src/constants/multicall/index.ts | 11 +- src/constants/v3/index.ts | 25 +- src/state/multicall/updater.tsx | 2 +- 5 files changed, 341 insertions(+), 165 deletions(-) diff --git a/src/connectors/index.ts b/src/connectors/index.ts index 35a89cef34..0817c78a8b 100644 --- a/src/connectors/index.ts +++ b/src/connectors/index.ts @@ -27,7 +27,7 @@ export function getNetworkLibrary(): Web3Provider { } export const injected = new InjectedConnector({ - supportedChainIds: [1, 3, 4, 5, 42, 1337], + supportedChainIds: [1, 3, 4, 5, 42], }) // mainnet only diff --git a/src/constants/multicall/abi.json b/src/constants/multicall/abi.json index 6d4659a4e1..b3df7e29eb 100644 --- a/src/constants/multicall/abi.json +++ b/src/constants/multicall/abi.json @@ -1,143 +1,325 @@ [ - { - "constant": true, - "inputs": [], - "name": "getCurrentBlockTimestamp", - "outputs": [ - { - "name": "timestamp", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "components": [ - { - "name": "target", - "type": "address" - }, - { - "name": "callData", - "type": "bytes" - } - ], - "name": "calls", - "type": "tuple[]" - } - ], - "name": "aggregate", - "outputs": [ - { - "name": "blockNumber", - "type": "uint256" - }, - { - "name": "returnData", - "type": "bytes[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLastBlockHash", - "outputs": [ - { - "name": "blockHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getEthBalance", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentBlockDifficulty", - "outputs": [ - { - "name": "difficulty", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentBlockGasLimit", - "outputs": [ - { - "name": "gaslimit", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentBlockCoinbase", - "outputs": [ - { - "name": "coinbase", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "blockNumber", - "type": "uint256" - } - ], - "name": "getBlockHash", - "outputs": [ - { - "name": "blockHash", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } -] + { + "inputs":[ + { + "components":[ + { + "internalType":"address", + "name":"target", + "type":"address" + }, + { + "internalType":"bytes", + "name":"callData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Call[]", + "name":"calls", + "type":"tuple[]" + } + ], + "name":"aggregate", + "outputs":[ + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + }, + { + "internalType":"bytes[]", + "name":"returnData", + "type":"bytes[]" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "components":[ + { + "internalType":"address", + "name":"target", + "type":"address" + }, + { + "internalType":"bytes", + "name":"callData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Call[]", + "name":"calls", + "type":"tuple[]" + } + ], + "name":"blockAndAggregate", + "outputs":[ + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + }, + { + "internalType":"bytes32", + "name":"blockHash", + "type":"bytes32" + }, + { + "components":[ + { + "internalType":"bool", + "name":"success", + "type":"bool" + }, + { + "internalType":"bytes", + "name":"returnData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Result[]", + "name":"returnData", + "type":"tuple[]" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "name":"getBlockHash", + "outputs":[ + { + "internalType":"bytes32", + "name":"blockHash", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getBlockNumber", + "outputs":[ + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getCurrentBlockCoinbase", + "outputs":[ + { + "internalType":"address", + "name":"coinbase", + "type":"address" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getCurrentBlockDifficulty", + "outputs":[ + { + "internalType":"uint256", + "name":"difficulty", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getCurrentBlockGasLimit", + "outputs":[ + { + "internalType":"uint256", + "name":"gaslimit", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getCurrentBlockTimestamp", + "outputs":[ + { + "internalType":"uint256", + "name":"timestamp", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"address", + "name":"addr", + "type":"address" + } + ], + "name":"getEthBalance", + "outputs":[ + { + "internalType":"uint256", + "name":"balance", + "type":"uint256" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + + ], + "name":"getLastBlockHash", + "outputs":[ + { + "internalType":"bytes32", + "name":"blockHash", + "type":"bytes32" + } + ], + "stateMutability":"view", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bool", + "name":"requireSuccess", + "type":"bool" + }, + { + "components":[ + { + "internalType":"address", + "name":"target", + "type":"address" + }, + { + "internalType":"bytes", + "name":"callData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Call[]", + "name":"calls", + "type":"tuple[]" + } + ], + "name":"tryAggregate", + "outputs":[ + { + "components":[ + { + "internalType":"bool", + "name":"success", + "type":"bool" + }, + { + "internalType":"bytes", + "name":"returnData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Result[]", + "name":"returnData", + "type":"tuple[]" + } + ], + "stateMutability":"nonpayable", + "type":"function" + }, + { + "inputs":[ + { + "internalType":"bool", + "name":"requireSuccess", + "type":"bool" + }, + { + "components":[ + { + "internalType":"address", + "name":"target", + "type":"address" + }, + { + "internalType":"bytes", + "name":"callData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Call[]", + "name":"calls", + "type":"tuple[]" + } + ], + "name":"tryBlockAndAggregate", + "outputs":[ + { + "internalType":"uint256", + "name":"blockNumber", + "type":"uint256" + }, + { + "internalType":"bytes32", + "name":"blockHash", + "type":"bytes32" + }, + { + "components":[ + { + "internalType":"bool", + "name":"success", + "type":"bool" + }, + { + "internalType":"bytes", + "name":"returnData", + "type":"bytes" + } + ], + "internalType":"struct Multicall2.Result[]", + "name":"returnData", + "type":"tuple[]" + } + ], + "stateMutability":"nonpayable", + "type":"function" + } +] \ No newline at end of file diff --git a/src/constants/multicall/index.ts b/src/constants/multicall/index.ts index 25444d196e..4bf9851af4 100644 --- a/src/constants/multicall/index.ts +++ b/src/constants/multicall/index.ts @@ -1,13 +1,12 @@ import { ChainId } from '@uniswap/sdk-core' import MULTICALL_ABI from './abi.json' -const MULTICALL_NETWORKS: { [chainId in ChainId | 1337]: string } = { +const MULTICALL_NETWORKS: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441', - [ChainId.ROPSTEN]: '0x53C43764255c17BD724F74c4eF150724AC50a3ed', - [ChainId.KOVAN]: '0x2cc8688C5f75E365aaEEb4ea8D6a480405A48D2A', - [ChainId.RINKEBY]: '0x42Ad527de7d4e9d9d011aC45B31D8551f8Fe9821', - [ChainId.GÖRLI]: '0x77dCa2C955b15e9dE4dbBCf1246B4B85b651e50e', - [1337]: '0xFeabCc62240297F1e4b238937D68e7516f0918D7', + [ChainId.ROPSTEN]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', + [ChainId.KOVAN]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', + [ChainId.RINKEBY]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', + [ChainId.GÖRLI]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696', } export { MULTICALL_ABI, MULTICALL_NETWORKS } diff --git a/src/constants/v3/index.ts b/src/constants/v3/index.ts index d85503fc72..5a9fdae00d 100644 --- a/src/constants/v3/index.ts +++ b/src/constants/v3/index.ts @@ -1,46 +1,41 @@ import { ChainId } from '@uniswap/sdk-core' -export const FACTORY_ADDRESSES: { [chainId in ChainId | 1337]: string } = { +export const FACTORY_ADDRESSES: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '', [ChainId.ROPSTEN]: '', [ChainId.RINKEBY]: '', - [ChainId.GÖRLI]: '', + [ChainId.GÖRLI]: '0x2e52A6ed50aeD4396BdC5889ACB9D04F6804D150', [ChainId.KOVAN]: '', - [1337]: '0x49A6d0854B0fF95065f0dA247b8a2d440D92D2c7', } -export const TICK_LENS_ADDRESSES: { [chainId in ChainId | 1337]: string } = { +export const TICK_LENS_ADDRESSES: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '', [ChainId.ROPSTEN]: '', [ChainId.RINKEBY]: '', - [ChainId.GÖRLI]: '', + [ChainId.GÖRLI]: '0x637df729C49f229B328445AB64573B726F6814dC', [ChainId.KOVAN]: '', - [1337]: '0x99Cb00560BFca3E5B7Cda8e820dDFF1ED403966E', } -export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: { [chainId in ChainId | 1337]: string } = { +export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '', [ChainId.ROPSTEN]: '', [ChainId.RINKEBY]: '', - [ChainId.GÖRLI]: '', + [ChainId.GÖRLI]: '0x514A3562Bbf313B262A4d2377B559CDe75FAC3C9', [ChainId.KOVAN]: '', - [1337]: '0x273Edaa13C845F605b5886Dd66C89AB497A6B17b', } -export const NONFUNGIBLE_TOKEN_POSITION_DESCRIPTOR_ADDRESSES: { [chainId in ChainId | 1337]: string } = { +export const NONFUNGIBLE_TOKEN_POSITION_DESCRIPTOR_ADDRESSES: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '', [ChainId.ROPSTEN]: '', [ChainId.RINKEBY]: '', - [ChainId.GÖRLI]: '', + [ChainId.GÖRLI]: '0x2a3DB14c12674986f6F52deaD1d5ee0919715E8A', [ChainId.KOVAN]: '', - [1337]: '0x3d137e860008BaF6d1c063158e5ec0baBbcFefF8', } -export const SWAP_ROUTER_ADDRESSES: { [chainId in ChainId | 1337]: string } = { +export const SWAP_ROUTER_ADDRESSES: { [chainId in ChainId]: string } = { [ChainId.MAINNET]: '', [ChainId.ROPSTEN]: '', [ChainId.RINKEBY]: '', - [ChainId.GÖRLI]: '', + [ChainId.GÖRLI]: '0x86e14633F8ab81FD49aEF388172A43A7C8731664', [ChainId.KOVAN]: '', - [1337]: '0x80AacDBEe92DC1c2Fbaa261Fb369696AF1AD9f98', } diff --git a/src/state/multicall/updater.tsx b/src/state/multicall/updater.tsx index ae7045d371..fb35d84892 100644 --- a/src/state/multicall/updater.tsx +++ b/src/state/multicall/updater.tsx @@ -30,7 +30,7 @@ async function fetchChunk( console.debug('Fetching chunk', multicallContract, chunk, minBlockNumber) let resultsBlockNumber, returnData try { - ;[resultsBlockNumber, returnData] = await multicallContract.aggregate( + ;[resultsBlockNumber, returnData] = await multicallContract.callStatic.aggregate( chunk.map((obj) => [obj.address, obj.callData]) ) } catch (error) {