硬币.单功能两次转账,一次用户确认



是否可以在同一函数中调用coin.transfer两次(到两个不同的地址)并使用一个用户确认?我在考虑市场的二次销售,合同如何保留费用并将销售的另一部分转移给卖方?

这就是我要做的(尚未测试)

(defun buy-nft (id:string newowner:string)
@doc "buy an nft from marketplace"
(let (
(data (read nfts id ['listed 'owner 'price]))
)
(enforce (= (at "listed" data) true) "this nft is not listed")
(let (
(fee (/ (* (get-fee) (at "price" data)) 100))
)
(coin.transfer newowner (at "owner" data) (- (at "price" data) fee))
(coin.transfer newowner ADMIN_ADDRESS fee)
(insert hmarket (int-to-str 10 (get-count MARKET_PURCHASE_COUNT)) {
"id": id, 
"transactionTime": (at "block-time" (chain-data)), 
"newowner": newowner, 
"oldowner": (at "owner" data),
"price": (at "price" data)
})
(update nfts id {
"owner": newowner, 
"listed": false, 
"price": 0.0
})
(with-capability (PRIVATE)
(increase-count MARKET_PURCHASE_COUNT)
(increase-volume-by VOLUME_PURCHASE_COUNT (at "price" data))
)
)
)
)

是。在进行硬币转账时,您需要出示硬币。用户签名的TRANSFER功能。您可以在签名阶段向用户呈现多种功能。

因此,如果您想要向多个地址进行转账,只需在交易期间提供多个coin.TRANSFER功能以进行签名。用户将看到它作为一个屏幕

最新更新