*

【備忘録】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のインストールができない場合の解決方法

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

記事を読む

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

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

記事を読む

素人のオッサンが作ったiPhoneアプリのコードを公開するシリーズ第1弾「Mind-Reading」

  私は今まで4作のアプリをApp Storeで公開しています。 https://

記事を読む

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

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

記事を読む

『After GAFA』を読んで

  私はロックという音楽が好きでずっと聴いてきた。 とはいえ、リアルタイムなのは1980年代からで、

記事を読む

ad

Message

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

ad

2021年「Tatsuya’s Blog 年間アクセスランキング」

            2021年最後のブログは、 「Tatsuya’

Tatsuyaの2021年劇場映画ベスト3

        毎年恒例の今年を振り返る自己満足企画「個人的映画ベス

中盤まで大傑作だった映画『ドライブ・マイ・カー』を観て(ネタバレ注意)

(ネタバレ注意) ほとんどが広島ロケということで私のような広島

「地方創生ハッカソン in 福井」に参加しました。

    2021年11月27日・28日、福井市内で開催された「地方創生

ヒーローズリーグで「新種を発見したで賞」を受賞しました

  ※一部の画像は知人のSNSから取得してますのでご了承ください。  

→もっと見る

    • 1192862総閲覧数:
    • 57今日の閲覧数:
    • 256昨日の閲覧数:
    • 1現在オンライン中の人数:
    • 2014年4月29日カウント開始日:
PAGE TOP ↑