Reputation: 11
I'm having an issue verifying contracts using Etherscan API when I use a different evm version from the standard compiler version.
In details I'm compiling using v0.8.21 and targeting to paris (for L2).
Once I submit verification via API like this:
curl --location 'https://api.etherscan.io/api' \
--form 'apikey="<MY-API-KEY>"' \
--form 'module="contract"' \
--form 'action="verifysourcecode"' \
--form 'contractaddress="<MY-CONTRACT ADDRESS>"' \
--form 'sourceCode="// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of '\''number'\''
*/
function retrieve() public view returns (uint256){
return number;
}
}"' \
--form 'contractname="Storage"' \
--form 'compilerversion="v0.8.21+commit.d9974bed"' \
--form 'optimizationUsed="1"' \
--form 'runs="200"' \
--form 'constructorArguements=""' \
--form 'evmversion="paris"' \
--form 'licenseType="3"'
I receive the following error:
Fail - Unable to verify. Compiled contract deployment bytecode does NOT match the transaction deployment bytecode.
It also fails if I try from the API demo here https://etherscan.io/sourcecode-demo.html
But if I manually verify from contract page itself on etherscan website, it works.
I think it is not reading `evmversion` parameter right via API.
Have you had any similar issue?
Upvotes: 0
Views: 583
Reputation: 11
It was an issue on etherscan, bscscan, polygonscan and it has been addressed. It is now working.
Check that comment from etherscan team https://twitter.com/vittominacori/status/1712755736848052609
Upvotes: 0
Reputation: 1
--form 'compilerversion="<YOUR-COMPILER-VERSION>"'
Here if you specify a different version than the one used to compile it will give you this error.
I compiled with the version v0.8.18+commit.87f61d96
and specified the version in the flag and it works.
--form 'compilerversion="v0.8.18+commit.87f61d96"'
Of course you have to use this link for goerli: https://goerli.etherscan.io/sourcecode-demo.html
Upvotes: 0