【问题标题】:Call functions from smart contract从智能合约调用函数
【发布时间】:2017-08-07 13:21:41
【问题描述】:

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

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

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

但它不起作用。

任何想法或建议

谢谢

【问题讨论】:

  • 我使用的是版本 3
  • 你到底想用松露做什么,你的合约是什么样的,你用什么参数调用什么函数?
  • 为您的问题添加更多信息

标签: solidity smartcontracts


【解决方案1】:

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

如果是,原因是调用合约实例的方法会给你一个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");
});

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 2022-09-29
    • 2020-04-08
    • 1970-01-01
    • 2023-01-30
    • 2018-09-23
    • 2017-08-19
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多