Solidity

在對象內部添加的不是函式參數的值

  • March 4, 2022

我已經在 Solidity 中多次看到這個,但我在文件中找不到它,也不知道如何在搜尋引擎中描述它。假設您有一個功能:

function buyItem(uint256 _upc)
   public
   payable
   // Call modifier to check if upc has passed previous supply chain stage
   forSale(_upc)
   // Call modifer to check if buyer has paid enough
   paidEnough(items[_upc].productPrice)
   // Call modifer to send any excess ether back to buyer
   checkValue(_upc)
{
   // Update the appropriate fields - ownerID, distributorID, itemState
   items[_upc].ownerID = msg.sender;
   items[_upc].distributorID = msg.sender;
   items[_upc].itemState = State.Sold;

   // Transfer money to farmer
   items[_upc].distributorID.transfer(items[_upc].productPrice);
   // emit the appropriate event
   emit Sold(_upc);
}

當您在測試中呼叫該函式時,您向它傳遞了一個帶有 from 和 value 屬性的對象。我如何知道何時需要使用這些屬性以及文件中的何處描述?

// Mark an item as Sold by calling function buyItem()
   await supplyChain.buyItem(upc, {
       from: distributorID,
       value: productPrice,
   });

它們被稱為應付函式,因為它們具有應付修飾符

額外的參數 from簽署交易的地址,value是發送到交易的乙太幣數量。

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