アプリケーション開発ポータルサイト
ServerNote.NET
ServerNote.NET厳選キャンペーン・クーポンはこちら!
カテゴリー【仮想通貨Ubuntu
【イーサリアム】Error: invalid opcode: SHRの対処法
POSTED BY
2022-03-22

自分で作成したスマートコントラクトのコードを呼ぼうとしたら出たエラー。

https://ethereum.stackexchange.com/questions/87245/error-returned-error-invalid-opcode-shr

によると、ブロックチェーン新規作成時の初期化ブロックファイルgenesis.jsonを修正しないとだめとのこと。つまり初期化から完全にやり直しである。

genesis.jsonのconfigブロックに以下2設定が必要とある。

"byzantiumBlock": 0,
"constantinopleBlock": 0

公式に記載されているフルサンプルの一例が以下。

JSONgenesis.jsonGitHub Source
{
  "config": {
    "chainId": 15,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0,
    "istanbulBlock": 0,
    "berlinBlock": 0
  },
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "",
  "gasLimit": "0x8000000",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

今度は正しくコントラクトサンプルが動作した。

var myContract = contract.new({ from: eth.accounts[0], data: bin})
undefined
var cnt = eth.contract(myContract.abi).at(myContract.address);
undefined
cnt.get.call()
0
cnt.set.sendTransaction(8, {from: eth.accounts[0]})
"0x477b1345dc072ec1efd93c15444fc2b8b9437d73f48a71ece436b87e6e394340"
myContract.get.call()
8
cnt.get.call()
8
不織布マスクの呼吸を楽にする日本製マスクフレーム「ライフマスクサポーター」
不織布マスク用マスクフレーム「ライフマスクサポーター」 (5個入 1,240円 税込・送料込)の販売プログラム...READ MORE
写真1枚で作る年賀状・ポストカード★送料無料・税込み30枚500円〜【TOLOT Card】
★☆驚きの価格!ポストカード・年賀状印刷の価格破壊★ ◆会員数280万人のフォトブックサービス『TOLOT』...READ MORE
圧倒的な低価格!1GB 660円(税込)/月〜【DTI SIM】
■-□-■-□-■-□-■-□-■-□-■-□-■-□-■-□-■-□-■-□-■    格安SIMに乗り換えるなら    選...READ MORE
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【webmaster/管理人】
自営業プログラマー
ご連絡は以下アドレスまで★

☆ServerNote.NETショッピング↓
ShoppingNote
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】