Replies: 8 comments 8 replies
-
I agree with you that the v5 -> v6 migration is still a big mess. |
Beta Was this translation helpful? Give feedback.
-
@ricmoo Most annoying when doing a v5 to v6 migration is that getting the address of a user/signer now is an async call which requires me to change hundreds of instances of |
Beta Was this translation helpful? Give feedback.
-
@ricmoo I have a question, I'm using in my project ethers.js alongside with @ethersproject/providers now I'm facing a problem that I can get ens names on holesky, seems I need to upgrade ethers.js to v6 but @ethersproject/providers since not updated to use the new provider, my question, should get rid off @ethersproject/providers and just use ethers.js v6? the other thing is the web3-react/core library that's actually expect a WEb3Provider type and not he new one on v6 BrowserProvider. |
Beta Was this translation helpful? Give feedback.
-
Hey @ricmoo some of the changes seem fairly straightforward, why not utilize codemods? For example, Nextjs uses this in upgrades, see https://nextjs.org/docs/app/building-your-application/upgrading/codemods |
Beta Was this translation helpful? Give feedback.
-
Yes, good point @valamidev. Hmm.. I have an idea for that. Maybe already exists, or have some flaws that I ignore, but that's why I wanted to put into discussion. Since libraries change so much along with the versions (not only ethers), why not to create a collective interface for them. So they need to be changed only once, for the whole community. Let me do a representative example, we'll use these two examples of ethers migration v5 to v6: // example_1
// v5:
provider = new ethers.providers.Web3Provider(window.ethereum)
// v6:
provider = new ethers.BrowserProvider(window.ethereum)
// example_2
// v5
provider = new StaticJsonRpcProvider(url, network);
// v6:
provider = new JsonRpcProvider(url, network, {
staticNetwork: network
}); we'd use the library interface for that, updated in v6 without worrying if I only know about v5 import {I_ethers_v5v6} from 'libinterface';
const Ieth = I_ethers_v5v6; //I_ethers_v5v6 would work for example like function(string_method, [array_args])
const provider_1 = Ieth('ethers.providers.Web3Provider', [window.ethereum] );
const provider_2 = Ieth('StaticJsonRpcProvider', [url, network] ); Let's say now appears v7 and again it's a bit nightmare. All we should do is changing at the beggining |
Beta Was this translation helpful? Give feedback.
-
Yeah, just piling on, because today is another wasted day moving to v6 on an corner piece of code that works exactly how we want but some library now requires v6 and this is another waste of developer hours. 5 worked great, 6 didn't, 7 is fool me twice. I would rather stay downrevved on 5 until I cannot, then I will invest the effort into another library before trying "fool me twice." Ethers is in that spot web3 was when everyone was desperate for ethers. A sad thing to see and have to say. |
Beta Was this translation helpful? Give feedback.
-
II have been updating our projects from v5 to v6 for almost a week now. And it's very painful. |
Beta Was this translation helpful? Give feedback.
-
Many popular DeFi libraries like Uniswap or AAVE are using v5 and they just do not support v6 and it seems like they are not going to. It is a big pain to make the system work now. The only solution that actually worked is to install both v5 and v6 in one project. Because v5 and v6 interfaces are just not compatible anymore, at least some backward compatibility would be nice to have. For now, it is indeed a mess. Especially with these BigInt and BigNumber... |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
I do have to say that once I switched to Ethers(v5) from Web3JS it was like a never go back decision, I have been used heavily v5 Ethers writing/deploying contracts(unit-test), back-end, front-end, indexing blockchain and using a wide-range of plugins to make my life easier.
With Ethers v6 I have very mixed feeling, obliviously the new EVM features are required, however upgrading a v5 project to v6 is very time consuming and inconvenient.
Issues what I facing regular basis:
1 gwei
,1 ether
Beta Was this translation helpful? Give feedback.
All reactions