【问题标题】:Verifying a Contract on BSCScan.com在 BSCScan.com 上验证合同
【发布时间】:2021-08-13 16:05:45
【问题描述】:

我在朋友的帮助下创建了一种加密货币(我们花了很长时间从这里和那里复制粘贴代码)并编辑合同信息,这对我来说至关重要,我现在需要验证合同.这是我的合约地址:

0xe1c7a0d5e099a1f0c14b60b0c320423cf2f4543b

这是我在 Remix 中使用的代码:

pragma solidity >=0.8.0;

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

contract HelpingArtistsAtRisk is ERC20 {
    constructor(uint256 initialsupply) public ERC20 ("Helping Artists At Risk", "HAAR"){
        _mint(msg.sender,initialsupply);}
}

当我尝试验证它时,它给我一个又一个错误。以下是错误消息:

警告:源文件中未提供 SPDX 许可证标识符。在发布之前,请考虑向每个源文件添加包含“SPDX-License-Identifier:”的注释。对非开源代码使用“SPDX-License-Identifier: UNLICENSED”。请参阅https://spdx.org 了解更多信息。 --> myc

ParserError:未找到源“https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol”:不支持文件导入回调 --> myc:3:1: | 3 |导入“https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol”

BEP-20.sol:1:1: 错误:编译器版本 >=0.8.0 不满足 r semver 要求

ParserError:预期的编译指示、导入指令或合同/接口/库/结构/枚举/常量/函数定义。 --> myc:1:1: | 1 | “SPDX 许可证标识符:未经许可” | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我只是想获得 BSCSCAN 的验证。

【问题讨论】:

    标签: solidity binance-smart-chain


    【解决方案1】:

    从 solidity 0.6.8 开始,您应该为您的合同设置一个 License 标头,因此您需要在文件的第一行添加它:

    // SPDX-License-Identifier: UNLICENSED
    

    您可以使用 UNLICENSED 或使用其中一种预定义的许可证。这是列表:https://spdx.org/licenses/

    有关 SPDX 许可证herader 的更多信息,请点击此处:https://forum.openzeppelin.com/t/solidity-0-6-8-introduces-spdx-license-identifiers/2859

    这应该会修复您的第一个警告和最后一个错误。

    进行此更改后,我能够使用 remix 编译合约,但我认为所有其他错误都与编译器版本有关,您能否分享您在编译器选项中看到的版本和其他设置?

    我正在使用编译器 0.8.4+commit.c7e474f2

    您还需要删除构造函数中的 public 关键字,编译器会忽略它。最终结果是:

    // SPDX-License-Identifier: UNLICENSED
    
    pragma solidity >=0.8.0;
    
    import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol";
    
    contract HelpingArtistsAtRisk is ERC20 {
        constructor(uint256 initialsupply) ERC20 ("Helping Artists At Risk", "HAAR"){
            _mint(msg.sender,initialsupply);}
    }
    

    【讨论】:

    猜你喜欢
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多