Как собрать квитанции правил для покупки через Sui Kiosk

Получить актив из purchase — лишь часть покупки в Kiosk. Созданный TransferRequest должна принять политика, все условия которой выполнены.

Выполните правила для одного запроса

Схема предполагает политику для Art и монету по указанной цене. Между покупкой и подтверждением вызовите функции правил выбранной политики, приложив комиссии или доказательства. Также в этой транзакции нужно передать или сохранить asset.

let (asset, request) = kiosk::purchase<Art>(shop, item_id, exact_payment);
// Execute each rule's public resolver against this request.
let (_item, _paid, _from) =
    transfer_policy::confirm_request(policy, request);

Найдите недостающую квитанцию при подтверждении

Если политика требует роялти и проверки назначения, одного правила роялти недостаточно. Сверьте состав правил в момент исполнения и вызовы обработчиков транзакции. При неуспешном подтверждении вся транзакция отменяется. Не отмечайте продажу завершённой на этапе формирования команды покупки.

Источники