使用standard-input-json验证Solidity源码
使用编译工具
获取 Input-Json 的三种方法。
Storage.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;
import "@openzeppelin/contracts/access/Ownable.sol";
contract Storage is Ownable {
uint256 number;
function setNumber(uint256 num) public onlyOwner {
number = num;
}
function getNumber() public view returns (uint256) {
return number;
}
}
Storage.json
{
"language": "Solidity",
"sources": {
"contracts/Storage.sol": {
"content": "// SPDX-License-Identifier: MIT......"
},
"@openzeppelin/contracts/access/Ownable.sol": {
"content": "// SPDX-License-Identifier: MIT......"
},
"@openzeppelin/contracts/utils/Context.sol": {
"content": "// SPDX-License-Identifier: MIT......"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"metadata"
],
"": [
"ast"
]
}
}
}
}
content内容:将solidity源码转换为JSON字符串。
编译合约:
npx hardhat compile
打开artifacts\build-info路径下的json文件 input字段内容
编译合约后,打开contracts/artifacts/build-info路径下的json文件 input字段内容
remix环境下
与Storage.json配置文件相同
Storage.sol 在 Foundry项目src文件夹下。
执行forge命令:
forge verify-contract --show-standard-json-input 0x0000000000000000000000000000000000000000 src/Storage.sol:Storage
https://testnet.bscscan.com/address/0x1b3104004ebda264b88d04afb6ea66d70a2d51ac#code 1.
2.
3.
4.
喜欢就点个赞👍哦😄
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!