[Solidity] call, delegateCall
모든 call들은 특정 주소의 다른 컨트랙트를 데이터, 가스, 이더와 함께 특정 함수를 호출합니다. 어떤 호출이냐에 따라 msg.sender나 변동 storage가 바뀌므로 기본 방식을 이해하고 사용하심이 바람직합니다. call 컨트랙트 A를 통해 컨트랙트 B의 함수 호출시 B의 Storage를 변경시키며 msg.sender(호출자)는 컨트랙트A의 주소가 됩니다. delegate call 컨트랙트 A를 통해 컨트랙트 B 호출시 B의 Storage를 변경시키지 않고, B의 코드를 A에서 실행합니다. msg.sender와 msg.value가 컨트랙트 A 호출시와 같고, 변동되지 않습니다. static call 상태를 변경하거나 읽는 경우를 구분하기 위해서 사용되며 다른 컨트랙트로 리다이렉트 되는 경우에도 상..
Dapp/Solidity
2019. 6. 18. 23:37