Solidity - “Uncaught TypeError:无法读取未定义的属性'合同'

时间:2016-02-11 07:24:40

标签: ethereum solidity

我对Mix IDE和ethereum(特别是可靠性)有点新,我有一个天真的问题。我的网页中的javascript代码如何与合同代码“绑定”?我写了一个简单的网页,它接受了一个值,但javascript似乎无法将值传递给实际的合同。确切的错误行是:

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

Mix给我的确切错误是:

  

“未捕获的TypeError:无法读取未定义的属性'合同'。”

所以它显然将合约[“MyFirstContract”] 视为零

但是,MyFirstContract.sol文件存在! javascript如何知道我正在谈论的合同文件?它似乎没有出现在文档中,虽然我可能会遗漏一些东西。

1 个答案:

答案 0 :(得分:1)

我弄清楚出了什么问题。似乎javascript代码不直接访问.col文件。它直接从区块链获取合同代码,而不是实际的.col文件。因此,在javascript可以看到之前,您必须编译并将合同上传到区块链。

您必须将交易添加到测试区块链。在Mix IDE中,您必须按" Add Transaction" "右视图"中可用的按钮窗格(F7拉出"右视图"窗格)。打开对话框后,按"创建合同"单选按钮,然后从下拉菜单中选择刚刚创建的合约。按确定,Mix会在其中创建包含合同代码的交易。然后尝试你的JavaScript,它应该工作。