Openzeppelin import contract not working

I'm using vscode and installing openzepplin package from npm, I tried importing the contracts but it reverted with TypeError in the terminal complaining about import.

Compiling your contracts...

Compiling ./contracts/Token1.sol
Compiling ./contracts/Token2.sol
Compiling ./contracts/UniswapV2ERC20.sol
Compiling ./contracts/UniswapV2Factory.sol
Compiling ./contracts/UniswapV2Pair.sol
Compiling ./contracts/interfaces/IERC20.sol
Compiling ./contracts/interfaces/IUniswapV2Callee.sol
Compiling ./contracts/interfaces/IUniswapV2ERC20.sol
Compiling ./contracts/interfaces/IUniswapV2Factory.sol
Compiling ./contracts/interfaces/IUniswapV2Pair.sol
Compiling ./contracts/libraries/Math.sol
Compiling ./contracts/libraries/SafeMath.sol
Compiling ./contracts/libraries/UQ112x112.sol
Compiling ./contracts/test/ERC20.sol

CompileError: project:/contracts/Token1.sol:3:1: ParserError: Source "@openzeppelin/contracts/token/ECR20/ERC20Detailed.sol" not found
import "@openzeppelin/contracts/token/ECR20/ERC20Detailed.sol";
^-------------------------------------------------------------^
,project:/contracts/Token1.sol:4:1: ParserError: Source "@openzeppelin/contracts/token/ECR20/ECRC20.sol" not found
import "@openzeppelin/contracts/token/ECR20/ECRC20.sol";
^------------------------------------------------------^
,project:/contracts/Token2.sol:3:1: ParserError: Source "@openzeppelin/contracts/token/ECR20/ERC20Detailed.sol" not found
import "@openzeppelin/contracts/token/ECR20/ERC20Detailed.sol";
^-------------------------------------------------------------^
,project:/contracts/Token2.sol:4:1: ParserError: Source "@openzeppelin/contracts/token/ECR20/ECRC20.sol" not found
import "@openzeppelin/contracts/token/ECR20/ECRC20.sol";
^------------------------------------------------------^

Compilation failed. See above.
at /Users/my_name/.nvm/versions/node/v16.11.0/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:95:1
at Generator.next ()
at fulfilled (/Users/my_name/.nvm/versions/node/v16.11.0/lib/node_modules/truffle/build/webpack:/packages/compile-solidity/dist/run.js:28:43)
Truffle v5.7.1 (core: 5.7.1)
Node v16.11.0

As you can see I'm using Node v16.11.0 and @openzeppelin/contracts@2.5.1, truffle@5.7.1

MY file structure is as follows:
Core->Contracts
->Migrations
->Node_Modules
->test
->package.json
->truffle-config.js

My token 1 is in the contracts folder and token 2 is the same but with the variable name change.

pragma solidity =0.5.16;

import "@openzeppelin/contracts/token/ECR20/ERC20Detailed.sol";
import "@openzeppelin/contracts/token/ECR20/ECRC20.sol";

contract Token1 is ERC20Detailed, ERC20 {
constructor() public ERC20Detailed("Token 1", "TK1", 18) {}
}

Can anyone see what I'm doing wrong?

Thanks!

1 Like

How are you compiling?

your post is not clear. Have you imported to VScode?