(resoulutions 처리를 위해 npm 대신 yarn 사용 필요.)
EIP-2718 에서 tx/receipt 에 type 이라는 변수가 추가되었는데, 기존 klaytn에서 type이라는 항목을 이미 지정하여 쓰고있으므로 에러 발생.
EIP-2718이 적용되기 직전 버전인 ethers 5.0.32 를 사용하여 회피한다.
- "ethers" 버전은 5.0.32 이하만 가능.
- "@ethereum-waffle/chai" 버전은 3.4.0 이하만 가능.
package.json
{
"name": "sample",
"version": "1.0.0",
"license": "MIT",
"devDependencies": {
"@nomiclabs/hardhat-ethers": "^2.0.0",
"@nomiclabs/hardhat-waffle": "^2.0.0",
"chai": "^3.4.0",
"ethereum-waffle": "^3.0.0",
"ethers": "5.0.32",
"hardhat": "^2.6.4",
"hardhat-klaytn-patch": "^0.0.2"
},
"resolutions": {
"ethers": "5.0.32",
"@ethereum-waffle/chai": "3.4.0",
}
}
"hardhat-klaytn-patch" 디펜던시 추가.
ethereum 호환성 맞추기 위한 각종 패치
- klaytn에서 지원하지 않는 web3_clientVersino patch
- ethereum에 추가된 cumulativeGasUsed 를 gasUsed 로 대체
npx hardhat
으로 프로젝트 설정 이후 생기는 hardhat.config.js 파일 상단에 require("hardhat-klaytn-patch");
추가 필요.
ex)
require("hardhat-klaytn-patch");
require("@nomiclabs/hardhat-waffle");
// This is a sample Hardhat task. To learn how to create your own go to
// https://hardhat.org/guides/create-task.html
task("accounts", "Prints the list of accounts", async (taskArgs, hre) => {
const accounts = await hre.ethers.getSigners();
for (const account of accounts) {
console.log(account.address);
}
});
//...