├── .env.example ├── .gitignore ├── AggregatorV3Interface.json ├── README.md ├── multicall.js ├── package.json └── yarn.lock /.env.example: -------------------------------------------------------------------------------- 1 | ALCHEMY_MAINNET_RPC_URL="asdfasdfsf" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | -------------------------------------------------------------------------------- /AggregatorV3Interface.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "AggregatorV3Interface", 4 | "sourceName": "contracts/interfaces/AggregatorV3Interface.sol.sol", 5 | "abi": [ 6 | { 7 | "inputs": [], 8 | "name": "decimals", 9 | "outputs": [ 10 | { 11 | "internalType": "uint8", 12 | "name": "", 13 | "type": "uint8" 14 | } 15 | ], 16 | "stateMutability": "view", 17 | "type": "function" 18 | }, 19 | { 20 | "inputs": [], 21 | "name": "description", 22 | "outputs": [ 23 | { 24 | "internalType": "string", 25 | "name": "", 26 | "type": "string" 27 | } 28 | ], 29 | "stateMutability": "view", 30 | "type": "function" 31 | }, 32 | { 33 | "inputs": [ 34 | { 35 | "internalType": "uint80", 36 | "name": "_roundId", 37 | "type": "uint80" 38 | } 39 | ], 40 | "name": "getRoundData", 41 | "outputs": [ 42 | { 43 | "internalType": "uint80", 44 | "name": "roundId", 45 | "type": "uint80" 46 | }, 47 | { 48 | "internalType": "int256", 49 | "name": "answer", 50 | "type": "int256" 51 | }, 52 | { 53 | "internalType": "uint256", 54 | "name": "startedAt", 55 | "type": "uint256" 56 | }, 57 | { 58 | "internalType": "uint256", 59 | "name": "updatedAt", 60 | "type": "uint256" 61 | }, 62 | { 63 | "internalType": "uint80", 64 | "name": "answeredInRound", 65 | "type": "uint80" 66 | } 67 | ], 68 | "stateMutability": "view", 69 | "type": "function" 70 | }, 71 | { 72 | "inputs": [], 73 | "name": "latestRoundData", 74 | "outputs": [ 75 | { 76 | "internalType": "uint80", 77 | "name": "roundId", 78 | "type": "uint80" 79 | }, 80 | { 81 | "internalType": "int256", 82 | "name": "answer", 83 | "type": "int256" 84 | }, 85 | { 86 | "internalType": "uint256", 87 | "name": "startedAt", 88 | "type": "uint256" 89 | }, 90 | { 91 | "internalType": "uint256", 92 | "name": "updatedAt", 93 | "type": "uint256" 94 | }, 95 | { 96 | "internalType": "uint80", 97 | "name": "answeredInRound", 98 | "type": "uint80" 99 | } 100 | ], 101 | "stateMutability": "view", 102 | "type": "function" 103 | }, 104 | { 105 | "inputs": [], 106 | "name": "version", 107 | "outputs": [ 108 | { 109 | "internalType": "uint256", 110 | "name": "", 111 | "type": "uint256" 112 | } 113 | ], 114 | "stateMutability": "view", 115 | "type": "function" 116 | } 117 | ], 118 | "bytecode": "0x", 119 | "deployedBytecode": "0x", 120 | "linkReferences": {}, 121 | "deployedLinkReferences": {} 122 | } 123 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Multicall JS 2 | 3 | A simple multicall implementation in javascript. 4 | 5 | ## Requirements 6 | 7 | - [Nodejs](https://nodejs.org/en/download/) 8 | - [Yarn](https://classic.yarnpkg.com/lang/en/docs/install/) 9 | 10 | ## Quickstart 11 | 12 | Have your `ALCHEMY_MAINNET_RPC_URL` environment variables set. Otherwise, add it to a file named `.env` that looks similar to `.env.example` 13 | 14 | 1. Clone the repo 15 | ``` 16 | git clone https://github.com/PatrickAlphaC/multicall-js 17 | cd multicall-js 18 | ``` 19 | 20 | 2. Download dependencies 21 | 22 | ``` 23 | yarn 24 | ``` 25 | 26 | 3. Run the script 27 | 28 | ``` 29 | node mulicall.js 30 | ``` 31 | 32 | 33 | -------------------------------------------------------------------------------- /multicall.js: -------------------------------------------------------------------------------- 1 | const { MultiCall } = require('@indexed-finance/multicall') 2 | const { abi } = require('./AggregatorV3Interface.json') 3 | const priceFeedAddress = "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" 4 | const ethers = require('ethers') 5 | require("dotenv").config() 6 | 7 | async function main() { 8 | let provider = new ethers.providers.JsonRpcProvider(process.env.ALCHEMY_MAINNET_RPC_URL) 9 | const multi = new MultiCall(provider) 10 | const inputs = [] 11 | numberOfRounds = 10 12 | priceFeed = new ethers.Contract(priceFeedAddress, abi, provider) 13 | latestRound = (await priceFeed.latestRoundData())[0] 14 | for (let round = latestRound.sub(numberOfRounds); round.lt(latestRound); round = round.add(1)) { 15 | inputs.push({ target: priceFeedAddress, function: 'getRoundData', args: [round.toString()] }) 16 | } 17 | const roundData = await multi.multiCall(abi, inputs) 18 | console.log(roundData) 19 | return roundData 20 | } 21 | 22 | main() 23 | .then(() => process.exit(0)) 24 | .catch((error) => { 25 | console.error(error) 26 | process.exit(1) 27 | }) 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "@indexed-finance/multicall": "^2.0.0", 4 | "dotenv": "^10.0.0", 5 | "ethers": "^5.4.7" 6 | }, 7 | "scripts": { 8 | "multicall": "node multicall.js" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ethersproject/abi@5.4.1", "@ethersproject/abi@^5.4.0": 6 | version "5.4.1" 7 | resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.4.1.tgz#6ac28fafc9ef6f5a7a37e30356a2eb31fa05d39b" 8 | integrity sha512-9mhbjUk76BiSluiiW4BaYyI58KSbDMMQpCLdsAR+RsT2GyATiNYxVv+pGWRrekmsIdY3I+hOqsYQSTkc8L/mcg== 9 | dependencies: 10 | "@ethersproject/address" "^5.4.0" 11 | "@ethersproject/bignumber" "^5.4.0" 12 | "@ethersproject/bytes" "^5.4.0" 13 | "@ethersproject/constants" "^5.4.0" 14 | "@ethersproject/hash" "^5.4.0" 15 | "@ethersproject/keccak256" "^5.4.0" 16 | "@ethersproject/logger" "^5.4.0" 17 | "@ethersproject/properties" "^5.4.0" 18 | "@ethersproject/strings" "^5.4.0" 19 | 20 | "@ethersproject/abstract-provider@5.4.1", "@ethersproject/abstract-provider@^5.4.0": 21 | version "5.4.1" 22 | resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz#e404309a29f771bd4d28dbafadcaa184668c2a6e" 23 | integrity sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ== 24 | dependencies: 25 | "@ethersproject/bignumber" "^5.4.0" 26 | "@ethersproject/bytes" "^5.4.0" 27 | "@ethersproject/logger" "^5.4.0" 28 | "@ethersproject/networks" "^5.4.0" 29 | "@ethersproject/properties" "^5.4.0" 30 | "@ethersproject/transactions" "^5.4.0" 31 | "@ethersproject/web" "^5.4.0" 32 | 33 | "@ethersproject/abstract-signer@5.4.1", "@ethersproject/abstract-signer@^5.4.0": 34 | version "5.4.1" 35 | resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz#e4e9abcf4dd4f1ba0db7dff9746a5f78f355ea81" 36 | integrity sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA== 37 | dependencies: 38 | "@ethersproject/abstract-provider" "^5.4.0" 39 | "@ethersproject/bignumber" "^5.4.0" 40 | "@ethersproject/bytes" "^5.4.0" 41 | "@ethersproject/logger" "^5.4.0" 42 | "@ethersproject/properties" "^5.4.0" 43 | 44 | "@ethersproject/address@5.4.0", "@ethersproject/address@^5.4.0": 45 | version "5.4.0" 46 | resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.4.0.tgz#ba2d00a0f8c4c0854933b963b9a3a9f6eb4a37a3" 47 | integrity sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q== 48 | dependencies: 49 | "@ethersproject/bignumber" "^5.4.0" 50 | "@ethersproject/bytes" "^5.4.0" 51 | "@ethersproject/keccak256" "^5.4.0" 52 | "@ethersproject/logger" "^5.4.0" 53 | "@ethersproject/rlp" "^5.4.0" 54 | 55 | "@ethersproject/base64@5.4.0", "@ethersproject/base64@^5.4.0": 56 | version "5.4.0" 57 | resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.4.0.tgz#7252bf65295954c9048c7ca5f43e5c86441b2a9a" 58 | integrity sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ== 59 | dependencies: 60 | "@ethersproject/bytes" "^5.4.0" 61 | 62 | "@ethersproject/basex@5.4.0", "@ethersproject/basex@^5.4.0": 63 | version "5.4.0" 64 | resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.4.0.tgz#0a2da0f4e76c504a94f2b21d3161ed9438c7f8a6" 65 | integrity sha512-J07+QCVJ7np2bcpxydFVf/CuYo9mZ7T73Pe7KQY4c1lRlrixMeblauMxHXD0MPwFmUHZIILDNViVkykFBZylbg== 66 | dependencies: 67 | "@ethersproject/bytes" "^5.4.0" 68 | "@ethersproject/properties" "^5.4.0" 69 | 70 | "@ethersproject/bignumber@5.4.2", "@ethersproject/bignumber@^5.4.0": 71 | version "5.4.2" 72 | resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.4.2.tgz#44232e015ae4ce82ac034de549eb3583c71283d8" 73 | integrity sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA== 74 | dependencies: 75 | "@ethersproject/bytes" "^5.4.0" 76 | "@ethersproject/logger" "^5.4.0" 77 | bn.js "^4.11.9" 78 | 79 | "@ethersproject/bytes@5.4.0", "@ethersproject/bytes@^5.4.0": 80 | version "5.4.0" 81 | resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.4.0.tgz#56fa32ce3bf67153756dbaefda921d1d4774404e" 82 | integrity sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA== 83 | dependencies: 84 | "@ethersproject/logger" "^5.4.0" 85 | 86 | "@ethersproject/constants@5.4.0", "@ethersproject/constants@^5.4.0": 87 | version "5.4.0" 88 | resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.4.0.tgz#ee0bdcb30bf1b532d2353c977bf2ef1ee117958a" 89 | integrity sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q== 90 | dependencies: 91 | "@ethersproject/bignumber" "^5.4.0" 92 | 93 | "@ethersproject/contracts@5.4.1": 94 | version "5.4.1" 95 | resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.4.1.tgz#3eb4f35b7fe60a962a75804ada2746494df3e470" 96 | integrity sha512-m+z2ZgPy4pyR15Je//dUaymRUZq5MtDajF6GwFbGAVmKz/RF+DNIPwF0k5qEcL3wPGVqUjFg2/krlCRVTU4T5w== 97 | dependencies: 98 | "@ethersproject/abi" "^5.4.0" 99 | "@ethersproject/abstract-provider" "^5.4.0" 100 | "@ethersproject/abstract-signer" "^5.4.0" 101 | "@ethersproject/address" "^5.4.0" 102 | "@ethersproject/bignumber" "^5.4.0" 103 | "@ethersproject/bytes" "^5.4.0" 104 | "@ethersproject/constants" "^5.4.0" 105 | "@ethersproject/logger" "^5.4.0" 106 | "@ethersproject/properties" "^5.4.0" 107 | "@ethersproject/transactions" "^5.4.0" 108 | 109 | "@ethersproject/hash@5.4.0", "@ethersproject/hash@^5.4.0": 110 | version "5.4.0" 111 | resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.4.0.tgz#d18a8e927e828e22860a011f39e429d388344ae0" 112 | integrity sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA== 113 | dependencies: 114 | "@ethersproject/abstract-signer" "^5.4.0" 115 | "@ethersproject/address" "^5.4.0" 116 | "@ethersproject/bignumber" "^5.4.0" 117 | "@ethersproject/bytes" "^5.4.0" 118 | "@ethersproject/keccak256" "^5.4.0" 119 | "@ethersproject/logger" "^5.4.0" 120 | "@ethersproject/properties" "^5.4.0" 121 | "@ethersproject/strings" "^5.4.0" 122 | 123 | "@ethersproject/hdnode@5.4.0", "@ethersproject/hdnode@^5.4.0": 124 | version "5.4.0" 125 | resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.4.0.tgz#4bc9999b9a12eb5ce80c5faa83114a57e4107cac" 126 | integrity sha512-pKxdS0KAaeVGfZPp1KOiDLB0jba11tG6OP1u11QnYfb7pXn6IZx0xceqWRr6ygke8+Kw74IpOoSi7/DwANhy8Q== 127 | dependencies: 128 | "@ethersproject/abstract-signer" "^5.4.0" 129 | "@ethersproject/basex" "^5.4.0" 130 | "@ethersproject/bignumber" "^5.4.0" 131 | "@ethersproject/bytes" "^5.4.0" 132 | "@ethersproject/logger" "^5.4.0" 133 | "@ethersproject/pbkdf2" "^5.4.0" 134 | "@ethersproject/properties" "^5.4.0" 135 | "@ethersproject/sha2" "^5.4.0" 136 | "@ethersproject/signing-key" "^5.4.0" 137 | "@ethersproject/strings" "^5.4.0" 138 | "@ethersproject/transactions" "^5.4.0" 139 | "@ethersproject/wordlists" "^5.4.0" 140 | 141 | "@ethersproject/json-wallets@5.4.0", "@ethersproject/json-wallets@^5.4.0": 142 | version "5.4.0" 143 | resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.4.0.tgz#2583341cfe313fc9856642e8ace3080154145e95" 144 | integrity sha512-igWcu3fx4aiczrzEHwG1xJZo9l1cFfQOWzTqwRw/xcvxTk58q4f9M7cjh51EKphMHvrJtcezJ1gf1q1AUOfEQQ== 145 | dependencies: 146 | "@ethersproject/abstract-signer" "^5.4.0" 147 | "@ethersproject/address" "^5.4.0" 148 | "@ethersproject/bytes" "^5.4.0" 149 | "@ethersproject/hdnode" "^5.4.0" 150 | "@ethersproject/keccak256" "^5.4.0" 151 | "@ethersproject/logger" "^5.4.0" 152 | "@ethersproject/pbkdf2" "^5.4.0" 153 | "@ethersproject/properties" "^5.4.0" 154 | "@ethersproject/random" "^5.4.0" 155 | "@ethersproject/strings" "^5.4.0" 156 | "@ethersproject/transactions" "^5.4.0" 157 | aes-js "3.0.0" 158 | scrypt-js "3.0.1" 159 | 160 | "@ethersproject/keccak256@5.4.0", "@ethersproject/keccak256@^5.4.0": 161 | version "5.4.0" 162 | resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.4.0.tgz#7143b8eea4976080241d2bd92e3b1f1bf7025318" 163 | integrity sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A== 164 | dependencies: 165 | "@ethersproject/bytes" "^5.4.0" 166 | js-sha3 "0.5.7" 167 | 168 | "@ethersproject/logger@5.4.1", "@ethersproject/logger@^5.4.0": 169 | version "5.4.1" 170 | resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.4.1.tgz#503bd33683538b923c578c07d1c2c0dd18672054" 171 | integrity sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A== 172 | 173 | "@ethersproject/networks@5.4.2", "@ethersproject/networks@^5.4.0": 174 | version "5.4.2" 175 | resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.4.2.tgz#2247d977626e97e2c3b8ee73cd2457babde0ce35" 176 | integrity sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw== 177 | dependencies: 178 | "@ethersproject/logger" "^5.4.0" 179 | 180 | "@ethersproject/pbkdf2@5.4.0", "@ethersproject/pbkdf2@^5.4.0": 181 | version "5.4.0" 182 | resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.4.0.tgz#ed88782a67fda1594c22d60d0ca911a9d669641c" 183 | integrity sha512-x94aIv6tiA04g6BnazZSLoRXqyusawRyZWlUhKip2jvoLpzJuLb//KtMM6PEovE47pMbW+Qe1uw+68ameJjB7g== 184 | dependencies: 185 | "@ethersproject/bytes" "^5.4.0" 186 | "@ethersproject/sha2" "^5.4.0" 187 | 188 | "@ethersproject/properties@5.4.1", "@ethersproject/properties@^5.4.0": 189 | version "5.4.1" 190 | resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.4.1.tgz#9f051f976ce790142c6261ccb7b826eaae1f2f36" 191 | integrity sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w== 192 | dependencies: 193 | "@ethersproject/logger" "^5.4.0" 194 | 195 | "@ethersproject/providers@5.4.5": 196 | version "5.4.5" 197 | resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.4.5.tgz#eb2ea2a743a8115f79604a8157233a3a2c832928" 198 | integrity sha512-1GkrvkiAw3Fj28cwi1Sqm8ED1RtERtpdXmRfwIBGmqBSN5MoeRUHuwHPppMtbPayPgpFcvD7/Gdc9doO5fGYgw== 199 | dependencies: 200 | "@ethersproject/abstract-provider" "^5.4.0" 201 | "@ethersproject/abstract-signer" "^5.4.0" 202 | "@ethersproject/address" "^5.4.0" 203 | "@ethersproject/basex" "^5.4.0" 204 | "@ethersproject/bignumber" "^5.4.0" 205 | "@ethersproject/bytes" "^5.4.0" 206 | "@ethersproject/constants" "^5.4.0" 207 | "@ethersproject/hash" "^5.4.0" 208 | "@ethersproject/logger" "^5.4.0" 209 | "@ethersproject/networks" "^5.4.0" 210 | "@ethersproject/properties" "^5.4.0" 211 | "@ethersproject/random" "^5.4.0" 212 | "@ethersproject/rlp" "^5.4.0" 213 | "@ethersproject/sha2" "^5.4.0" 214 | "@ethersproject/strings" "^5.4.0" 215 | "@ethersproject/transactions" "^5.4.0" 216 | "@ethersproject/web" "^5.4.0" 217 | bech32 "1.1.4" 218 | ws "7.4.6" 219 | 220 | "@ethersproject/random@5.4.0", "@ethersproject/random@^5.4.0": 221 | version "5.4.0" 222 | resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.4.0.tgz#9cdde60e160d024be39cc16f8de3b9ce39191e16" 223 | integrity sha512-pnpWNQlf0VAZDEOVp1rsYQosmv2o0ITS/PecNw+mS2/btF8eYdspkN0vIXrCMtkX09EAh9bdk8GoXmFXM1eAKw== 224 | dependencies: 225 | "@ethersproject/bytes" "^5.4.0" 226 | "@ethersproject/logger" "^5.4.0" 227 | 228 | "@ethersproject/rlp@5.4.0", "@ethersproject/rlp@^5.4.0": 229 | version "5.4.0" 230 | resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.4.0.tgz#de61afda5ff979454e76d3b3310a6c32ad060931" 231 | integrity sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg== 232 | dependencies: 233 | "@ethersproject/bytes" "^5.4.0" 234 | "@ethersproject/logger" "^5.4.0" 235 | 236 | "@ethersproject/sha2@5.4.0", "@ethersproject/sha2@^5.4.0": 237 | version "5.4.0" 238 | resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.4.0.tgz#c9a8db1037014cbc4e9482bd662f86c090440371" 239 | integrity sha512-siheo36r1WD7Cy+bDdE1BJ8y0bDtqXCOxRMzPa4bV1TGt/eTUUt03BHoJNB6reWJD8A30E/pdJ8WFkq+/uz4Gg== 240 | dependencies: 241 | "@ethersproject/bytes" "^5.4.0" 242 | "@ethersproject/logger" "^5.4.0" 243 | hash.js "1.1.7" 244 | 245 | "@ethersproject/signing-key@5.4.0", "@ethersproject/signing-key@^5.4.0": 246 | version "5.4.0" 247 | resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.4.0.tgz#2f05120984e81cf89a3d5f6dec5c68ee0894fbec" 248 | integrity sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A== 249 | dependencies: 250 | "@ethersproject/bytes" "^5.4.0" 251 | "@ethersproject/logger" "^5.4.0" 252 | "@ethersproject/properties" "^5.4.0" 253 | bn.js "^4.11.9" 254 | elliptic "6.5.4" 255 | hash.js "1.1.7" 256 | 257 | "@ethersproject/solidity@5.4.0": 258 | version "5.4.0" 259 | resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.4.0.tgz#1305e058ea02dc4891df18b33232b11a14ece9ec" 260 | integrity sha512-XFQTZ7wFSHOhHcV1DpcWj7VXECEiSrBuv7JErJvB9Uo+KfCdc3QtUZV+Vjh/AAaYgezUEKbCtE6Khjm44seevQ== 261 | dependencies: 262 | "@ethersproject/bignumber" "^5.4.0" 263 | "@ethersproject/bytes" "^5.4.0" 264 | "@ethersproject/keccak256" "^5.4.0" 265 | "@ethersproject/sha2" "^5.4.0" 266 | "@ethersproject/strings" "^5.4.0" 267 | 268 | "@ethersproject/strings@5.4.0", "@ethersproject/strings@^5.4.0": 269 | version "5.4.0" 270 | resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.4.0.tgz#fb12270132dd84b02906a8d895ae7e7fa3d07d9a" 271 | integrity sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA== 272 | dependencies: 273 | "@ethersproject/bytes" "^5.4.0" 274 | "@ethersproject/constants" "^5.4.0" 275 | "@ethersproject/logger" "^5.4.0" 276 | 277 | "@ethersproject/transactions@5.4.0", "@ethersproject/transactions@^5.4.0": 278 | version "5.4.0" 279 | resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.4.0.tgz#a159d035179334bd92f340ce0f77e83e9e1522e0" 280 | integrity sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ== 281 | dependencies: 282 | "@ethersproject/address" "^5.4.0" 283 | "@ethersproject/bignumber" "^5.4.0" 284 | "@ethersproject/bytes" "^5.4.0" 285 | "@ethersproject/constants" "^5.4.0" 286 | "@ethersproject/keccak256" "^5.4.0" 287 | "@ethersproject/logger" "^5.4.0" 288 | "@ethersproject/properties" "^5.4.0" 289 | "@ethersproject/rlp" "^5.4.0" 290 | "@ethersproject/signing-key" "^5.4.0" 291 | 292 | "@ethersproject/units@5.4.0": 293 | version "5.4.0" 294 | resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.4.0.tgz#d57477a4498b14b88b10396062c8cbbaf20c79fe" 295 | integrity sha512-Z88krX40KCp+JqPCP5oPv5p750g+uU6gopDYRTBGcDvOASh6qhiEYCRatuM/suC4S2XW9Zz90QI35MfSrTIaFg== 296 | dependencies: 297 | "@ethersproject/bignumber" "^5.4.0" 298 | "@ethersproject/constants" "^5.4.0" 299 | "@ethersproject/logger" "^5.4.0" 300 | 301 | "@ethersproject/wallet@5.4.0": 302 | version "5.4.0" 303 | resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.4.0.tgz#fa5b59830b42e9be56eadd45a16a2e0933ad9353" 304 | integrity sha512-wU29majLjM6AjCjpat21mPPviG+EpK7wY1+jzKD0fg3ui5fgedf2zEu1RDgpfIMsfn8fJHJuzM4zXZ2+hSHaSQ== 305 | dependencies: 306 | "@ethersproject/abstract-provider" "^5.4.0" 307 | "@ethersproject/abstract-signer" "^5.4.0" 308 | "@ethersproject/address" "^5.4.0" 309 | "@ethersproject/bignumber" "^5.4.0" 310 | "@ethersproject/bytes" "^5.4.0" 311 | "@ethersproject/hash" "^5.4.0" 312 | "@ethersproject/hdnode" "^5.4.0" 313 | "@ethersproject/json-wallets" "^5.4.0" 314 | "@ethersproject/keccak256" "^5.4.0" 315 | "@ethersproject/logger" "^5.4.0" 316 | "@ethersproject/properties" "^5.4.0" 317 | "@ethersproject/random" "^5.4.0" 318 | "@ethersproject/signing-key" "^5.4.0" 319 | "@ethersproject/transactions" "^5.4.0" 320 | "@ethersproject/wordlists" "^5.4.0" 321 | 322 | "@ethersproject/web@5.4.0", "@ethersproject/web@^5.4.0": 323 | version "5.4.0" 324 | resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.4.0.tgz#49fac173b96992334ed36a175538ba07a7413d1f" 325 | integrity sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og== 326 | dependencies: 327 | "@ethersproject/base64" "^5.4.0" 328 | "@ethersproject/bytes" "^5.4.0" 329 | "@ethersproject/logger" "^5.4.0" 330 | "@ethersproject/properties" "^5.4.0" 331 | "@ethersproject/strings" "^5.4.0" 332 | 333 | "@ethersproject/wordlists@5.4.0", "@ethersproject/wordlists@^5.4.0": 334 | version "5.4.0" 335 | resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.4.0.tgz#f34205ec3bbc9e2c49cadaee774cf0b07e7573d7" 336 | integrity sha512-FemEkf6a+EBKEPxlzeVgUaVSodU7G0Na89jqKjmWMlDB0tomoU8RlEMgUvXyqtrg8N4cwpLh8nyRnm1Nay1isA== 337 | dependencies: 338 | "@ethersproject/bytes" "^5.4.0" 339 | "@ethersproject/hash" "^5.4.0" 340 | "@ethersproject/logger" "^5.4.0" 341 | "@ethersproject/properties" "^5.4.0" 342 | "@ethersproject/strings" "^5.4.0" 343 | 344 | "@indexed-finance/multicall@^2.0.0": 345 | version "2.0.0" 346 | resolved "https://registry.yarnpkg.com/@indexed-finance/multicall/-/multicall-2.0.0.tgz#ec82a51701bb702e7dd4cb06ab81cf9315fa3b0b" 347 | integrity sha512-UgwW+XfLvjjswWc4OWAK8xtSZcW4BEaIA14bebE5JePt2b35gab9W72MKrrL0Wp5hGvAtuaQXbPHgOFuKcqR4g== 348 | 349 | aes-js@3.0.0: 350 | version "3.0.0" 351 | resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" 352 | integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= 353 | 354 | bech32@1.1.4: 355 | version "1.1.4" 356 | resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" 357 | integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== 358 | 359 | bn.js@^4.11.9: 360 | version "4.12.0" 361 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" 362 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== 363 | 364 | brorand@^1.1.0: 365 | version "1.1.0" 366 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 367 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 368 | 369 | dotenv@^10.0.0: 370 | version "10.0.0" 371 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" 372 | integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== 373 | 374 | elliptic@6.5.4: 375 | version "6.5.4" 376 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" 377 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== 378 | dependencies: 379 | bn.js "^4.11.9" 380 | brorand "^1.1.0" 381 | hash.js "^1.0.0" 382 | hmac-drbg "^1.0.1" 383 | inherits "^2.0.4" 384 | minimalistic-assert "^1.0.1" 385 | minimalistic-crypto-utils "^1.0.1" 386 | 387 | ethers@^5.4.7: 388 | version "5.4.7" 389 | resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.4.7.tgz#0fd491a5da7c9793de2d6058d76b41b1e7efba8f" 390 | integrity sha512-iZc5p2nqfWK1sj8RabwsPM28cr37Bpq7ehTQ5rWExBr2Y09Sn1lDKZOED26n+TsZMye7Y6mIgQ/1cwpSD8XZew== 391 | dependencies: 392 | "@ethersproject/abi" "5.4.1" 393 | "@ethersproject/abstract-provider" "5.4.1" 394 | "@ethersproject/abstract-signer" "5.4.1" 395 | "@ethersproject/address" "5.4.0" 396 | "@ethersproject/base64" "5.4.0" 397 | "@ethersproject/basex" "5.4.0" 398 | "@ethersproject/bignumber" "5.4.2" 399 | "@ethersproject/bytes" "5.4.0" 400 | "@ethersproject/constants" "5.4.0" 401 | "@ethersproject/contracts" "5.4.1" 402 | "@ethersproject/hash" "5.4.0" 403 | "@ethersproject/hdnode" "5.4.0" 404 | "@ethersproject/json-wallets" "5.4.0" 405 | "@ethersproject/keccak256" "5.4.0" 406 | "@ethersproject/logger" "5.4.1" 407 | "@ethersproject/networks" "5.4.2" 408 | "@ethersproject/pbkdf2" "5.4.0" 409 | "@ethersproject/properties" "5.4.1" 410 | "@ethersproject/providers" "5.4.5" 411 | "@ethersproject/random" "5.4.0" 412 | "@ethersproject/rlp" "5.4.0" 413 | "@ethersproject/sha2" "5.4.0" 414 | "@ethersproject/signing-key" "5.4.0" 415 | "@ethersproject/solidity" "5.4.0" 416 | "@ethersproject/strings" "5.4.0" 417 | "@ethersproject/transactions" "5.4.0" 418 | "@ethersproject/units" "5.4.0" 419 | "@ethersproject/wallet" "5.4.0" 420 | "@ethersproject/web" "5.4.0" 421 | "@ethersproject/wordlists" "5.4.0" 422 | 423 | hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3: 424 | version "1.1.7" 425 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 426 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 427 | dependencies: 428 | inherits "^2.0.3" 429 | minimalistic-assert "^1.0.1" 430 | 431 | hmac-drbg@^1.0.1: 432 | version "1.0.1" 433 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 434 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 435 | dependencies: 436 | hash.js "^1.0.3" 437 | minimalistic-assert "^1.0.0" 438 | minimalistic-crypto-utils "^1.0.1" 439 | 440 | inherits@^2.0.3, inherits@^2.0.4: 441 | version "2.0.4" 442 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 443 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 444 | 445 | js-sha3@0.5.7: 446 | version "0.5.7" 447 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" 448 | integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= 449 | 450 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 451 | version "1.0.1" 452 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 453 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 454 | 455 | minimalistic-crypto-utils@^1.0.1: 456 | version "1.0.1" 457 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 458 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 459 | 460 | scrypt-js@3.0.1: 461 | version "3.0.1" 462 | resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" 463 | integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== 464 | 465 | ws@7.4.6: 466 | version "7.4.6" 467 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" 468 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 469 | --------------------------------------------------------------------------------