diff --git a/contracts/multicall/GuardedMulticaller.sol b/contracts/multicall/GuardedMulticaller.sol index 8ea49b50..3335086a 100644 --- a/contracts/multicall/GuardedMulticaller.sol +++ b/contracts/multicall/GuardedMulticaller.sol @@ -148,6 +148,7 @@ contract GuardedMulticaller is AccessControl, ReentrancyGuard, EIP712 { * @param _deadline Expiration timestamp * @param _signature Signature of the multicall signer */ + // slither-disable-start low-level-calls,calls-inside-a-loop,cyclomatic-complexity // solhint-disable-next-line code-complexity function execute( address _multicallSigner, @@ -219,6 +220,7 @@ contract GuardedMulticaller is AccessControl, ReentrancyGuard, EIP712 { emit Multicalled(_multicallSigner, _reference, _targets, _data, _deadline); } + // slither-disable-end low-level-calls,calls-inside-a-loop,cyclomatic-complexity /** * @notice Update function permits for a list of function selectors on target contracts. Only DEFAULT_ADMIN_ROLE can call this function. diff --git a/contracts/multicall/README.md b/contracts/multicall/README.md new file mode 100644 index 00000000..f0a1912d --- /dev/null +++ b/contracts/multicall/README.md @@ -0,0 +1,19 @@ +# GuardedMulticaller + +The GuardedMulticaller contract provides functionality to call multiple functions across different target contracts, the function signatures are validated to ensure they are permitted. Currently one of the use cases we have is in the Primary Sales flow, the GuardedMulticaller executes `transferFrom()` and `safeMint()` functions on different target contracts in a single transaction. + + +# Status + +Contract audits and threat models: + +| Description | Date |Version Audited | Link to Report | +|---------------------------|------------------|-----------------|----------------| +| External audit | Sept 26, 2023 | [605c3e2](https://github.com/immutable/multicaller-contracts/tree/605c3e2956c914a77181baba85dfca9bde8c3829) | [202309-external-audit-multicaller](../../audits/multicall/202309-external-audit-multicaller.pdf) | + + +# Architecture + +The architecture of the GuardedMulticaller system is shown below. + +![GuardedMulticaller Architecture](../../audits/multicall/202309-threat-model-multicaller/architecture.png)