솔리디티의 DelegateCall을 이용하면 트랜잭션이 다른 트랜잭션을 만들 수 있는데, 이걸 for문으로 수차례 실행하면 한 트랜잭션이 다차례의 트랜잭션을 만들 수 있다.
컴파운드(?)였나 어디서 멀티콜 컨트랙트를 메인넷 종류별로 다 배포해놓고 주소를 적어놔서 그 주소 호출하는 식으로 멀티콜 쏠 수 있다. 즉, 굳이 재배포 하지 않아도 됨.
etherscan에서도 multicall 관련 검생이 가능하다 (아래사진과 같이)
위처럼, 유니스왑이나 메이커다오에서 만든 멀티콜 주소를 호출해서 쓸 수 있다.
https://etherscan.io/address/0x5ba1e12693dc8f9c48aad8770482f4739beed696#code
https://github.com/makerdao/multicall
https://github.com/makerdao/multicall.js
1. multicall 컨트랙트 코드 분석하기
2. 테스트넷에서 배포하고 사용해보기
3. makerdao의 multicall.js 활용해서 실제품 개발하기
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.3/contracts/utils/Multicall.sol