Ride4dApps 中的 WriteSet、TransferSet 和 ContractResult 之间的主要区别是



在 Ride4dApps 中,可调用函数返回 WriteSet、TransferSet 或 ContractResult 但我仍然没有得到它们之间的主要区别? 谁为这种dApp付费?

  • TransferSet,它是一个键值列表,它定义了传出的内容 付款将在您调用合同时支付。
  • WriteSet,它是一个键值列表,用于定义将存储哪些数据 在您调用合约时在合约账户中(例如 来电地址和余额)。所以基本上它是一个数据条目列表 应该记录下来以读取 dApp 状态。
  • ContractResult,它是WriteSet和TransferSet的组合。

发送方以 WAVES(1 + 4*(涉及的每个脚本的成本))的形式向调用的矿工支付费用。

例:

ContractResult(
WriteSet([DataEntry(currentKey, amount)]),
TransferSet([ContractTransfer(i.caller, amount, unit)])
)

哪里:

  • DataEntry (key : String, value : String | Binary | Integer | Boolean).
  • i.caller是呼叫者地址。