archived-parcels icon indicating copy to clipboard operation
archived-parcels copied to clipboard

Modern, Opinionated Multicall Library

parcels • tests lints GitHub GitHub package.json version

A Rigorously Tested, Modern, Opinionated Multicall Library

⚠️ Depreciation Notice ⚠️


This Repository is not maintained and is only used as a Proof-of-Concept for Multicall3 as part of Matt Solomon's maintained multicall repository.

mds1/multicall is an actively maintained fork from MakerDAO's inactive multicall repository.


Overview

Adapted from Makerdao's multicall, this library provides a simple way to call multiple contracts at once.

Built with foundry, parcels is rigorously tested and maintained.

Deployed Contracts

// TODO: Deploy Contracts
Chain Address
Mainnet
Kovan
Rinkeby
Görli
Ropsten
xDai
Polygon
Mumbai

Blueprint

lib
├─ ds-test — https://github.com/dapphub/ds-test
├─ forge-std — https://github.com/brockelmore/forge-std
├─ solmate — https://github.com/Rari-Capital/solmate
├─ clones-with-immutable-args — https://github.com/wighawag/clones-with-immutable-args
src
├─ tests
│  └─ Multicall.t — "Multicall Tests"
└─ Multicall — "The Multicall Contract"

Development

First time with Forge/Foundry?

See the official Foundry installation instructions.

Don't have rust installed? Run

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Then, install the foundry toolchain installer (foundryup) with:

curl -L https://foundry.paradigm.xyz | bash

Now that you've installed the foundryup binary, anytime you need to get the latest forge or cast binaries, you can run foundryup.

So, simply execute:

foundryup

🎉 Foundry is installed! 🎉

Configure Foundry

Using foundry.toml, Foundry is easily configurable.

Setup

make
# OR #
make setup

Install DappTools

Install DappTools using their installation guide.

Build

make build

Run Tests

make test

License

AGPL-3.0-only

Acknowledgements

Disclaimer

These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions, loss of transmitted information or loss of funds. The creators are not liable for any of the foregoing. Users should proceed with caution and use at their own risk.