如何从对智能合约的调用中返回一个值?

Posted

技术标签:

【中文标题】如何从对智能合约的调用中返回一个值?【英文标题】:How to return a value from a call to a smart contract? 【发布时间】:2020-01-13 20:04:51 【问题描述】:

是否有任何示例可用于从修改链上存储的调用中返回值?

从读取中返回值当然不是问题,但有人提到从调用中获取返回也是可能的。

【问题讨论】:

【参考方案1】:

我不确定你所说的获取返回值是什么意思,但这里有一个例子:

export function incrementCounter(): i32 
  let newCounter = storage.getPrimitive<i32>("counter", 0) + 1;
  storage.set<i32>("counter", newCounter);
  logging.log("Counter is now: " + newCounter.toString());
  return newCounter;

在前端你可以通过

let a = await contract.incrementCounter();

这是小提琴https://studio.nearprotocol.com/?f=m4fcztid8。

【讨论】:

以上是关于如何从对智能合约的调用中返回一个值?的主要内容,如果未能解决你的问题,请参考以下文章

如何调用 Solidity 函数从智能合约中返回以太币?

智能合约常见攻击方式

我如何将 eth 值发送到在 ethers.js 中支付的特定智能合约功能?

Eth,如何从智能合约中调用存款功能

星云链智能合约开发:智能合约中调用内置库

回调智能合约 web3.php 中的 PHP 数组