首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Go-ethereum中创建合同,"Hello“计划

在Go-ethereum中创建合同,"Hello“计划
EN

Ethereum用户
提问于 2016-07-22 08:19:52
回答 2查看 1.1K关注 0票数 6

我想创建合同在围棋使用坚实,我开始了“你好世界”计划。

我创建了一个专用网络:

代码语言:javascript
复制
$geth --genesis private.json --networkid 1234 --datadir /home/user/Documents/genesisdata  console

在这里,我创建了一个新的帐户,然后我编写了下面的链接https://www.ethereum.org/greeter

代码语言:javascript
复制
var greeterSource ='contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) selfdestruct(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() returns (string) { return greeting; } function test() returns (string){ return greeting; } }'

我得到了:未定义

当我像这样在没有var的情况下编码时:

代码语言:javascript
复制
greeterSource ='contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) selfdestruct(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() returns (string) { return greeting; } function test() returns (string){ return greeting; } }'

我得到了:

“契约凡间{地址所有者;函数凡间(){ owner = msg.sender;}函数杀死(){ if (msg.sender == owner)自助解构(所有者);} contract是凡间{ string问候语;函数greet(String _greeting) public {问候= _greeting;}函数greet()返回(字符串){返回问候语;}函数测试()返回(字符串){返回问候语;}

因此,我在没有var的情况下继续代码,我编译:

代码语言:javascript
复制
greeter = greeterContract.new(_greeting,{from:web3.eth.accounts[0], data: greeterCompiled.greeter.code, gas: 210000}, function(e, contract){
if(!e) {

  if(!contract.address) {
    console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");

  } else {
    console.log("Contract mined! Address: " + contract.address);
    console.log(contract);
  }

}
else{
console.log("Error:>>>>>>>>>>>>>");
console.log(e);
}

})

直到:

代码语言:javascript
复制
greeter.greet();

TypeError:“问候”不是1:1的函数

我不知道该怎么解决。

请给我看看我在这个过程中遇到的问题。

谢谢。

EN

回答 2

Ethereum用户

回答已采纳

发布于 2016-07-22 09:08:25

你似乎不编译源代码吗?您刚刚声明了一个保存源代码的变量。这是主要的问题。

而且,显然,函数greet()不是用关键字constant声明的。因此,您必须用greeter.greet.call()调用它

PS :不需要做这些复杂的事情来创建你的开发链。只需运行get --dev --mine --minerthreads 1

票数 4
EN

Ethereum用户

发布于 2016-07-22 09:11:32

var greeterSource=...是正确的,Javascript每次都向您抛出这个undefined。别理它。

通过再次键入greeterSource,您可以看到变量的设置是正确的。您需要编译您与solc的合同,以便使用它,如tutoral所示。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/7315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档