You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, in order to use the Arbitrum SDK in your project, you have to use ethers@v5, as a lot (if not all) SDK methods accept and receive ethers@v5 objects, like Signer, Provider, TransactionReceipt etc.
Ideally, we should be able to support using any of them, e.g. ethers@v5, ethers@v6, viem, web3.js etc, while continuing to use ethers for our implementation. Maybe we could reduce the dependencies to the minimum interfaces needed, and then write small adapters that map objects from different libraries to the shared interfaces? It would be cool if the user could just "pick" an adapter once when configuring the library without having to do it at every call site.
As a PoC, we could try doing so for a couple of read and write methods:
Currently, in order to use the Arbitrum SDK in your project, you have to use
ethers@v5
, as a lot (if not all) SDK methods accept and receiveethers@v5
objects, likeSigner
,Provider
,TransactionReceipt
etc.Ideally, we should be able to support using any of them, e.g.
ethers@v5
,ethers@v6
,viem
,web3.js
etc, while continuing to useethers
for our implementation. Maybe we could reduce the dependencies to the minimum interfaces needed, and then write small adapters that map objects from different libraries to the shared interfaces? It would be cool if the user could just "pick" an adapter once when configuring the library without having to do it at every call site.As a PoC, we could try doing so for a couple of read and write methods:
This is a huge breaking change so probably targets v4, but worth exploring.
The text was updated successfully, but these errors were encountered: