관리 메뉴

멍개의 연구소

[ethereum] solidity - 인터페이스를 활용한 다른 컨트랙트 호출 본문

블록체인

[ethereum] solidity - 인터페이스를 활용한 다른 컨트랙트 호출

멍개. 2022. 8. 27. 15:22

다른 컨트랙트의 함수를 호출하는 방법을 알아보겠습니다.

contract two{
    function t() public returns(uint){
        return 10;
    }
}

해당 컨트랙트를 배포합니다.

0x2B834aA053Cf58185ad41DbBDeef032B565d4909

배포를 하게되면 이러한 주소를 얻게됩니다. 배포된 컨트랙트 주소입니다. 물론 배포될 때마다 주소가 다릅니다.

contract two{
    function t() returns(uint);
}
contract one{
    event a(uint value);
    function o() returns(uint){
        uint vvvv = two(0x2B834aA053Cf58185ad41DbBDeef032B565d4909).t();
        a(vvvv);
    }
}
interface two{
    function t() returns(uint);
}
contract one{
    event a(uint value);
    function o() returns(uint){
        uint vvvv = two(0x2B834aA053Cf58185ad41DbBDeef032B565d4909).t();
        a(vvvv);
    }
}
 

0x2B834aA053Cf58185ad41DbBDeef032B565d4909에 대한 인터페이스를 만들어 줍니다. 해당 컨트랙트를 배포한 후 o()를 호출하면 two 컨트랙트의 t()를 호출합니다.

인터페이스를 만들땐 contract 또는 interface를 이용하여 만들면 됩니다.

이 방법을 이용하면 우리가 만드는 dApp에서 토큰을 가상화페로 사용가능합니다.

Comments