最終更新: hira_kosukety 2019年03月01日(金) 20:52:30履歴
プライベートなEthereum環境を作って、
コントラクトをデプロイ。
Gethのプロンプトでコントラクトを操作しようとした。
まず、ABIを設定
>abi = [ { "constant": false, "inputs": [ { "name": 〜中略〜 "name": "Approval", "type": "event" } ]
コントラクトアドレスの設定
>address = "0xXXXXXXXXXXXXXXXXXXXXXXXXX"
コントラクトのオブジェクトを取得
>obj = eth.contract(abi).at(address)
で、あとは、コントラクトのファンクションを実行するだけだけど。
上手くいかない。どうやら、 "eth.contract().at()"で上手くコントラクトのオブジェクトを取得出来ていない様子。
色々調査した結果、Genesisファイルに原因があった。
Genesisファイル作成時に、config の homesteadBlock の値が 「0」で設定していないといけないらしい。
「0」にして、初期化したら上手く動いた。
※BCの初期化は、データディレクトリにある、「geth」フォルダ以下を削除して、
ブロックチェーンの初期化を実行するれば良い。
コントラクトをデプロイ。
Gethのプロンプトでコントラクトを操作しようとした。
まず、ABIを設定
>abi = [ { "constant": false, "inputs": [ { "name": 〜中略〜 "name": "Approval", "type": "event" } ]
コントラクトアドレスの設定
>address = "0xXXXXXXXXXXXXXXXXXXXXXXXXX"
コントラクトのオブジェクトを取得
>obj = eth.contract(abi).at(address)
で、あとは、コントラクトのファンクションを実行するだけだけど。
上手くいかない。どうやら、 "eth.contract().at()"で上手くコントラクトのオブジェクトを取得出来ていない様子。
色々調査した結果、Genesisファイルに原因があった。
Genesisファイル作成時に、config の homesteadBlock の値が 「0」で設定していないといけないらしい。
「0」にして、初期化したら上手く動いた。
※BCの初期化は、データディレクトリにある、「geth」フォルダ以下を削除して、
ブロックチェーンの初期化を実行するれば良い。
タグ
コメントをかく