『SolidityとEthereumによる実践スマートコントラクト開発』で詰んだところと解決法
OS: Window 10
エディタ: VSCode
参考①
note.com
参考②
zenn.dev
参考③
zenn.dev
Openzeppelinからimportする
4章, 6章での詰みポイント
6章P108 Ownable.solのインポート
書籍中の記述
npm install openzeppelin-solidity --save
これだとうまくいかない
下のノートに従う
note.com
まずアンインストールした
npm uninstall openzeppelin-solidity
npmを初期化
npm init
ノート通りに3.4.1をインストール
npm install openzeppelin-solidity@3.4.1
そしてFundraiser.solのimportの部分の記述を書き換え。
import "openzeppelin-solidity/contracts/access/Ownable.sol";;
またTruffle-config.jsを下のように書き換えてsolidityのバージョンを決定した
const path = require("path"); module.exports = { contracts_build_directory: path.join(__dirname, "client/src/contracts"), networks: { develop: { port: 8545 } }, compilers: { solc: { version: "0.6.0" } } };
これでtruffle testが通った.
P123 SafeMathをimport
SafeMathとOwnableのSolidityのバージョンが違うらしく, なぜか上手くいかなかったので,
書籍の記述
import "openzeppelin-solidity/contracts/utils/math/SafeMath.sol"
まずopenzeppelin-solidityをアンインストールした
npm uninstall openzeppelin-solidity
OpenZeppelinのページを見て、新しいバージョンをインストールをした
github.com
npm install @openzeppelin/contracts
node_modulesに@openzeppelin/contracts以下がインストールされた
OpenZeppelin 4.3.2ではOwnable.solは @openzeppelin/contracts/access/Ownable.sol に、SafeMath.solは @openzeppelin/contracts/utils/math/SafeMath.sol にある
そこでFundraiser.solでは以下のように書き換えてインポートした
pragma solidity >0.4.23 <0.9.0; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; ~~~
truffle-config.jsを下のように書き換え、solidityのバージョンを変えた
const path = require("path"); module.exports = { ~~~ compilers: { solc: { version: "^0.8.0" } } };
よく分からないエラーが発生
1. Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier:
2. Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient. ~~~
1. では何かライセンスが要求される
Fundraiser.solの1行目に以下の文を追加, OOOは好きな文字でOK
// SPDX-License-Identifier: ORE
2. ではconstructorの記法が変化しているという話
www.shibuya24.info
Fundraiser.solとMigration.solのconstructor文からpublicを消去
constructor(){}
とりまここまで
【全ポケ語れる説】No.068 カイリキー
【全ポケ語れる説】No.068 カイリキー
金の玉投げつけるカイリキー
— 太ピ津ピ久 (@myjob_memo) July 29, 2019
キミは【カイリキー】の要素を持つ人材!
どのポケモンに近い人材か診断しよう! https://t.co/MZnUBU6z83 #ポケモン自己分析
ポケモン自己分析で私は【カイリキー】と出ました。
受け身だとか行動より考えるとか選択したのですけどね。
ポケットモンスターサン・ムーンのCMで吉田沙保里が使っていたのが印象深いですね。
『ポケットモンスター サン・ムーン』テレビCM“しれんサポーター篇”(2)
続きを読む
「女は面白いから来世も女がいい。」最終回を読んで
「女は面白いから来世も女がいい。」最終回を読んで
「女は面白いから来世も女がいい。」最終回おめでとうございます
以前から推していたエッセイ漫画の「女は面白いから来世も女がいい。」が最終回を迎えました。
最後の晴れ舞台です!
— イチョウ ヨワシ (@h_uk_ut_u777) May 6, 2019
よろしくお願いします🤲https://t.co/8OMYl0XWzF
このブログの作り始めの時に紹介記事を書いたのですが、最終回を迎えたことから改めて記事を書きたいと思いました。
続きを読む
【全ポケ語れる説】No.719 ディアンシー
【全ポケ語れる説】No.719 ディアンシー
図鑑番号719 ディアンシーについて語りましょう! #全ポケ語れる説https://t.co/djDxcexjOg
— 平成@余命一ヶ月 (@myjob_memo) March 25, 2019
ダイヤストームするだけでつよい
映画ポケットモンスター「ポケモン・ザ・ムービー XY 破壊の繭とディアンシー」に登場しました。
続きを読む