新手教程 EOSIO v2.1.0 动作返回值

Surou · December 17, 2020 · Last by Ren-HK replied at June 11, 2021 · 571 hits

昨晚期待已久的 2.1.0 rc 版本终于发版了, https://github.com/EOSIO/eos/releases/tag/v2.1.0-rc1 新的协议功能:ACTION_RETURN_VALUE。 https://github.com/EOSIO/eos/pull/8327 激活后,此功能提供了一种方法,该方法可以将返回的值在操作中的块头中严格落实到外部进程中,而不必依赖 get_table 或通过 print 语句使用调试控制台。这使智能合约开发人员能够直接处理操作的返回值。进一步简化智能合约开发流程。一个例子可以在这里看到。

演示例子

合约代码

[[eosio::action]]
int sum(int valueA, int valueB) {
    return valueA + valueB; // 合约返回结果
}

前端推送完交易后,直接获取返回值

const transactionResult = await api.transact({
       actions: [{
         account: 'returnvalue',
         name: 'sum',
         authorization: [{
           actor: 'returnvalue',
           permission: 'active',
         }],
         data: {
           valueA: numbers.first,
           valueB: numbers.second
         }
       }]
     }, {
       blocksBehind: 3,
       expireSeconds: 30
     }) as any
     setResult(transactionResult.processed.action_traces[0].return_value_data) // 直接获取返回值

想问一下,2.10 之前通过 print 打印方式打印的信息,怎么能通过 java sdk 获取到啊

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up