본문 바로가기
Solidity

[Solidity] 다른 contract 와 상호작용하기

by smilemugi 2022. 12. 9.

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