2017-12-17 30 views
0

솔리드 (Solidity)에서 오브젝트 합성은 어떻게 작동합니까? 나는 포괄적 인 안내서를 찾지 못했고, 모든 예는 세계 수준의 물건이나 ERC20 토큰 구현을 처리하는 것처럼 보입니다.솔리드 (Solidity)의 오브젝트 구성

  1. 다른 계약 인 공공 재산과 계약을 맺을 수 있습니까?
  2. 이러한 계약 인스턴스가 계약간에 함수 인수로 전달 될 수 있습니까? , 지금은 배치 HelperContract의 주소로 MainContract의 인스턴스를 생성 한 후 HelperContract를 배포하고,시

    contract HelperContract { 
         function foo() public pure returns(uint) { 
          return(0); 
         } 
        } 
    
        contract MainContract { 
         HelperContract helperContract; 
    
         function MainContract(address helperAddress) public { 
          helperContract = HelperContract(helperAddress); 
         } 
    
         function bar() public view returns(uint) { 
          return helperContract.foo(); 
         } 
        } 
    

    : - 이러한 질문 모두에

+0

https://ethereum.stackexchange.com에 표시되어야하므로 닫으 려구요. 즉, 배치 된 계약을 가리키는 주소를 사용할 것이고, 속성에 저장할 수 있으며 적합하다고 생각되는대로 전달할 수 있습니다. –

답변

1

Yes (예)를 설명하는 간단한 예는 다음과 같이 보일 것입니다 bar으로 전화하면 foo이됩니다.

이 코드를 remix에 복사하여 붙여 넣을 수 있습니다.

Hello world! 유형을 벗어나는 실제 사례를 보려면 CryptoKitties 소스 here을 확인하십시오. 여기에서이 유형의 패턴을 사용합니다.

코드를 파헤치는 데는 많은 시간이 걸리지 만 KittyAuction 계약서는 setSaleAuctionAddresssetSiringAuctionAddress이라는 계약서가 포함되어 있습니다. 이 함수는 각각 별도로 배포 된 SaleClockAuctionSiringClockAuction 계약에 대한 참조를 설정합니다.