ethereum-multicall icon indicating copy to clipboard operation
ethereum-multicall copied to clipboard

Does the repository support ethers ^6.6.0

Open xuht724 opened this issue 2 years ago • 6 comments

I am using

const { Multicall } = require("ethereum-multicall");
const poolABI = require('./utils/uniswapPairV2ABI.json');
const { ethers } = require("ethers");
const { wsURL } = require("./config.js");
const { Web3 } = require("web3");

const rpcURL = "My RPC URL";
// const web3 = new Web3(rpcURL);
const calls = [
    { methodName: 'token0', methodParameters: [] },
    { methodName: 'token1', methodParameters: [] },
    { methodName: 'factory', methodParameters: [] }
];

// A pair address
const contractAddress = "0xB6909B960DbbE7392D405429eB2b3649752b4838";

const callObject = {
    reference: "result0",
    contractAddress: contractAddress,
    abi: poolABI,
    calls: calls
};

const provider = new ethers.JsonRpcProvider(rpcURL);
console.log(provider);

const myMulticall = new Multicall({
    ethersProvider: provider,
    tryAggregate: true,
});
async function getResult() {
    let resp = await myMulticall.call(callObject);
    console.log(resp.results.result0.callsReturnContext);

}
getResult();

It throws out the error Error: invalid signer or provider (argument="signerOrProvider", value={}, code=INVALID_ARGUMENT, version=contracts/5.7.0)

The ethers version is 6.6.1. I want to ask if the error is caused by the version conflict.

xuht724 avatar Jun 25 '23 08:06 xuht724

most likely will take a look this week

joshstevens19 avatar Jul 13 '23 09:07 joshstevens19

Right now only use "nodeUrl" with ethers ^6.6.0:

const multicall = new Multicall({ nodeUrl: REST_RPC.POLYGON, tryAggregate: true, })

ophickedo avatar Aug 28 '23 08:08 ophickedo

oops let this one slip i guess ethers ^6.6.0 did some breaking changes will add to my list and support thanks for the code above

joshstevens19 avatar Sep 30 '23 08:09 joshstevens19

Would really like to see this as well. Is anyone actively working on this?

bradens avatar Nov 21 '23 18:11 bradens

no but its pretty easy change PR welcome we can keep support for old one as well as you pass in the instance we can just add support for ethers 6 @bradens

joshstevens19 avatar Nov 25 '23 16:11 joshstevens19

no but its pretty easy change PR welcome we can keep support for old one as well as you pass in the instance we can just add support for ethers 6 @bradens

Got a PR up for you here: https://github.com/joshstevens19/ethereum-multicall/pull/72

bradens avatar Nov 27 '23 06:11 bradens