update to latest deploy + multicall 2

This commit is contained in:
Noah Zinsmeister 2021-04-08 11:27:19 -04:00
parent f0f4110b4b
commit d08cae175a
No known key found for this signature in database
GPG Key ID: 83022DD49188C9F2
5 changed files with 341 additions and 165 deletions

@ -27,7 +27,7 @@ export function getNetworkLibrary(): Web3Provider {
} }
export const injected = new InjectedConnector({ export const injected = new InjectedConnector({
supportedChainIds: [1, 3, 4, 5, 42, 1337], supportedChainIds: [1, 3, 4, 5, 42],
}) })
// mainnet only // mainnet only

@ -1,143 +1,325 @@
[ [
{ {
"constant": true, "inputs":[
"inputs": [],
"name": "getCurrentBlockTimestamp",
"outputs": [
{ {
"name": "timestamp", "components":[
"type": "uint256" {
} "internalType":"address",
], "name":"target",
"payable": false, "type":"address"
"stateMutability": "view",
"type": "function"
}, },
{ {
"constant": true, "internalType":"bytes",
"inputs": [ "name":"callData",
"type":"bytes"
}
],
"internalType":"struct Multicall2.Call[]",
"name":"calls",
"type":"tuple[]"
}
],
"name":"aggregate",
"outputs":[
{ {
"components": [ "internalType":"uint256",
{ "name":"blockNumber",
"name": "target", "type":"uint256"
"type": "address"
}, },
{ {
"name": "callData", "internalType":"bytes[]",
"type": "bytes" "name":"returnData",
"type":"bytes[]"
} }
], ],
"name": "calls", "stateMutability":"nonpayable",
"type": "tuple[]" "type":"function"
}
],
"name": "aggregate",
"outputs": [
{
"name": "blockNumber",
"type": "uint256"
}, },
{ {
"name": "returnData", "inputs":[
"type": "bytes[]" {
} "components":[
], {
"payable": false, "internalType":"address",
"stateMutability": "view", "name":"target",
"type": "function" "type":"address"
}, },
{ {
"constant": true, "internalType":"bytes",
"inputs": [], "name":"callData",
"name": "getLastBlockHash", "type":"bytes"
"outputs": [
{
"name": "blockHash",
"type": "bytes32"
} }
], ],
"payable": false, "internalType":"struct Multicall2.Call[]",
"stateMutability": "view", "name":"calls",
"type": "function" "type":"tuple[]"
}
],
"name":"blockAndAggregate",
"outputs":[
{
"internalType":"uint256",
"name":"blockNumber",
"type":"uint256"
}, },
{ {
"constant": true, "internalType":"bytes32",
"inputs": [ "name":"blockHash",
{ "type":"bytes32"
"name": "addr",
"type": "address"
}
],
"name": "getEthBalance",
"outputs": [
{
"name": "balance",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}, },
{ {
"constant": true, "components":[
"inputs": [],
"name": "getCurrentBlockDifficulty",
"outputs": [
{ {
"name": "difficulty", "internalType":"bool",
"type": "uint256" "name":"success",
} "type":"bool"
],
"payable": false,
"stateMutability": "view",
"type": "function"
}, },
{ {
"constant": true, "internalType":"bytes",
"inputs": [], "name":"returnData",
"name": "getCurrentBlockGasLimit", "type":"bytes"
"outputs": [
{
"name": "gaslimit",
"type": "uint256"
} }
], ],
"payable": false, "internalType":"struct Multicall2.Result[]",
"stateMutability": "view", "name":"returnData",
"type": "function" "type":"tuple[]"
}
],
"stateMutability":"nonpayable",
"type":"function"
}, },
{ {
"constant": true, "inputs":[
"inputs": [],
"name": "getCurrentBlockCoinbase",
"outputs": [
{ {
"name": "coinbase", "internalType":"uint256",
"type": "address" "name":"blockNumber",
"type":"uint256"
} }
], ],
"payable": false, "name":"getBlockHash",
"stateMutability": "view", "outputs":[
"type": "function" {
"internalType":"bytes32",
"name":"blockHash",
"type":"bytes32"
}
],
"stateMutability":"view",
"type":"function"
}, },
{ {
"constant": true, "inputs":[
"inputs": [
],
"name":"getBlockNumber",
"outputs":[
{ {
"name": "blockNumber", "internalType":"uint256",
"type": "uint256" "name":"blockNumber",
"type":"uint256"
} }
], ],
"name": "getBlockHash", "stateMutability":"view",
"outputs": [ "type":"function"
},
{ {
"name": "blockHash", "inputs":[
"type": "bytes32"
],
"name":"getCurrentBlockCoinbase",
"outputs":[
{
"internalType":"address",
"name":"coinbase",
"type":"address"
} }
], ],
"payable": false, "stateMutability":"view",
"stateMutability": "view", "type":"function"
"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"
} }
] ]

@ -1,13 +1,12 @@
import { ChainId } from '@uniswap/sdk-core' import { ChainId } from '@uniswap/sdk-core'
import MULTICALL_ABI from './abi.json' 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.MAINNET]: '0xeefBa1e63905eF1D7ACbA5a8513c70307C1cE441',
[ChainId.ROPSTEN]: '0x53C43764255c17BD724F74c4eF150724AC50a3ed', [ChainId.ROPSTEN]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696',
[ChainId.KOVAN]: '0x2cc8688C5f75E365aaEEb4ea8D6a480405A48D2A', [ChainId.KOVAN]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696',
[ChainId.RINKEBY]: '0x42Ad527de7d4e9d9d011aC45B31D8551f8Fe9821', [ChainId.RINKEBY]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696',
[ChainId.GÖRLI]: '0x77dCa2C955b15e9dE4dbBCf1246B4B85b651e50e', [ChainId.GÖRLI]: '0x5BA1e12693Dc8F9c48aAD8770482f4739bEeD696',
[1337]: '0xFeabCc62240297F1e4b238937D68e7516f0918D7',
} }
export { MULTICALL_ABI, MULTICALL_NETWORKS } export { MULTICALL_ABI, MULTICALL_NETWORKS }

