├── .editorconfig ├── .env.example ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── .solhint.json ├── LICENSE ├── Makefile ├── README.md ├── deploy.sh ├── foundry.toml ├── package.json ├── script └── Deploy.s.sol ├── src ├── CalculationCall.huff ├── Call.huff ├── DelegateCall.huff ├── InternalCall.huff ├── Multicaller.huff ├── StaticCall.huff ├── test │ ├── CalculationCallTest.huff │ ├── MemCopyTest.huff │ ├── MulticallerTest.huff │ ├── VMCallStackTest.huff │ ├── VMOpcodesTest.huff │ └── VMStackTest.huff └── utils │ ├── BalancerV2.huff │ ├── Error.huff │ ├── Log.huff │ ├── Memory.huff │ ├── Owner.huff │ ├── VMCallStack.huff │ ├── VMOpcodes.huff │ ├── VMStack.huff │ ├── internalcalls │ ├── Flashbots.huff │ ├── Uni2.huff │ └── Uni3.huff │ └── service │ ├── MulticallerService.huff │ ├── Uni2Service.huff │ └── Uni3Service.huff ├── startnode.sh ├── test.sh ├── test ├── Helper.sol ├── Interface.sol ├── Loom.t.sol ├── Multicaller.t.sol ├── MulticallerCalc.t.sol ├── MulticallerCallValue.t.sol ├── MulticallerGasBench.t.sol ├── MulticallerInternalCalls.t.sol ├── MulticallerPayout.t.sol ├── MulticallerRaw.t.sol ├── MulticallerRevert.t.sol ├── MulticallerStack.t.sol ├── MulticallerSwapStepCalc2.t.sol ├── MulticallerSwapStepCalc3.t.sol ├── MulticallerSwapStepCalc4.t.sol ├── MulticallerSwapStepCalc5.t.sol ├── MulticallerSwapStepCalcCurve.t.sol ├── MulticallerSwapStepCalcMerge.t.sol ├── MulticallerSwapStepCalcWstEth.t.sol ├── MutlicallerCallback.t.sol ├── MutlicallerCallback2.t.sol ├── interfaces │ ├── IUSDT.sol │ ├── balancer2 │ │ └── IFlashloanReceipient.sol │ ├── dydx │ │ └── ISoloMargin.sol │ ├── erc1271 │ │ └── IERC1271Wallet.sol │ ├── uniswap2 │ │ └── IUniswapV2Pair.sol │ ├── uniswap3 │ │ ├── IUniswapV3Factory.sol │ │ ├── IUniswapV3Pool.sol │ │ ├── callback │ │ │ ├── IUniswapV3FlashCallback.sol │ │ │ ├── IUniswapV3MintCallback.sol │ │ │ └── IUniswapV3SwapCallback.sol │ │ └── pool │ │ │ ├── IUniswapV3PoolActions.sol │ │ │ ├── IUniswapV3PoolDerivedState.sol │ │ │ ├── IUniswapV3PoolEvents.sol │ │ │ ├── IUniswapV3PoolImmutables.sol │ │ │ ├── IUniswapV3PoolOwnerActions.sol │ │ │ └── IUniswapV3PoolState.sol │ └── weth │ │ └── IWETH.sol ├── loom_anvil │ └── LoomAnvil20935488.t.sol └── mocks │ ├── ERC20.sol │ ├── Pancake3Pool.sol │ ├── ShibaswapPool.sol │ ├── Uni2Pool.sol │ └── Uni3Pool.sol └── test_all.sh /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.editorconfig -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.env.example -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.gitmodules -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/.solhint.json -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/README.md -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/deploy.sh -------------------------------------------------------------------------------- /foundry.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/foundry.toml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/package.json -------------------------------------------------------------------------------- /script/Deploy.s.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/script/Deploy.s.sol -------------------------------------------------------------------------------- /src/CalculationCall.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/CalculationCall.huff -------------------------------------------------------------------------------- /src/Call.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/Call.huff -------------------------------------------------------------------------------- /src/DelegateCall.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/DelegateCall.huff -------------------------------------------------------------------------------- /src/InternalCall.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/InternalCall.huff -------------------------------------------------------------------------------- /src/Multicaller.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/Multicaller.huff -------------------------------------------------------------------------------- /src/StaticCall.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/StaticCall.huff -------------------------------------------------------------------------------- /src/test/CalculationCallTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/CalculationCallTest.huff -------------------------------------------------------------------------------- /src/test/MemCopyTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/MemCopyTest.huff -------------------------------------------------------------------------------- /src/test/MulticallerTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/MulticallerTest.huff -------------------------------------------------------------------------------- /src/test/VMCallStackTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/VMCallStackTest.huff -------------------------------------------------------------------------------- /src/test/VMOpcodesTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/VMOpcodesTest.huff -------------------------------------------------------------------------------- /src/test/VMStackTest.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/test/VMStackTest.huff -------------------------------------------------------------------------------- /src/utils/BalancerV2.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/BalancerV2.huff -------------------------------------------------------------------------------- /src/utils/Error.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/Error.huff -------------------------------------------------------------------------------- /src/utils/Log.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/Log.huff -------------------------------------------------------------------------------- /src/utils/Memory.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/Memory.huff -------------------------------------------------------------------------------- /src/utils/Owner.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/Owner.huff -------------------------------------------------------------------------------- /src/utils/VMCallStack.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/VMCallStack.huff -------------------------------------------------------------------------------- /src/utils/VMOpcodes.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/VMOpcodes.huff -------------------------------------------------------------------------------- /src/utils/VMStack.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/VMStack.huff -------------------------------------------------------------------------------- /src/utils/internalcalls/Flashbots.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/internalcalls/Flashbots.huff -------------------------------------------------------------------------------- /src/utils/internalcalls/Uni2.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/internalcalls/Uni2.huff -------------------------------------------------------------------------------- /src/utils/internalcalls/Uni3.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/internalcalls/Uni3.huff -------------------------------------------------------------------------------- /src/utils/service/MulticallerService.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/service/MulticallerService.huff -------------------------------------------------------------------------------- /src/utils/service/Uni2Service.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/service/Uni2Service.huff -------------------------------------------------------------------------------- /src/utils/service/Uni3Service.huff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/src/utils/service/Uni3Service.huff -------------------------------------------------------------------------------- /startnode.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/startnode.sh -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test.sh -------------------------------------------------------------------------------- /test/Helper.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/Helper.sol -------------------------------------------------------------------------------- /test/Interface.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/Interface.sol -------------------------------------------------------------------------------- /test/Loom.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/Loom.t.sol -------------------------------------------------------------------------------- /test/Multicaller.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/Multicaller.t.sol -------------------------------------------------------------------------------- /test/MulticallerCalc.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerCalc.t.sol -------------------------------------------------------------------------------- /test/MulticallerCallValue.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerCallValue.t.sol -------------------------------------------------------------------------------- /test/MulticallerGasBench.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerGasBench.t.sol -------------------------------------------------------------------------------- /test/MulticallerInternalCalls.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerInternalCalls.t.sol -------------------------------------------------------------------------------- /test/MulticallerPayout.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerPayout.t.sol -------------------------------------------------------------------------------- /test/MulticallerRaw.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerRaw.t.sol -------------------------------------------------------------------------------- /test/MulticallerRevert.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerRevert.t.sol -------------------------------------------------------------------------------- /test/MulticallerStack.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerStack.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalc2.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalc2.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalc3.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalc3.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalc4.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalc4.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalc5.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalc5.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalcCurve.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalcCurve.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalcMerge.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalcMerge.t.sol -------------------------------------------------------------------------------- /test/MulticallerSwapStepCalcWstEth.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MulticallerSwapStepCalcWstEth.t.sol -------------------------------------------------------------------------------- /test/MutlicallerCallback.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MutlicallerCallback.t.sol -------------------------------------------------------------------------------- /test/MutlicallerCallback2.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/MutlicallerCallback2.t.sol -------------------------------------------------------------------------------- /test/interfaces/IUSDT.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/IUSDT.sol -------------------------------------------------------------------------------- /test/interfaces/balancer2/IFlashloanReceipient.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/balancer2/IFlashloanReceipient.sol -------------------------------------------------------------------------------- /test/interfaces/dydx/ISoloMargin.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/dydx/ISoloMargin.sol -------------------------------------------------------------------------------- /test/interfaces/erc1271/IERC1271Wallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/erc1271/IERC1271Wallet.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap2/IUniswapV2Pair.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap2/IUniswapV2Pair.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/IUniswapV3Factory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/IUniswapV3Factory.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/IUniswapV3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/IUniswapV3Pool.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/callback/IUniswapV3FlashCallback.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/callback/IUniswapV3FlashCallback.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/callback/IUniswapV3MintCallback.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/callback/IUniswapV3MintCallback.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/callback/IUniswapV3SwapCallback.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/callback/IUniswapV3SwapCallback.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolActions.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolActions.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolDerivedState.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolDerivedState.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolEvents.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolEvents.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolImmutables.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolImmutables.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolOwnerActions.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolOwnerActions.sol -------------------------------------------------------------------------------- /test/interfaces/uniswap3/pool/IUniswapV3PoolState.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/uniswap3/pool/IUniswapV3PoolState.sol -------------------------------------------------------------------------------- /test/interfaces/weth/IWETH.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/interfaces/weth/IWETH.sol -------------------------------------------------------------------------------- /test/loom_anvil/LoomAnvil20935488.t.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/loom_anvil/LoomAnvil20935488.t.sol -------------------------------------------------------------------------------- /test/mocks/ERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/mocks/ERC20.sol -------------------------------------------------------------------------------- /test/mocks/Pancake3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/mocks/Pancake3Pool.sol -------------------------------------------------------------------------------- /test/mocks/ShibaswapPool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/mocks/ShibaswapPool.sol -------------------------------------------------------------------------------- /test/mocks/Uni2Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/mocks/Uni2Pool.sol -------------------------------------------------------------------------------- /test/mocks/Uni3Pool.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test/mocks/Uni3Pool.sol -------------------------------------------------------------------------------- /test_all.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dexloom/multicaller/HEAD/test_all.sh --------------------------------------------------------------------------------