current position:Home>When verifying the smart contract in Etherscan, the ABI error is always prompted

When verifying the smart contract in Etherscan, the ABI error is always prompted

2022-02-03 23:16:51 Q & A of Denglian community

adopt https://remix.ethereum.org/ Compile the contract , Then when it is deployed to the test network , Want to go etherscan Verify contract ,abi Directly from remix Copy , When verifying , Always prompt for this error :Error! Invalid constructor arguments provided. Please verify that they are in ABI-encoded format

|690x315, 75%

contract Address :https://ropsten.etherscan.io/address/0xf1f763436a7cb1cbaad968957b444f263406bdd2#code

contract code is following:

pragma solidity ^0.5.17;contract Context {    // Empty internal constructor, to prevent people from mistakenly deploying    // an instance of this contract, which should be used via inheritance.    constructor () internal { }    // solhint-disable-previous-line no-empty-blocks    function _msgSender() internal view returns (address payable) {        return msg.sender;    }    function _msgData() internal view returns (bytes memory) {        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691        return msg.data;    }}library SafeMath {    function add(uint256 a, uint256 b) internal pure returns (uint256) {        uint256 c = a + b;        require(c >= a, "SafeMath: addition overflow");        return c;    }    function sub(uint256 a, uint256 b) internal pure returns (uint256) {        return sub(a, b, "SafeMath: subtraction overflow");    }    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {        require(b <= a, errorMessage);        uint256 c = a - b;        return c;    }    function mul(uint256 a, uint256 b) internal pure returns (uint256) {        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the        // benefit is lost if 'b' is also tested.        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522        if (a == 0) {            return 0;        }        uint256 c = a * b;        require(c / a == b, "SafeMath: multiplication overflow");        return c;    }    function div(uint256 a, uint256 b) internal pure returns (uint256) {        return div(a, b, "SafeMath: division by zero");    }    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {        // Solidity only automatically asserts when dividing by 0        require(b > 0, errorMessage);        uint256 c = a / b;        // assert(a == b * c + a % b); // There is no case in which this doesn't hold        return c;    }    function mod(uint256 a, uint256 b) internal pure returns (uint256) {        return mod(a, b, "SafeMath: modulo by zero");    }    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {        require(b != 0, errorMessage);        return a % b;    }}interface IERC20 {    function totalSupply() external view returns (uint256);    function balanceOf(address account) external view returns (uint256);    function transfer(address recipient, uint256 amount) external returns (bool);    function allowance(address owner, address spender) external view returns (uint256);    function approve(address spender, uint256 amount) external returns (bool);    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);    event Transfer(address indexed from, address indexed to, uint256 value);    event Approval(address indexed owner, address indexed spender, uint256 value);}contract ERC20 is Context, IERC20 {    using SafeMath for uint256;    mapping (address => uint256) private _balances;    mapping (address => mapping (address => uint256)) private _allowances;    string public constant name = "QEEE";    string public constant symbol = "QEEE";    uint8 public constant decimals = 0;    uint public totalSupply = 10000;    uint256 public currBlkNum = block.number;    uint256 public Additional = 20;    event onAdditional(uint256 blkNum, uint256 num);    function balanceOf(address account) public view returns (uint256) {        return _balances[account];    }    function transfer(address recipient, uint256 amount) public returns (bool) {        _transfer(_msgSender(), recipient, amount);        return true;    }    function allowance(address owner, address spender) public view returns (uint256) {        return _allowances[owner][spender];    }    function approve(address spender, uint256 amount) public returns (bool) {        _approve(_msgSender(), spender, amount);        return true;    }    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {        _transfer(sender, recipient, amount);        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));        return true;    }    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));        return true;    }    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));        return true;    }    function _transfer(address sender, address recipient, uint256 amount) internal {        require(sender != address(0), "ERC20: transfer from the zero address");        require(recipient != address(0), "ERC20: transfer to the zero address");        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");        _balances[recipient] = _balances[recipient].add(amount);        emit Transfer(sender, recipient, amount);    }    function _mint(address account, uint256 amount) internal {  // check role        // require(account != address(0), "ERC20: mint to the zero address");        totalSupply = totalSupply.add(amount);        _balances[account] = _balances[account].add(amount);        currBlkNum = block.number;        emit Transfer(address(0), account, amount);        emit onAdditional(block.number,amount);    }    function _burn(address account, uint256 amount) internal {        require(account != address(0), "ERC20: burn from the zero address");        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");        totalSupply = totalSupply.sub(amount);        emit Transfer(account, address(0), amount);    }    function _approve(address owner, address spender, uint256 amount) internal {        require(owner != address(0), "ERC20: approve from the zero address");        require(spender != address(0), "ERC20: approve to the zero address");        _allowances[owner][spender] = amount;        emit Approval(owner, spender, amount);    }    function _burnFrom(address account, uint256 amount) internal {        _burn(account, amount);        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));    }    function mint() public { // check role        uint256 enough = (block.number - currBlkNum) * Additional; // safeMath        _mint(address(0), enough);   }}

abi

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"blkNum","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"num","type":"uint256"}],"name":"onAdditional","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Additional","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currBlkNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]





Other answers 1:


Other answers 2:


Other answers 3:

copyright notice
author[Q & A of Denglian community],Please bring the original link to reprint, thank you.
https://en.netfreeman.com/2022/02/202202032316483847.html

Random recommended