안녕하세요.
제가 하고자 하는것은
컨트랙트 관련 정보(contractAddress, contractCode, compile option 등)을 입력받아서
체인상에 배포되어있는 contract와 일치하는지 etherscan의 code verify 와 같은 기능을 만들고자 합니다.
harthat 을 이용하여 하려고하는데 체인 설정에 어려움이 있어 문의 드립니다.
hardhat.config.ts 는
import "@nomiclabs/hardhat-ethers";
import "@nomicfoundation/hardhat-toolbox";
import { HardhatUserConfig } from "hardhat/config";
/** @type import('hardhat/config').HardhatUserConfig */
const config: HardhatUserConfig = {
solidity: "0.8.24",
sourcify: {
enabled: false,
},
networks: {
cypress: {
url: "https://public-node-api.klaytnapi.com/v1/cypress",
chainId: 8217,
},
},
etherscan: {},
};
export default config;
이렇게 했고,
코드매치 부분은
public async run(contractInfo: ContractInfo) {
let hre: HardhatRuntimeEnvironment = hardhat;
// 사용할 컨트랙트 정보
const contractAddress = CommonUtils.buffer2HexAddress(contractInfo.contractAddress); // 검증할 컨트랙트 주소
const constructorArgs = [
/* 생성자 인수 배열 */
]; // 생성자 인수 배열
// 컨트랙트 소스 코드 읽기
const contractSource = contractInfo.contractSource;
// 컨트랙트 검증 실행
await this.verifyContract(hre, contractAddress, contractSource, constructorArgs);
}
private async verifyContract(hre: HardhatRuntimeEnvironment, contractAddress: string, contractSourceCode: string, constructorArgs: any[]) {
// 이것은 Hardhat의 Task Context를 설정합니다.
const taskArgs = {
network: "cypress",
address: contractAddress,
constructorArguments: constructorArgs,
contract: contractSourceCode,
libraries: {},
};
// TASK_VERIFY_CONTRACT를 실행합니다.
try {
const result = await hre.run("verify:verify", taskArgs);
// 결과를 확인하고 적절한 작업을 수행합니다.
if (result) {
console.log("Verification successful!");
} else {
console.error("Verification failed.");
}
} catch (err) {
console.error("ERROR", err);
}
}
이런식으로 되어있습니다.
npx를 사용할 것이 아니라서 .env 에 HARDHAT_NETWORK=cypress
이것도 추가했고요.
그런데 verifyContract 의 try/catch 구문에서 다음과 같은 에러가 발생하더라고요.
'Trying to verify a contract in a network with chain id 8217, but the plugin doesn't recognize it as a supported chain.
You can manually add support for it by following these instructions: https://hardhat.org/verify-custom-networks
To see the list of supported networks, run this command:
npx hardhat verify --list-networks'
다음 페이지에서 다른분들이 하신 것 처럼 똑같이 한 것 같은데 어떤 부분이 문제인지 알 수 있을까요?