我在写合同教程。下面是代码(包括合同):
var greeterSource = 'contract mortal { address owner; function mortal() { owner = msg.sender; } function kill() { if (msg.sender == owner) suicide(owner); } } contract greeter is mortal { string greeting; function greeter(string _greeting) public { greeting = _greeting; } function greet() constant returns (string) { return greeting; } }'
var greeterCompiled = web3.eth.compile.solidity(greeterSource)
var _greeting = "Hello World!"
var greeterContract = web3.eth.contract(greeterCompiled.greeter.info.abiDefinition);
var greeter = greeterContract.new(_greeting,{from:web3.eth.accounts[0], data: greeterCompiled.greeter.code, gas: 10000000000000}, 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);
}
}
})在最上面的一行,契约源代码是在没有中断行的情况下编写的。
我有4个乙醚用于测试网:
> eth.getBalance(eth.coinbase)
4000000000000000000欢迎你再寄给我一些:
> eth.accounts
["0x425434d3a0f5da79d60769f2400896f0d85b41ec"]在geth-1.4.6控制台中,我使用
> loadScript("/home/work/projects/contracts/tutorial_greeter/setup_greeter.js")
true编撰工作,但为何即使同时开采了多个区块,也没有地址呢?
> greeter
{
abi: [{
constant: false,
inputs: [],
name: "kill",
outputs: [],
type: "function"
}, {
constant: true,
inputs: [],
name: "greet",
outputs: [{...}],
type: "function"
}, {
inputs: [{...}],
type: "constructor"
}],
address: undefined,
transactionHash: null发布于 2016-06-13 22:39:29
因为你没有加进去。
greeter.at("0xXXXXXXXX")其中XXXX是显示在控制台中的地址。然后,迎接者将有一个地址。
如果您错过了控制台中的消息,仍然可以通过查询事务来检索它。如果你不知道交易地址,你应该检查帐户的地址。您可以在控制台或Testnet资源管理器( http://testnet.etherscan.io )上执行此操作。
发布于 2016-06-13 20:24:38
您需要同步testnet块链,并等待最后一个块才能看到您的事务。
看这里,https://testnet.etherscan.io
最后一个街区是1128505区。
您可以在geth客户端下键入eth.blockNumber,以查看您是否在此块附近。
尽情享受
比利M.
https://ethereum.stackexchange.com/questions/5977
复制相似问题