Tezos智能合约是否有可能提供"按次付费";链上视图,只有在调用发送一定数量的Mutez时才会响应,或者链上视图调用总是免费的?
Tezoson-chain views
不会改变任何状态(存储,平衡等)。
但是可以有一个订阅系统,其中可以有一个on-chain view
来验证调用者在当前时间是否有一个活动订阅。
例子:
创建一个合约,包含存储中的view A
和big_map(caller: address => expiration_date: timestamp) called subscriptions
。
然后您还有一个入口点subscribe
,它根据调用相应入口点时发送的AMOUNT
将给定地址添加为特定时期的订阅者。
现在,当调用方调用view A,
时,视图可以检查SENDER
是否为活动订户,FAILWITH
是否为非活动订户。
或者您也可以使用callback entrypoints
,这是一种异步方法。