*

【備忘録】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ボタンをお願いします。
    ブログを書くモチベーションになります。よろしくお願いします。

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



関連記事

「ちょまどさん」がやってきた。

      このツーショット!       なななんと   ちょまどさんです。     もう1度いい

記事を読む

Maker Faire Tokyo に出展したIoTクソゲー「うちわdeファイト」の作り方

       8月4日・5日 Maker Faire Tokyo 2018 に出展したIoTクソゲー

記事を読む

ブロックチェーンによって、近い将来、企業や国家が不要になる? ~ DAO(分散型自動化組織)に仮想通貨イーサリアムで出資してみた。

フィンテックが流行ってます。 つい最近まで詐欺のように思われていた仮想通貨がやっと市民権を得てきま

記事を読む

トランプと多様性とノマドとブロックチェーン

トランプ大統領が誕生しました。 数年後の我々は振り返ることでしょう。 今日という日が歴史的な

記事を読む

「ディスコ プログラミングコンテスト@広島」潜入レポート

    2017年7月8日 「ディスコ プログラミングコンテスト@広島」に参加して来ました。   デ

記事を読む

ad

Message

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

ad

京都をブラタツヤ

      ちょっと古い話ですが、 8月24日に京都に行ってきました。

『ワンス・アポン・ア・タイム・イン・ハリウッド』を観て(ネタバレあり)

        久しぶりにタランティーノ映画を観た。   ネタや伏線

NeoPixelでアイアンマンのようなものを作ったよ

前回の投稿の光るSDGsバッジを作って、SNSに投稿したら、ある人か

NeoPixelで光るSDGsバッジ作ったよ

    最近、こんなバッジ付けてる人、よく見かけますね。

レッドハッカソンひろしま2019

          プロローグ   広島では毎年、広島県主催の「レッ

→もっと見る

    • 745496総閲覧数:
    • 322今日の閲覧数:
    • 1034昨日の閲覧数:
    • 2現在オンライン中の人数:
    • 2014年4月29日カウント開始日:
PAGE TOP ↑