Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding a thin Multicall3 client #3535

Open
DefiDebauchery opened this issue Nov 22, 2024 · 0 comments
Open

Adding a thin Multicall3 client #3535

DefiDebauchery opened this issue Nov 22, 2024 · 0 comments

Comments

@DefiDebauchery
Copy link
Contributor

DefiDebauchery commented Nov 22, 2024

What feature should we add?

I quite enjoy and appreciate the multicall.py project, which utilizes web3py for transport. However, this package is in need of some maintenance, and since Multicall3 is fairly ubiquitous among most EVM chains, web3py might benefit from having a native module, similar to how it supports ENS.

Basic needs:

  • Ability to easily make single or multiple calls
  • Transparently compatible with Sync or Async Web3 instances
  • A constant default address, regardless of which Provider/Network you're using
  • ...but with the ability to override the address (in the case of zkSync)
  • A flag for whether any sub-calls within a multicall can fail (IOW: blockAndAggregate vs tryBlockAndAggregate)
  • Definable GAS_LIMIT for read calls, which differ on some smaller chains.

Nice to have:

  • Assign results to a defined key (no transformation needed)
  • Access to Multicall block functions, such as getBlockNumber(), getEthBalance(), to add to a Multicall execution
  • seth-style calls (e.g. ['balanceOf(address)(uint256)', my_address]), without having to initiate a Contract instance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant