質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Solidity

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

1回答

2392閲覧

OpenZeppelinライブラリをSolidityで正しくimportできるようにしたい

akiterry

総合スコア0

Solidity

Solidityは、仮想通貨イーサリアム上で実行できるプログラミング言語。スマートコントラクトやDAppsなどの開発・実装に用いられます。コントラクト指向・高水準な言語のため、イーサリアム上で動作するEVM Codeに翻訳することが可能です。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2021/09/02 10:27

編集2021/09/02 10:34

前提・実現したいこと

SolidityにてOpenZeppleinライブラリをimportして使いたいのですが、Truffleでコンパイルした際に以下のようなエラーが出てしまいます。
正しくimportされ、コンパイルできるようにしたいので、どのように解決すれば良いか教えていただきたいです。

発生している問題・エラーメッセージ

/c/Truffle/myproject/contracts/Activatable.sol:3:1: ParserError: Source "/c/Truffle/myproject/node_modules/openzeppelin-solidity/contracts/ownership/ownable.sol" not found import '../node_modules/openzeppelin-solidity/contracts/ownership/ownable.sol'; ^-----------------------------------------------------------------------------^ ,/c/Truffle/myproject/contracts/Destructible.sol:4:1: ParserError: Source "/c/Truffle/myproject/ownership/Ownable.sol" not found import "../ownership/Ownable.sol"; ^--------------------------------^ ,/c/Truffle/myproject/contracts/Pausable.sol:4:1: ParserError: Source "/c/Truffle/myproject/ownership/Ownable.sol" not found import "../ownership/Ownable.sol"; ^--------------------------------^ ,/c/Truffle/myproject/contracts/Room.sol:3:1: ParserError: Source "/c/Truffle/myproject/node_modules/openzeppelin-solidity/contracts/lifecycle/pausable.sol" not found import "../node_modules/openzeppelin-solidity/contracts/lifecycle/pausable.sol";^------------------------------------------------------------------------------^,/c/Truffle/myproject/contracts/Room.sol:4:1: ParserError: Source "/c/Truffle/myproject/node_modules/openzeppelin-solidity/contracts/lifecycle/destructible.sol" not found import "../node_modules/openzeppelin-solidity/contracts/lifecycle/destructible.sol"; ^----------------------------------------------------------------------------------^ ,/c/Truffle/myproject/contracts/RoomFactory.sol:3:1: ParserError: Source "/c/Truffle/myproject/node_modules/openzeppelin-solidity/contracts/lifecycle/Pausable.sol" not found import "../node_modules/openzeppelin-solidity/contracts/lifecycle/Pausable.sol";^------------------------------------------------------------------------------^,/c/Truffle/myproject/contracts/RoomFactory.sol:4:1: ParserError: Source "/c/Truffle/myproject/node_modules/openzeppelin-solidity/contracts/lifecycle/Destructible.sol" not found import "../node_modules/openzeppelin-solidity/contracts/lifecycle/Destructible.sol"; ^----------------------------------------------------------------------------------^

該当のソースコード

Solidity

1 2import "../node_modules/openzeppelin-solidity/contracts/ownership/Ownable.sol"; 3import "../node_modules/openzeppelin-solidity/contracts/lifecycle/Pausable.sol"; 4import "../node_modules/openzeppelin-solidity/contracts/lifecycle/Destructible.sol"; 5 6

試したこと

他の質問者様が同じようなエラーが起こると書かれていたところの解決方法ではエラーが解消しませんでした。
その解決法は、元々下記のようにimportしていたものを該当のソースコードに示してあるように書き直すといったものでした。

import "openzeppelin-solidity/contracts/ownership/Ownable.sol";

補足情報(FW/ツールのバージョンなど)

試して学ぶスマートコントラクト開発という参考書を用いて勉強しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/09/02 11:41

openzeppelin-solidityのインストールは行いましたか?
akiterry

2021/09/02 12:04

はい. npm install openzeppelin-solidity@1.12.0を実行しました
guest

回答1

0

openzeppelin-solidityのバージョンが違うとファイルの位置が変わる、ということが考えられます。

実際にnode_modulesにインストールされたものを確認して、適切なディレクトリを指定してみましょう。

投稿2021/09/02 12:09

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akiterry

2021/09/02 12:21

ご回答ありがとうございます。 node_modulesにインストールされているopenzeppelin-solidityのディレクトリからlifecycleとownershipのディレクトリに間違いなく、それぞれのsolファイルが格納されていることを確認しました。 もし、他に原因と考えられるものがあれば教えていただけますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問