nodeos v2.2 发布后,可以使用资源支付者功能来赞助交易的资源。要设置一个事务相关的资源单独付款人,一个添加resource_payer对象到您的交易指定payer,max_net_bytes,max_cpu_us,和max_memory_bytes。此功能需要RESOURCE_PAYER在链上启用协议功能。

此功能的典型用例是服务或应用程序为交易的资源而不是其用户付费。由于交易中的用户和付款人都需要授权,因此可能的工作流程是交易由用户的钱包应用程序签名,然后在发送到 nodeos 之前也由服务/应用程序签名。

{
    resource_payer: {
        payer: 'alice',
        max_net_bytes: 4096,
        max_cpu_us: 400,
        max_memory_bytes: 0
    },
    actions: [{
        account: 'eosio.token',
        name: 'transfer',
        authorization: [{
            actor: 'bob',
            permission: 'active',
        }, {
            actor: 'alice',
            permission: 'active',
        }],
        data: {
            from: 'bob',
            to: 'alice',
            quantity: '0.0001 SYS',
            memo: 'resource payer',
        },
    }]
}