【发布时间】:2021-11-06 16:01:10
【问题描述】:
假设我想根据用户输入设置费用。(不是 len ,txn 的权重)是否可以将数据放入交易支付托盘并根据我想设置费用的数据? 那可能吗? 在函数执行之前计算费用,如何将调用参数放入transaction-payment-pallet?
【问题讨论】:
标签: blockchain substrate polkadot
假设我想根据用户输入设置费用。(不是 len ,txn 的权重)是否可以将数据放入交易支付托盘并根据我想设置费用的数据? 那可能吗? 在函数执行之前计算费用,如何将调用参数放入transaction-payment-pallet?
【问题讨论】:
标签: blockchain substrate polkadot
Transaction Payment Pallet 专为根据外部物品的重量和长度专门处理费用而设计,但您始终可以制作自己的托盘,以不同的方式处理费用。
难点在于,由于每个托盘都是独立的并且是任意设计的,因此您无法真正创建一个功能,其中外部输入中的某些特定参数将用于计算费用,因为您无法知道这些参数各自的含义。
您可以设计自己的 trait + 宏,它在您想要的所有外部参数上实现一些功能,您可以在其中传入您想要的特定参数,但这将非常复杂,并且还涉及创建新的费用托盘。
更简单的解决方案(至少对于原型设计而言)可能是删除外部 Pays::No 包含的任何重量费,然后使用用户的余额直接删除一些作为签名扩展。
【讨论】: