Blockchain Solidity ParserError:应为'';但是得到了';是';

Blockchain Solidity ParserError:应为'';但是得到了';是';,blockchain,solidity,erc20,Blockchain,Solidity,Erc20,我一直在学习坚实,但我还是很新。目前我正在制作ERC20代币,但我在制作时遇到了一些困难。这是我的 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol"; import "https://gi

我一直在学习坚实,但我还是很新。目前我正在制作ERC20代币,但我在制作时遇到了一些困难。这是我的

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";

Contract GToken is ERC20 {
    constructor(string memory name, string memory symbol)
        ERC20("GToken", "GTKN") public {
            _mint(msg.sender, 1000000 * 10 ** uint(decimals));
        
}
我在尝试编译合同时收到的错误如下:


ParserError:应为“;”但是得到了'is'->GToken.sol:7:21:| 7 | Contract GToken是ERC20{}^

您的代码中有两个语法错误:

  • 合同
    应为小写,而不是
    合同
  • 构造函数
    缺少右括号}
然后您将遇到一个类型转换错误,
uint(小数)
。当您查看远程合约时,您会看到它是一个视图函数,而不是属性。因此,您应该像调用函数一样读取其值:
decimals()


综合起来:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
// removed the IERC20 import, not needed in this context

contract GToken is ERC20 {
    constructor(string memory name, string memory symbol) ERC20("GToken", "GTKN") public {
        _mint(msg.sender, 1000000 * 10 ** decimals()); // calling the `decimals()` function
    }
}

谢谢你解决了这个问题。