昨晚期待已久的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) // 直接获取返回值
版权属于:区块链中文技术社区 / 转载原创者
本文链接:https://bcskill.com/index.php/archives/969.html
相关技术文章仅限于相关区块链底层技术研究,禁止用于非法用途,后果自负!本站严格遵守一切相关法律政策!