// 開発者

Bitroot にスマートコントラクトをデプロイする: Hardhat、Foundry、Remix

Bitroot は EVM 互換なので、イーサリアム向けにすでにお使いのツールを、アダプター層なしでそのままデプロイに使えます。変更するのはネットワーク設定だけです。本ページでは、Hardhat、Foundry、Remix の手順を説明します。

1. 始める前に

2. Hardhat

hardhat.config.js:

module.exports = {
  solidity: "0.8.24",
  networks: {
    bitrootTestnet: {
      url: process.env.BITROOT_RPC_URL, // current RPC URL from BRTSCAN
      chainId: Number(process.env.BITROOT_CHAIN_ID), // current Chain ID from BRTSCAN
      accounts: [process.env.DEPLOYER_PRIVATE_KEY],
    },
  },
};

通常のスクリプトでデプロイします。

npx hardhat run scripts/deploy.js --network bitrootTestnet

3. Foundry

foundry.toml:

[rpc_endpoints]
bitroot_testnet = "${BITROOT_RPC_URL}"

デプロイは、他の EVM チェーンで使うのとまったく同じコマンドです。

forge create src/MyContract.sol:MyContract \
  --rpc-url $BITROOT_RPC_URL \
  --private-key $DEPLOYER_PRIVATE_KEY

4. Remix

"Deploy & Run Transactions"パネルで"Injected Provider - MetaMask"を選択します。MetaMask が Bitroot に接続されていれば、コンパイル、デプロイ、コントラクト呼び出しはイーサリアムに対する場合とまったく同じように動作します。

5. デプロイの検証

BRTSCAN(https://devnet.bitroot.co/overview)でコントラクトアドレスを開き、そこに表示される手順に従ってソースコードを検証してください。これにより、他のユーザーがコードを読み、エクスプローラーから読み取り専用メソッドを呼び出せるようになります。

6. 確認しておきたい落とし穴

  • 誤ったチェーン。 ネットワークガイドに示すとおり、実行時に Chain ID を比較してください。設定ファイルのタイプミスによって、デプロイ先が別のネットワークになることを防げます。
  • プリコンパイルに関する前提。 標準的な Solidity コントラクトは、変更なしでコンパイルおよびデプロイできます。イーサリアム固有のプリコンパイルアドレスに依存するコントラクトは、確認が必要です。
  • バッチ処理でのガスリミット。 本番実行の前に、バッチ処理のガスを見積もってください。トランザクションごとのガスリミットが低すぎると、一部だけが失敗する原因になります。
  • 鍵。 テストネットでのデバッグであれば、平文の .env でも問題ありません。本番デプロイでは、ハードウェアウォレットまたは MPC ベースのカストディを使用してください。

7. 次のステップ

  • コントラクトから AI モデルを呼び出す: 開発者ガイドの AI ネイティブ EVM のセクションを参照してください。
  • 並列実行があなたのトランザクションをどのように扱うかを理解する: 並列実行のアプローチ。