*

【備忘録】Solidity スマートコントラクトのコンパイルエラー

GWはブロックチェーンを勉強中のTatsuyaです。

 

Udemyのこのコースで勉強中です。

Ethereum and Solidity: The Complete Developer’s Guide

https://www.udemy.com/ethereum-and-solidity-the-complete-developers-guide/learn/v4/overview

 

しかし、開発言語Solidityや solcのアップデートが反映されていないようなので、スマートコントラクトのコンパイルで手間取ったところをメモ。

 

契約ファイル

Inbox.sol

コンパイルファイル

 

これで、コンパイル!

$ node compile.js

 

こんなエラーが出た。

 

Error: ENOENT: no such file or directory, open ‘/Users/tatsuya1970/learnBlockchain/inbox/constracts/Inbox.sol’

    at Object.fs.openSync (fs.js:646:18)

    at Object.fs.readFileSync (fs.js:551:33)

    at Object.<anonymous> (/Users/tatsuya1970/learnBlockchain/inbox/compile.js:6:19)

    at Module._compile (module.js:652:30)

    at Object.Module._extensions..js (module.js:663:10)

    at Module.load (module.js:565:32)

    at tryModuleLoad (module.js:505:12)

    at Function.Module._load (module.js:497:3)

    at Function.Module.runMain (module.js:693:10)

    at startup (bootstrap_node.js:188:16)

 

ググると、

StackOverflowに解決方法あり。

https://stackoverflow.com/questions/53353167/npm-solc-assertionerror-err-assertion-invalid-callback-specified

 

solcのバージョンが古いからだそうだ。

 

solcをアンインストールし、

バージョン0.4.25をインストール

 

$ npm uninstall solc

$ npm install solc@0.4.25

 

Inbox.solの一行目も0.4.25に変更

pragma solidity ^0.4.25;

 

これでコンパイル

$ node compile.js

 

これでもなんかエラーが出た。

errors:

   [ ‘:7:5: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use “constructor(…) { … }” instead.\n    function Inbox(string initialMessage) public {\n    ^ (Relevant source part starts here and spans across multiple lines).\n’ ],

  sourceList: [ ” ],

  sources: { ”: { AST: [Object] } } }

 

これもググってみると、

ここに回答あり。

https://ethereum.stackexchange.com/questions/45972/ive-got-an-error-while-compiling-use-constructor-instead

 

最新のSolidityでは契約の書き方が変わっている。

 

ではなくて、

 

 

 

これで、コンパイル

$ node compile.js



うまくいったぜ!

 

 

ad

    この記事が気に入りましたら、ぜひTwitter、facebookボタンをお願いします。
    ブログを書くモチベーションになります。よろしくお願いします。

  • このエントリーをはてなブックマークに追加
この記事が良かったらビットコインで寄付をお願いします。
ビットコイン投げ銭ウィジェット



関連記事

【Python 備忘録】pycURLのインストールができない場合の解決方法

  ※ここに記載の事例は、あくまで私個人の備忘録です。 私個人の環境での話ですので、これが本当に正し

記事を読む

【Ruby on Rails 備忘録】Errno::ECONNREFUSED: Connection refused – connect(2) for action mailer の解決方法

      Ruby on Railsで WEBサービスを作成中。   コメントがあったら

記事を読む

『ビットコインはどのようにして動いているのか?』を読んで、ブロックチェーンの仕組みを大雑把にまとめてみた

最近「フィンテック」なる言葉をよく聞くようになりました。 金融(Finance)と技術(Techn

記事を読む

【備忘録】Gitというバージョン管理ツールの勉強会に参加しました。

    ちょうど1週間前の1月20日 「広島フロントエンド勉強会 Vol.15」に参加してきま

記事を読む

シンガポールのスタートアップ関連英文記事を要約してみるシリーズ(その2:Electrify)

訳あって当面シンガポールのスタートアップ事情を調べることになったのですが、日本語の情報が少ないので、

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

【備忘録】mocha によるテスト

自分用備忘録   イーサリアムによるブロックチェーンを作る講座を受

【備忘録】Solidity スマートコントラクトのコンパイルエラー

GWはブロックチェーンを勉強中のTatsuyaです。   Udem

熊本をブラタツヤ2019(NT熊本)

      ブラタツヤとは、Tatsuyaが街をブラブラする様子を綴っ

アカデミー賞作品賞の「グリーンブック」を観た

          アカデミー賞作品賞の「グリーンブック」観た。  

Uber(ウーバー)が広島にやってきた

      ついに、Uber(ウーバー)が広島にやってきました。 4

→もっと見る

    • 506024総閲覧数:
    • 411今日の閲覧数:
    • 1816昨日の閲覧数:
    • 0現在オンライン中の人数:
    • 2014年4月29日カウント開始日:
PAGE TOP ↑