Thay vì nhập các lệnh kiểu như forge script NameOfScript --rpc-url xyz --private-key 0xPrivateKey ... nhiều lần thì ta nên viết Makefile để tạo các alias cho việc chạy lệnh.
Trước tiên, ta sẽ include file .env vào Makefile:
-include .envSau đó, viết alias để build:
build:; forge buildKý tự :; là để chỉ định rằng câu lệnh cần chạy sẽ nằm cùng dòng.
Chạy alias bằng lệnh make build.
Viết nhiều dòng:
build:
forge buildAlias để deploy contract lên Sepolia:
deploy-sepolia:
forge script script/DeployFundMe.s.sol:DeployFundMe --rpc-url $(SEPOLIA_RPC_URL) --private-key $(SEPOLIA_PRIVATE_KEY) --broadcast --verify --etherscan-api-key $(ETHERSCAN_API_KEY) -vvvvSử dụng -vvvv sẽ cho ta trace như sau:
Traces:
[1809650] DeployFundMe::run()
├─ [872943] → new HelperConfig@0xC7f2Cf4845C6db0e1a1e91ED41Bcd0FcC1b0E141
│ └─ ← [Return] 4136 bytes of code
├─ [565] HelperConfig::activeNetworkConfig() [staticcall]
│ └─ ← [Return] 0x694AA1769357215DE4FAC081bf1f309aDC325306
├─ [0] VM::startBroadcast()
│ └─ ← [Return]
├─ [864669] → new FundMe@0x4dc55230E160c6b4B93940CaD9C9044fAE748326
│ └─ ← [Return] 4206 bytes of code
├─ [0] VM::stopBroadcast()
│ └─ ← [Return]Seealso
Một số command từ Makefile trên:
make anvilmake deploy ARGS="--network sepolia"make install