一 編譯
npx hardhat compile
二 測試
npx hardhat test
三部署
注意部署的時候2.0和3版本有所區別,3.0如下
# 部署到本地網絡(如已運行 npx hardhat node)
npx hardhat ignition deploy ./ignition/modules/MyModule.ts --network localhost# 部署到測試網(如 Sepolia)
npx hardhat ignition deploy ./ignition/modules/MyModule.ts --network sepolia
2.0版本
npx hardhat run scripts/deploy.js --network localhost
部署成功后會返回合約名稱和地址,
查看部署后信息
npx hardhat ignition
3.1查詢部署id,如chain-31337
npx hardhat ignition deployments
3.2查詢部署狀態
npx hardhat ignition status + 部署id
四?npx hardhat console --network localhost
npx hardhat console --network localhost
是一個用于??與本地Hardhat網絡進行交互式對話??的命令行工具,它極大地簡化了智能合約的開發和調試過程。你可以把它想象成區塊鏈版的“瀏覽器開發者工具控制臺。
啟動控制臺后,你處在一個預配置了?ethers.js
的 JavaScript 交互環境(REPL)中,可以快速查詢區塊鏈的當前狀態
const signers = await ethers.getSigners(); // 獲取所有簽名者對象
const account0 = signers[0];
console.log("第一個賬戶的地址:", account0.address);
const balanceWei = await ethers.provider.getBalance(signers[0].address);
console.log("賬戶余額 (Ether):", ethers.formatEther(balanceWei)); // 格式化為ETH單位
與已部署的合約交互??:這是控制臺最核心的功能,讓你可以動態地調用合約函數,無需編寫額外的腳本
// 附著到已部署的合約
const MyContract = await ethers.getContractFactory("YourContractName");
const contract = await MyContract.attach("YOUR_DEPLOYED_CONTRACT_ADDRESS");// 調用只讀函數
const data = await contract.getSomeData();
console.log("Data:", data.toString());// 調用寫入函數
const tx = await contract.setSomeData(123);
await tx.wait();
console.log("Transaction confirmed!");
npx hardhat console
的核心價值在于它??極大地提升了開發效率和調試體驗??:
- ?
??快速驗證??:無需為了一次簡單的函數調用或狀態查詢而編寫和運行完整的腳本。
- ?
??即時反饋??:提供了一個“所見即所得”的游樂場,讓你可以立即看到操作的結果。
- ?
??交互式調試??:在開發過程中,可以隨時測試和調整參數,快速定位問題。
?? 注意事項
- ?
??確保網絡配置正確??:
--network localhost
表示連接到你本地運行的 Hardhat 節點(通常在?http://127.0.0.1:8545
)。確保你已運行?npx hardhat node