Solidity

合約類型和地址有什麼區別?

  • July 19, 2021

我在這裡看到:

Contract TokenCreator {
   function createToken(bytes32 name)
       public
       returns (OwnedToken tokenAddress)
   {
       // Create a new `Token` contract and return its address.
       // From the JavaScript side, the return type
       // of this function is `address`, as this is
       // the closest type available in the ABI.
       return new OwnedToken(name);
   }
   // some other code

}

從函式定義中你可以看到它返回一個類型的值,OwnedToken這個值類型和類型有什麼不同address?為什麼不直接說返回類型是地址呢?

因為,返回類型不是address一個合約(OwnedToken),它具有您可以呼叫的公共方法和屬性(來自solidity)。

在 javascript 端或(其他 web3 客戶端庫)上,ABI 中最接近的類型是地址(如您問題程式碼塊中的註釋中所述),因此它被轉換為。

引用自:https://ethereum.stackexchange.com/questions/103751