2016-05-26 8 views
1

私はEthereumスマート契約を勉強しています。私はMistブラウザを使ってGreeter契約を展開しましたが、Mistにはうまくいきました。ethereum contractの状態変更メソッドをjavascriptで使用する方法は?

私は配備した挨拶の契約書を使って簡単なDappを作りたいと思っています。

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; 
    } 

    function changeMsg(string msg) { 
    greeting = msg; 
    } 
} 

JavaScriptで私のDAPPコード:マイソリディティで契約コード

_connect() { 

    /* ... */ 

    contract = web3.eth.contract(CONTRACT_ABI); 
    instance = contract.at(CONTRACT_ADDRESS); 

} 

_greet() { 
    console.log(instance.greet()); 
} 

_changeMsg(msg) { 
    console.log(instance.changeMsg(msg)); 
} 

_greet()関数がうまく機能し、それは私のグリーティングメッセージを返します。

しかし、_changeMsg()関数はいくつかのヘキサ文字列のみを返します。 _changeMsg()関数を使用してgreetメッセージを変更するにはどうすればよいですか?

ありがとうございます。

答えて

1

メッセージが実際に更新されていることがわかります。_greet()にもう一度お電話ください。

_changeMsg()が返っているヘックスは、トランザクションのハッシュです。これは、状態変更メソッド(トランザクション)によって常に返されるものです。詳細については

は、以下を参照してください。

https://ethereum.stackexchange.com/questions/765/what-is-the-difference-between-a-transaction-and-a-call

関連する問題