@ -1,46 +1,41 @@
import { ChainId } from '@uniswap/sdk-core' 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.MAINNET]: '',
[ChainId.ROPSTEN]: '', [ChainId.ROPSTEN]: '',
[ChainId.RINKEBY]: '', [ChainId.RINKEBY]: '',
[ChainId.GÖRLI]: '', [ChainId.GÖRLI]: '0x2e52A6ed50aeD4396BdC5889ACB9D04F6804D150',
[ChainId.KOVAN]: '', [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.MAINNET]: '',
[ChainId.ROPSTEN]: '', [ChainId.ROPSTEN]: '',
[ChainId.RINKEBY]: '', [ChainId.RINKEBY]: '',
[ChainId.GÖRLI]: '', [ChainId.GÖRLI]: '0x637df729C49f229B328445AB64573B726F6814dC',
[ChainId.KOVAN]: '', [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.MAINNET]: '',
[ChainId.ROPSTEN]: '', [ChainId.ROPSTEN]: '',
[ChainId.RINKEBY]: '', [ChainId.RINKEBY]: '',
[ChainId.GÖRLI]: '', [ChainId.GÖRLI]: '0x514A3562Bbf313B262A4d2377B559CDe75FAC3C9',
[ChainId.KOVAN]: '', [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.MAINNET]: '',
[ChainId.ROPSTEN]: '', [ChainId.ROPSTEN]: '',
[ChainId.RINKEBY]: '', [ChainId.RINKEBY]: '',
[ChainId.GÖRLI]: '', [ChainId.GÖRLI]: '0x2a3DB14c12674986f6F52deaD1d5ee0919715E8A',
[ChainId.KOVAN]: '', [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.MAINNET]: '',
[ChainId.ROPSTEN]: '', [ChainId.ROPSTEN]: '',
[ChainId.RINKEBY]: '', [ChainId.RINKEBY]: '',
[ChainId.GÖRLI]: '', [ChainId.GÖRLI]: '0x86e14633F8ab81FD49aEF388172A43A7C8731664',
[ChainId.KOVAN]: '', [ChainId.KOVAN]: '',
[1337]: '0x80AacDBEe92DC1c2Fbaa261Fb369696AF1AD9f98',
} }

@ -30,7 +30,7 @@ async function fetchChunk(
console.debug('Fetching chunk', multicallContract, chunk, minBlockNumber) console.debug('Fetching chunk', multicallContract, chunk, minBlockNumber)
let resultsBlockNumber, returnData let resultsBlockNumber, returnData
try { try {
;[resultsBlockNumber, returnData] = await multicallContract.aggregate( ;[resultsBlockNumber, returnData] = await multicallContract.callStatic.aggregate(
chunk.map((obj) => [obj.address, obj.callData]) chunk.map((obj) => [obj.address, obj.callData])
) )
} catch (error) { } catch (error) {