1

我对 Mix IDE 和以太坊(特别是solidity)有点陌生,我有一个幼稚的问题。我网页中的 javascript 代码如何与合同代码“绑定”?我写了一个接受值的简单网页,但 javascript 似乎无法将值传递给实际合同。确切的错误行是:

var result = contracts["MyFirstContract"].contract.reportUser("foo");

Mix 给我的确切错误是:

“未捕获的类型错误:无法读取未定义的属性‘合同’。”

所以它显然认为contracts["MyFirstContract"]为零

但是,MyFirstContract.sol 文件存在!javascript 如何知道我在说什么合同文件?它似乎没有出现在文档中,尽管我可能遗漏了一些东西。

4

1 回答 1

1

我发现出了什么问题。似乎 javascript 代码不直接访问 .col 文件。它直接从区块链获取合约代码,而不是实际的 .col 文件。所以你必须在你的 javascript 看到它之前编译并上传合约到区块链。

您必须将交易添加到测试区块链。在 Mix IDE 中,您必须按下“右视图”窗格中可用的“添加事务”按钮(F7 拉出“右视图”窗格)。对话框打开后,按“创建合同”单选按钮并从下拉菜单中选择您刚刚创建的合同。按 OK,然后 Mix 创建一个包含你的合约代码的交易。然后试试你的javascript,它应该可以工作。

于 2016-02-16T07:06:24.350 回答