Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gerrrg/multicaller

Python package for abstracting and simplifying multicaller contract calls on Ethereum/EVM chains
https://github.com/gerrrg/multicaller

ethereum json-rpc multicall rpc web3 web3py

Last synced: about 1 month ago
JSON representation

Python package for abstracting and simplifying multicaller contract calls on Ethereum/EVM chains

Awesome Lists containing this project

README

        

# multicaller

Helper for using multicall to aggregate onchain data calls into a single RPC call.
## Features
* Uses multicall3, allowing for failing calls on a per-call basis
* Iteratively breaks up a call bundle if it's too large for the endpoint
* Uses native web3py contract functions rather than requiring users to [write the function ABI for each call](https://github.com/banteg/multicall.py/blob/9117c552c6ae85acec8452961db0aac51119070b/examples/daistats.py#L77)

## Dev

### Format

```bash
make fmt
```

### Lint

```bash
make lint
```

### Test

```bash
make test
```

#### Run all tests

```bash
make all
```

### Releasing

We can use `tbump` to automatically bump our versions in preparation of a release.

```bash
new_version=0.1.1
git checkout -b v$new_version
git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)
tbump new_version
```

The release workflow will then detect that a branch with a `v` prefix exists and create a release from it.

Additionally, the package will be published to PyPI.