0

我可以在不使用 truffle-contract 的情况下与部署的合约中的函数进行交互吗?

我只想运行并使用我的函数来检查它们是如何工作的。

我用 MyContract.at("0x...").MyFunctionName(parameters,{from:"x0..."});

但它不起作用。

任何想法或建议

谢谢

4

1 回答 1

0

很难知道“它不起作用”是什么意思,但我猜你MyContract.at("0x...").MyFunctionName(parameters,{from:"x0..."});在 truffle 控制台中运行时没有看到任何输出?

如果是,原因是因为调用合约实例的方法会给你一个Future,并且你必须以异步方式处理从调用返回的结果。例如,如果函数返回一个值,表明发生了一些计算,您可以通过以下方式在控制台中打印返回值:

MyContract.at("0x...").MyFunctionName(parameters,{from:"x0..."}).then(console.log)

如果您正在编写单元测试(通过 执行truffle test),那么您可以通过以下方式处理返回值:

MyContract.at("0x...").MyFunctionName(parameters,{from:"x0..."}).then(function(returnedValue) { 
  // do something with the returnedValue, e.g.
  // assert.equal(returnedValue, 3, "The returned value must be 3");
});
于 2017-03-21T16:27:37.270 回答