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

#blockchain #smartcontracts #wavesplatform #ride

#блокчейн #смарт-контракты #wavesplatform #поездка

Вопрос:

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

Ответ №1:

  • TransferSet, это список значений ключей, который определяет, какие исходящие платежи будут производиться при вызове вашего контракта.
  • WriteSet, это список ключевых значений, который определяет, какие данные будут сохранены в учетной записи контракта при вызове вашего контракта (например, адрес вызывающего абонента и баланс). По сути, это список записей данных, которые должны быть записаны для считывания состояния DApp.
  • ContractResult, это комбинация WriteSet и TransferSet.

Отправитель оплачивает сборы волнообразно (1 4 * (стоимость каждого задействованного скрипта)) майнеру вызова.

Пример:

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

Где:

  • DataEntry (key : String, value : String | Binary | Integer | Boolean).
  • i.caller это адрес вызывающего абонента.