Era コントラクトのデプロイメントは現在、コマンド ラインを介してのみ実行できますが、これは少し複雑です。

いくつかの探索の後、私は基本的に状況を理解しました。ここでは、完全な展開と検証プロセスを整理し、誰もが簡単に開始できるように、最も単純なコントラクトの展開を例として取り上げます。

ステップ:

1. 環境の準備

2. 契約コードの準備

3. 検証契約の導入

環境3点セット

3 つの要素からなる環境セットをインストールするには、Era 公式ドキュメントを参照してください。

Node、NVM、Yarn のコンピューター環境は誰にとっても複雑です。エラーが発生した場合は、自分で Google で調べるか、ChatGPT に質問してください。

https://era.zksync.io/docs/dev/building-on-zksync/hello-world.html#前提条件

初期化とSDKのインストール

引き続き公式ドキュメントを参照し、次の手順に進みます。

1. 専用フォルダーを新規作成(mk & cdコマンド)

2. 環境を初期化します (yarn init -y コマンド)

3. SDK と依存関係をインストールします (yarn add コマンド)

config 構成ファイル

現在のディレクトリにhardhat.config.tsファイルを作成します。私が使用するコードは次のとおりです(画像のALTで完全にコピーできます)。 注: zksolcパッケージをもう一度インストールする必要がある場合があります(これが方法です)。コンパイル時のエラーは解決しました) zksolc のバージョンを公式推奨バージョン 1.3.10 に変更するなど変更した場合も、一度自動的にダウンロードされます。

ここでは、外部ネットワークに正常にアクセスできるようにするためのコマンド ライン環境が必要です。たとえば、Surge の「拡張モード」をオンにします。

ミニマリストのスマートコントラクト

Q: 最も単純なスマート コントラクトはどのようなものですか?

回答: 契約名のみが含まれ、他には何も含まれない契約。たとえば、スクリーンショットの契約では契約バージョンと契約名のみが定義されていますが、これは実際には合法的なスマート コントラクトです (画像の ALT からコードをコピーできます)。

3 つのステップ:

1. 新しい契約フォルダーを作成します (mkdir 契約のデプロイ)

2. 契約ファイル(mini.sol)を編集する

3. 契約書を作成する

契約書の作成

理論的には、コンパイルは非常に簡単で、スクリーンショットを撮るのに必要なコマンドは 1 つだけです。しかし実際には、ここでエラーが報告される可能性は非常に高いです。

エラーが報告された場合は、次の 2 つの場所を確認できます。

1. コマンドライン環境が外部ネットワークにアクセスできるか(検出方法:curl http://google.com)

2. zksolc を再インストールして再試行します (https://twitter.com/gm365/status/1644303144518848512…)

すべてがうまくいけば、図に示すようにコンパイルは成功します。

デプロイ契約

コントラクトをデプロイするには 2 つの手順があります。

1.deploy/deploy.ts ファイルを作成し、変更します。

2. `yarnhardhatdeploy-zksync`コマンドでコントラクトをデプロイします

deploy.ts ファイルを変更しました。ALT からコードをコピーできます。写真の❗️印の2か所は状況に応じて修正する必要があるので注意してください。

1. コントラクトの EOA ウォレット秘密キーを展開します。

2. 前のステップで定義したコントラクト名 (ここでは WTF)。

デプロイメント コマンドを実行すると、すべてが正常に完了すると、約 10 秒後にコントラクト アドレスが表示されます。

契約のソースコードを検証する

デプロイメントが完了した後、ブロックチェーン ブラウザーでコントラクト コードを検証することで、コントラクト コードをオープンソースにすることも選択できます。

契約住所を見つけたら:

1. Zksolc バージョン: これは 1.3.5 (実際の設定に応じて選択してください)

2. Solcバージョン:0.8.17です(hardhat.config.tsファイル内の設定項目)

3. 契約名 (WTF ここにあります)

4. 契約コード(コピー&ペースト)

要約する

すべてがうまくいけば、Era チェーンでの最初のスマート コントラクトの展開が完了したことになります。

この基本的なスキルを習得すると、将来的にはより複雑な契約を展開するのが簡単になります。

最も単純なコントラクトを作成したため、このコントラクトの展開コストも非常に低くなります (ここではテストに 0.21 ドルを費やしました)。

さらに、役に立つかもしれないリソースをいくつか紹介します。

1. 公式ドキュメント: https://era.zksync.io/docs/dev/building-on-zksync/hello-world.html…

2. サードパーティのチュートリアル: https://mirror.xyz/catpad.eth/X8lq1Qci1qjyW6Fo-e64xJfY-LJZkScGD66AD4vcHmI…

3. 以前に書いた Era コントラクト展開の紹介: https://twitter.com/gm365/status/1644299731236171778…

余談

zkSync は EVM と完全な互換性はなく、コントラクトをデプロイするメカニズムが異なるため、Remix やその他の方法を使用して Web ページ上でデプロイメント コントラクトを直接操作することはできません (ThirdWeb も、現在デプロイメントを完了できませんが、ウェブサイトでは、テンプレート契約を通じて Era にデプロイできると記載されていますが、実際には不可能です。DC でのみ許可されています。)

zkSync チームが今後も契約の展開を容易にするために引き続き努力することを願っています。