【问题标题】:How to get the function call parameters passed by user in substrate into txn-pallet?如何将用户在substrate中传递的函数调用参数放入txn-pallet?
【发布时间】:2021-11-06 16:01:10
【问题描述】:

假设我想根据用户输入设置费用。(不是 len ,txn 的权重)是否可以将数据放入交易支付托盘并根据我想设置费用的数据? 那可能吗? 在函数执行之前计算费用,如何将调用参数放入transaction-payment-pallet?

【问题讨论】:

    标签: blockchain substrate polkadot


    【解决方案1】:

    Transaction Payment Pallet 专为根据外部物品的重量和长度专门处理费用而设计,但您始终可以制作自己的托盘,以不同的方式处理费用。

    难点在于,由于每个托盘都是独立的并且是任意设计的,因此您无法真正创建一个功能,其中外部输入中的某些特定参数将用于计算费用,因为您无法知道这些参数各自的含义。

    您可以设计自己的 trait + 宏,它在您想要的所有外部参数上实现一些功能,您可以在其中传入您想要的特定参数,但这将非常复杂,并且还涉及创建新的费用托盘。

    更简单的解决方案(至少对于原型设计而言)可能是删除外部 Pays::No 包含的任何重量费,然后使用用户的余额直接删除一些作为签名扩展。

    【讨论】:

    • 嗨,肖恩...谢谢您的意见......让我澄清一下......所以,如果呼叫来自质押托盘并且调用的函数是债券(金额)然后我想根据他们想要绑定的金额设置费用......有没有办法知道 txn-payment 托盘中的金额(作为参数传递)? (对于其他情况,我只想使用现有的费用结构。)
    • 您最好创建一个具有相同功能的全新外部,并将您自己的自定义费用结构纳入该外部的逻辑。为单个场景覆盖通用费用托盘是不切实际的。
    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2020-08-21
    • 2021-04-28
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    相关资源
    最近更新 更多