在 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
是呼叫者地址。