contract 내부에서 블록체인 안에서 내가 소유하고 있지않은 다른 contract 와 상호작용(함수 호출 등)하는 방법
먼저 사용하고자 하는 contract 의 interface 를 정의해야 한다.
contract NumberInterface {
function getNum(address _myAddress) public view returns (uint);
}
위와 같이 getNum 함수의 body(구현부)가 없다. 함수 마지막 (; 세미콜론)으로 바로 끝낸다.
contract MyContract {
address NumberInterfaceAddress = 0xab38...
// ^ The address of the FavoriteNumber contract on Ethereum
NumberInterface numberContract = NumberInterface(NumberInterfaceAddress);
// Now `numberContract` is pointing to the other contract
function someFunction() public {
// Now we can call `getNum` from that contract:
uint num = numberContract.getNum(msg.sender);
// ...and do something with `num` here
}
}
위와 같이 다른 contract 를 가리키는 변수를 생성하고, 이를 이용하여 다른 contract 의 함수를 호출한다.
'Solidity' 카테고리의 다른 글
[Solidity] internal vs private, external vs public (0) | 2022.12.09 |
---|---|
[Solidity] view 와 pure (0) | 2022.12.08 |