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

What is the main difference between WriteSet, TransferSet and ContractResult in Ride4dApps?

在 Ride4dApps 中,可调用函数 returns 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为来电地址