Sol-verifier构造函数参数-失败-无法验证

时间:2019-04-15 04:05:09

标签: blockchain ethereum solidity etherscan

我正在使用 ether.js 进行固态智能合约部署,并使用 sol-verifier 库在etherscan.io上验证了智能合约。

sol-verifier的github链接是-https://github.com/Aniket-Engg/sol-verifier

当合同在验证期间需要构造函数参数时,验证过程将失败。我已经使用ether.js库部署了我的合同。验证过程仅对于具有带参数构造函数的合同失败。

以下是使用Ether.js的合同部署脚本:

let factory = new ethers.ContractFactory(contractABI, contractBytecode, wallet);
let contract = await factory.deploy(tokenSymbol, projectName, numOfTokens);

在这里, tokenSymbol,projectName,numOfTokens 是合同构造函数的参数

sol-verifier的输入:

var data = {
                key: etherscanAPIKey,
                path : path.join(__dirname, '../../ERC20-Mintable-Contract/erc20_mintable_contract.sol'),
                contractAddress:  contractAddress,
                network  : contractConfig.PROVIDER,
                contractName: contractName,
                cvalues: [tokenSymbol, projectName, numOfTokens],
                optimizationFlag: false
};

我在验证时传递的参数与在部署智能合约时传递的参数相同。

输出:

{
    "status": false,
    "message": "Fail - Unable to verify"
}

合同供参考:

  

0xa7a3373419dc09740a6D5c7c308230aB37581984 [手动验证为   etherscan.io]   0x5Cb0832FA136486E15a2271E06f341c81f7d8602 [   使用sol-verifier进行验证]

我确信由于构造函数参数的缘故,该操作失败了,因为我尝试了一个不带参数的参数并通过了。

谢谢!

1 个答案:

答案 0 :(得分:1)

此问题已在最新版本中解决。再试一次:https://www.npmjs.com/package/sol-verifier