Hello again @abcoathup ,
First thanks for show me the code to help me understand
I have a problem , i am learning in the docs how to use openzeppelin, in this case when i run this code
pragma solidity ^0.5.0;
//import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
//import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20Detailed.sol";
/**
* @title SimpleToken
* @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator.
* Note they can later distribute these tokens as they wish using `transfer` and other
* `ERC20` functions.
*/
contract SimpleToken is ERC20, ERC20Detailed {
/**
* @dev Constructor that gives msg.sender all of existing tokens.
*/
constructor () public ERC20Detailed("SimpleToken", "SIM", 18) {
_mint(msg.sender, 10000 * (10 ** uint256(decimals())));
}
}
when i compile , i have this error
✖ Compiling contracts with solc 0.5.16 (commit.9c3226ce)
Compilation errors:
contracts/SimpleToken.sol:35:27: TypeError: Wrong argument count for modifier invocation: 3 arguments given but expected 0.
constructor () public ERC20Detailed("SimpleToken", "SIM", 18) {
i dont know what i am doing wrong but if i run the code with this imports
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
compile fine , but the problem back when i try to create using npx oz create
and select the contract , the error says
Nothing to compile, all contracts are up to date.
? Pick a contract to instantiate SimpleToken
? Pick a network development
- Contract SimpleToken or an ancestor has a constructor. Change it to an initializer function. See https://docs.openzeppelin.com/upgrades/2.6//writing-upgradeable#initializers.
- Contract SimpleToken imports token/ERC20/ERC20.sol, GSN/Context.sol, token/ERC20/IERC20.sol, math/SafeMath.sol, token/ERC20/ERC20Detailed.sol from @openzeppelin/contracts. Use @openzeppelin/contracts-ethereum-package instead. See https://docs.openzeppelin.com/cli/2.6/dependencies#linking-the-contracts-ethereum-package.
One or more contracts have validation errors. Please review the items listed above and fix them, or run this command again with the --force option.
i go to the link and i use this imports
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/ERC20Detailed.sol";
but the first error back again , i dont know how to solved , i think the first error is the most nearby to the solution , but i dont know what i need to do exacly