在 MAGNE 測試網部署智慧合約
為開發者提供的指南,說明如何使用 Hardhat 或 Foundry 在 MAGNE L1 及 M Hash L2 測試網部署測試用智慧合約。
1
概覽
僅限測試網 — 本指南僅適用於測試網部署。MAGNE L1 測試網及 M Hash L2 測試網為 EVM 相容環境,供開發者進行實驗。測試網代幣不具貨幣價值。網路參數可能隨測試進展而變動。
- MAGNE L1 及 M Hash L2 為 EVM 相容網路
- 支援標準以太坊開發工具
- 可部署 Solidity 智慧合約進行測試
- 可在區塊瀏覽器上驗證合約
網路參數
MAGNE L1 測試網
| RPC URL | https://rpc.testnet.magicalhash.com |
| 鏈 ID | 20250810 |
| 代幣符號 | MHA |
| 瀏覽器 | https://explorer.testnet.magicalhash.com |
M Hash L2 測試網
| RPC URL | https://l2-rpc.testnet.magicalhash.com |
| 鏈 ID | 20250827 |
| 代幣符號 | MHA |
| 瀏覽器 | https://l2-explorer.testnet.magicalhash.com |
Hardhat 部署
1. 安裝 Hardhat
npm init -y
npm install --save-dev hardhat
npx hardhat init
2. 設定 hardhat.config.js
require("@nomicfoundation/hardhat-ethers");
module.exports = {
solidity: "0.8.20",
networks: {
'magne-l1': {
url: "https://rpc.testnet.magicalhash.com",
chainId: 20250810,
},
'magne-l2': {
url: "https://l2-rpc.testnet.magicalhash.com",
chainId: 20250827,
},
},
};
3. 建立 .env 檔案
# 請勿將此檔案提交至版本控制
TESTNET_PRIVATE_KEY=your_test_wallet_private_key
L1_RPC_URL=https://rpc.testnet.magicalhash.com
L2_RPC_URL=https://l2-rpc.testnet.magicalhash.com
安全性
請使用專用測試錢包。切勿使用持有真實資產的錢包。切勿將 .env 檔案或私鑰提交至公開儲存庫。
4. 部署合約
const hre = require("hardhat");
async function main() {
const HelloMagne = await hre.ethers.getContractFactory("HelloMagne");
const contract = await HelloMagne.deploy("Hello MAGNE!");
await contract.deployed();
console.log("Contract deployed to:", contract.address);
}
main().catch((error) => {
console.error(error);
process.exit(1);
});
執行部署:
L1_DEPLOY:
npx hardhat run scripts/deploy.js --network magne-l1
L2_DEPLOY:
npx hardhat run scripts/deploy.js --network magne-l2
Foundry 部署
1. 安裝 Foundry
curl -L https://foundry.paradigm.xyz | bash
foundryup
2. 建立專案
forge init my-magne-contract
cd my-magne-contract
3. 設定環境變數
export TESTNET_PRIVATE_KEY=your_test_wallet_private_key
export L1_RPC_URL=https://rpc.testnet.magicalhash.com
export L2_RPC_URL=https://l2-rpc.testnet.magicalhash.com
4. 建立部署腳本
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "forge-std/Script.sol";
import "../src/HelloMagne.sol";
contract DeployScript is Script {
function run() external {
vm.broadcast();
new HelloMagne("Hello MAGNE!");
}
}
5. 部署
L1_DEPLOY:
forge script script/Deploy.s.sol:DeployScript --rpc-url $L1_RPC_URL --broadcast --private-key $TESTNET_PRIVATE_KEY
L2_DEPLOY:
forge script script/Deploy.s.sol:DeployScript --rpc-url $L2_RPC_URL --broadcast --private-key $TESTNET_PRIVATE_KEY
安全性
請使用專用測試錢包。切勿在腳本或環境變數中公開私鑰。
範例合約
HelloMagne.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract HelloMagne {
string public message;
constructor(string memory initialMessage) {
message = initialMessage;
}
function setMessage(string calldata newMessage) external {
message = newMessage;
}
}
此合約僅供測試及教育用途。在正式環境使用前,請務必審查及審計任何合約。
驗證部署
- 查看瀏覽器:在區塊瀏覽器上查看您的合約地址
- 讀取合約:呼叫 view 函數以確認部署
- 寫入函數:以少量代幣測試狀態變更交易
- 儲存地址:記錄已部署的合約地址以供應用程式使用
疑難排解
RPC 逾時
請檢查您的網路連線。若 RPC 端點正在維護中,請稍後再試。您也可以嘗試另一個測試網 RPC 作為備援。
鏈 ID 不匹配
請確認您輸入的鏈 ID 正確:L1 為 20250810,L2 為 20250827。如有需要,請移除後重新新增網路。
測試網 MHA 不足
請確認您已持有測試網代幣。如需測試網代幣,請聯繫 @MagneAI。
部署交易待處理
在高流量期間,測試網交易可能需要更長時間。請在瀏覽器中查看待處理狀態。L2 通常比 L1 更快確認。
編譯器版本不符
請確認您的 Solidity 編譯器版本與合約中的 pragma 相符。請檢查 Hardhat/Foundry 輸出中的警告。
Nonce 過低
請重設錢包的 nonce,或等待待處理交易完成。部分錢包可在設定中重設 nonce。
⚠️ 安全注意事項
請使用專用測試錢包。切勿使用持有真實資產的錢包進行測試網開發。
切勿將私鑰、助記詞或 .env 檔案提交至版本控制或公開儲存庫。
測試網代幣不具貨幣價值。智慧合約範例僅供測試及教育用途。
MAGNE.AI 團隊絕不會要求您提供私鑰或助記詞。