В чем основное различие между WriteSet, TransferSet и ContractResult в Ride4dApps?

В Ride4dApps вызываемая функция возвращает WriteSet, TransferSet или ContractResult, но я все еще не понимаю основной разницы между ними? и кто платит комиссию за такие децентрализованные приложения?


person rah    schedule 28.03.2019    source источник


Ответы (1)


  • TransferSet, это список keyValue, который определяет, какие исходящие платежи будут производиться при вызове вашего контракта.
  • WriteSet, это список keyValue, который определяет, какие данные будут храниться в учетной записи контракта при вызове контракта (например, адрес вызывающего абонента и баланс). По сути, это список записей данных, которые должны быть записаны для чтения состояния 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 - это адрес вызывающего абонента.
person Nazim Faour    schedule 28.03.2019