Hardhat
如何使用 Hardhat 重用之前部署的合約?
有一種非常方便的語法可以避免在
brownie
鏈上多次部署相同的合約,同時快速開發和迭代:MyContract.deploy() # somewhere else, sometime later: MyContract[-1] # last known address of YourContract deployed
通過這種方式,很容易檢查是否已經部署了合約的版本,如果有,您只需重新使用它而不是再次進行部署。例如,這對 Mocks 尤其有用,因為它們幾乎不會發生任何變化,而且每次執行都重新部署它們只是浪費時間(和氣體……即使在測試網上)。
Hardhat 中是否有類似的行為?或者我需要在部署合約地址時手動跟踪它們,並在以後的執行中重新實例化對象?
const contractAddress = "0x..."; // do I have to manually keep track of this address? const myContract = await ethers.getContractAt("MyContract", contractAddress);
原來答案是安全帽外掛
hardhat-deploy
,可在此處獲得。這個安全帽外掛添加了一種將合約部署到任何網路的機制,跟踪它們並複制相同的環境進行測試。