mcpField
S
setup-solidity-contracts

setup-solidity-contracts

github.com/openzeppelin開発219575 回インストール2 日前に更新
リポジトリ

setup-solidity-contracts について

HardhatまたはFoundryを使うSolidityプロジェクトのセットアップスキルです。既存プロジェクトの判別、OpenZeppelinの導入、FoundryのRemappings設定に加え、アップグレード可能なコントラクトのインポート方法を扱います。

主な機能

  1. 01HardhatまたはFoundryプロジェクトの判別
  2. 02各フレームワークの初期化
  3. 03標準版・アップグレード可能版OpenZeppelinの導入
  4. 04Foundry Remappingsの設定
  5. 05プロキシ用と通常用のインポート選択

活用シーン

  1. 01新しいSolidityプロジェクトの初期化
  2. 02既存のFoundryプロジェクトへのOpenZeppelin追加
  3. 03プロキシデプロイ用の依存関係設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openzeppelin/openzeppelin-skills --skill setup-solidity-contracts

インストール後、Claude Code で/setup-solidity-contractsを入力して読み込まれたか確認します。

詳細

Solidity のセットアップ

既存のプロジェクトでは、hardhat.config.*(Hardhat)または foundry.toml(Foundry)を探してフレームワークを特定します。新しいプロジェクトでは、ユーザーに希望するフレームワークを尋ねます。

Hardhat のセットアップ

  • プロジェクトを初期化します(新しいプロジェクトを始める場合のみ)
npx hardhat init        # Hardhat v2
npx hardhat --init      # Hardhat v3
  • OpenZeppelin Contracts をインストールします。
npm install @openzeppelin/contracts
  • アップグレード可能なコントラクトを使用する場合は、アップグレード可能版もインストールします。
npm install @openzeppelin/contracts-upgradeable

Foundry のセットアップ

  • Foundry をインストールします。
curl -L https://foundry.paradigm.xyz | bash
foundryup
  • プロジェクトを初期化します(新しいプロジェクトを始める場合のみ)
forge init my-project
cd my-project
  • OpenZeppelin Contracts を追加します。
forge install OpenZeppelin/openzeppelin-contracts@v<VERSION>
  • アップグレード可能なコントラクトを使用する場合は、アップグレード可能版も追加します。
forge install OpenZeppelin/openzeppelin-contracts-upgradeable@v<VERSION>

https://github.com/OpenZeppelin/openzeppelin-contracts/releases で最新バージョンを確認してください。リリースタグを指定してください。指定しない場合、forge install はデフォルトブランチを取得するため、不安定な可能性があります。

  • remappings.txt(アップグレード可能なコントラクトを使用しない場合)
@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
  • remappings.txt(アップグレード可能なコントラクトを使用する場合)
@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/
@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/

注記 上記のリマッピングでは、@openzeppelin/contracts/(プロキシコントラクトを含む)と @openzeppelin/contracts-upgradeable/ の両方が、openzeppelin-contracts-upgradeable サブモジュールとそのサブディレクトリから提供されます。これには、同じリリースバージョン番号の openzeppelin-contracts の推移的なコピーも含まれます。この形式は、Etherscan の検証を機能させるために必要です。特に、別途インストールされた openzeppelin-contracts のコピーは一切使用されません。

インポート規約

  • 標準:@openzeppelin/contracts/token/ERC20/ERC20.sol
  • アップグレード可能版:@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol
  • アップグレード可能版は、プロキシ経由でデプロイする場合にのみ使用してください。それ以外の場合は、標準コントラクトを使用してください。

コメント