/multicaller

Efficient multicaller contracts

Primary LanguageSolidityMIT LicenseMIT

Multicaller

NPM CI Solidity

Efficiently call multiple contracts in a single transaction.

Enables "forwarding" of msg.sender to the contracts called.

Deployments

Please open an issue if you need help to deploy to an EVM chain of your choice.

Contracts

src
├─ Multicaller.sol — "The multicaller contract"
├─ MulticallerWithSender.sol — "The multicaller with sender contract"
├─ MulticallerWithSigner.sol — "The multicaller with signer contract"
└─ LibMulticaller.sol — "Library to read the multicaller contracts"

Installation

You can use the src/LibMulticaller.sol library in your contracts to query the multicaller with sender contract efficiently.

To install with Foundry:

forge install vectorized/multicaller

To install with Hardhat or Truffle:

npm install multicaller

API

The API docs.

Design

The contracts are designed with a priority on efficiency and minimalism.

Safety

We do not give any warranties and will not be liable for any loss incurred through any use of this codebase.

Please read the API docs / Natspec, test with your code, and get additional security reviews to make sure that any usage is done safely.

Acknowledgments

Multicaller is inspired by and directly modified from:

This project is a public good initiative of sound.xyz and Solady.

We would like to thank our reviewers and contributors for their invaluable help.