1

在将智能合约部署到真实网络之前,我正在使用 testrpc 和 truffle 来测试我的智能合约。

在我的合约中,每个节点都必须通过调用函数 register 在合约中注册,之后他可以向/从合约(区块链)发送或接收消息

问题是,当一个地址(比如说来自 testrpc 账户的账户 1)调用函数(发送或接收)时,交易不会发生并且出现此消息

VM Exception while processing transaction: invalid JUMP at

但是当我使用另一个未注册的帐户调用此函数时,它可以工作。

虽然没有发送或接收任何消息,但没有例外..

知道如何解决这个问题。

谢谢

4

1 回答 1

0

除非你使用旧版本的 solc 来编译你的solidity,否则这是一个优化问题的机会几乎没有。

现在,这意味着什么,例如,当您运行修改器但它不起作用时,可能会发生这种情况。或者,如果您尝试调用不允许的函数并且它会抛出。例如,它在 ICO 完成后经常发生,并且您尝试使用由于日期限制而无法再使用的函数,它返回一个Invalid Jump

我看不到您的代码,但我认为您可能已经反转了修饰符中的 if 条件,现在如果用户未注册,它会返回 true。

于 2017-11-07T17:52:21.033 回答