hardhat forking ๋ชจ๋์์ ์คํ๋ ๋ await ethers.getContract("Bar") ๊ฐ hardhat-deploy ๊ฐ --network hardhat ์ด ์ค์ ๋ก ๋ฐฐํฌ๋ฅผ ๊ณ ๋ คํ ์๋ ์์์ ์๋ฆฐ๋ค๋ฉด ๋ฉ์ง ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ์ฐธ์กฐ https://github.com/wighawag/hardhat-deploy-ethers/issues/6
0.7.0-beta.29์์ ๊ตฌํ๋จ
hardhat node --fork ... --fork-deployments <networkName>
์ฐธ์กฐ๋ฅผ ์ํด ์ฑํ ์์ ๋ณต์ฌ:
--fork-deployments ๋ก ์ ๋ฌํ๋ ๋คํธ์ํฌ์๋ง ํด๋น๋ฉ๋๊น? ์ด์์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ด ํ ๊ฒ์ ๋๋ค.
์ด ๋ฐฉ๋ฒ์ผ๋ก ํ ์คํธ๋ ๋ฉ์ธ๋ท์ ๋ถ๊ธฐ๋ ๊ณ์ฝ ์ธ์คํด์ค + hardhat ๋คํธ์ํฌ์๋ง ๋ฐฐํฌํ๋ ค๋ ๋ชจ์ ๊ณ์ฝ ์ธ์คํด์ค๋ฅผ ํผํฉํ ์ ์์ต๋๋ค.
์ฒด์ธ์์ localhost
๋ก ๋ฐฐํฌ๋ฅผ ๋ณต์ฌํ์ฌ ์๋ํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ ์ํ๋ ๊ฒฝ์ฐ ๋ฐฐํฌ๋ฅผ ๋ฌด์ํ๋๋ก ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
์ ๊ด์ฐฎ์. ๋ฐฐํฌ๋ฅผ ๋ณต์ฌํ ๋คํธ์ํฌ๋ฅผ ์ด๋ป๊ฒ ์๋๊น? forking.url
๊ตฌ๋ฌธ ๋ถ์ํฉ๋๊น?
hardhat network
์ธ๋ฉ๋ชจ๋ฆฌ ํฌํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ํ
์คํธ ์ค์ ์คํ ์ค์ธ hardhat node
์ธ์คํด์ค๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ๋ด hardhat ๋คํธ์ํฌ์์ ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ํ
์คํธ์์๋ ์๋ํฉ๋๊น?
ํ ์๋์, ์ข์ ์ง์ ์
๋๋ค. ์ด๊ฒ์ ๋
ธ๋ ์์
์ ๋ํ ๋งค๊ฐ๋ณ์์ผ ๋ฟ์
๋๋ค.
ํ
์คํธ ์์
์ ์ถ๊ฐํ ์ ์์ด์ผ ํฉ๋๋ค. ์ฌ๊ฐ์ฅ
re 1. : param์ ๋ํ ์ธ์๋ ๋ณต์ฌํ ๋คํธ์ํฌ์ ์ด๋ฆ์ ๋๋ค.
์ค์ ๋ก @gitpusha ๋ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ค์ ๋๋์ง์ ๋ํ repo ์์ ๋ฅผ ๊ฐ์ง๊ณ
ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋คํธ์ํฌ์ ์์ผ๋ฉฐ ์ฌ์ ๋ฐฐํฌ๋ ๊ณ์ฝ ์ ๋ณด๋ฅผ ๊ฐ์ง ์ ์๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
๋น์ทํ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ ์ ์์ง๋ง ๋ ์๊ฐํ ํ์๊ฐ ์์ต๋๋ค.
์ค์ ๋ก ์ธ๋ถ ๋ฐฐํฌ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ฐ์ ๊ฒ :
hardhat.config.js
module.exports = {
...
external: {
deployments: {
hardhat: ['deployments/mainnet'],
},
},
}
์ค์ ๋ก ์ธ๋ถ ๋ฐฐํฌ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๊ทธ๊ฒ์ ๋ฌ์ฝคํ ๊ฒ์ ๋๋ค.
hardhat: ['deployments/mainnet']
๋๊ตฌ๋ hardhat
์์ deployments/mainnet
์ deployments/hardhat
๋ชจ๋ ์ดํด๋ด์ผ ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๋ฐฐํฌ๊ฐ ์ฐ์ ์ ์ฉ๋ฉ๋๊น? ๋ช
์์ ์ผ๋ก ๊ตฌ์ฑํ๊ธฐ ๋๋ฌธ์ ๊ณ์ฝ ๊ฐ์ ์ค๋ณต์ด ์๋ ๊ฒฝ์ฐ deployments/mainnet
๊ฐ ์ฐ์ ์ ์ฉ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค.
๋ํ deployments/hardhat
๋๋ ํ ๋ฆฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ณ ๋ ค๋ฉ๋๊น?
๋ค์์ ๋ฆฌํฌ์งํ ๋ฆฌ ์ ์์ ๋๋ค.
ํญ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด ๊ธฐ๋ฅ์ด ์ผ๋ง๋ ์ ์ฉํ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
await hre.ethers.getContractAt(abi, address)
๋์ forkmode
์์ ํน์ ๋คํธ์ํฌ์์ ๋ฐฐํฌ๋ ์ธ์คํด์ค์ ์ก์ธ์คํฉ๋๋ค.
๊ทธ๋์ ์ ๋ง ๊ทธ๋ฅ ์์ผ๋ฉด ์ข์ต๋๋ค.
๋๋ ์์ ๊ฒ์ํ ์ ์์ ์๋ํ๊ณ ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ธ๋ถ์ ์ง์ ๋ ๋ฐฐํฌ๋ ์ฐ์ ํ์ง ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐํฌ/ํ๋ํ์์ ๊ณ์ฝ์ ์ฌ์ค์ ํ๋ ๋
ธ๋๋ก ๋ฌธ์ ๊ฐ ๋์ง ์์์ผ ํ๋ฏ๋ก ์ด๋ฏธ ๋ฐฐํฌ๋ ๊ณ์ฝ์ ๊ฐ์ ๋ก ์ฌ๋ฐฐํฌํ์ง ์๋ ํ ๋ฐฐํฌ/๋ฉ์ธ๋ท์์ ๊ฐ์ ธ์ต๋๋ค.
๋๋ ๋ฌธ์ ๋ฅผ ๋ซ์ ๊ฒ์ด์ง๋ง ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์์ ๋กญ๊ฒ ์ฌ๊ฐํ์ญ์์ค