Brownie Web3 – Python を使用した Ethereum スマート コントラクトの開発

Brownie Web3 に関する基本的な知識を共有し、それを使用してブロックチェーン上にデプロイされたイーサリアム スマート コントラクトを開発する方法を拡張します。

Web3.0 スマート コントラクト開発者にとって、Brownies を使用すると、イーサリアム ブロックチェーン ネットワーク上にデプロイされたスマート コントラクトの開発、インポート、テスト、デバッグがはるかに簡単になります。さらに、イーサリアムと対話するためのトランザクション、メソッド、変数のセットアップが容易になります。

それ以来、Brownie に関する基本的な知識を確認し、Brownie を使用して Ethereum スマート コントラクトを開発し、ブロックチェーン ネットワークに展開する方法について詳しく説明します。

Brownie Web3.0 – 暗号通貨ネットワークと対話するイーサリアム スマート コントラクトを開発するための要素

Brownie、Python、Infura、OS、Ganache、MetaMask、ETH Goerli テスト ネットワーク

目次

ブラウニーとは

Brownie は、イーサリアム スマート コントラクトを開発するためのフレンドリーで使いやすいフレームワークです。機能範囲からの主な値には 3 つの側面があります。

必要なスマート コントラクトをブロックチェーン ネットワークに展開する

さまざまな種類と目的のスマート コントラクトを作成し、イーサリアムなどのブロックチェーンに展開します。また、ブロックチェーンとの対話において重要なトランザクション要素を作成して開始することができます。

スマートコントラクトと対話する

Brownie フレームワークとフォルダー パスを使用すると、スクリプトを作成したり、Brownie コンソールを使用してメイン ネットにデプロイされたスマート コントラクトと対話したりすることが容易になります。または、ローカルのブロックチェーン環境に UAT を実装することもできます。例: Ganache

開発中のスマートコントラクトをテストする

Brownie は、迅速、フレンドリー、そして使いやすいスマート コントラクト開発テスト環境と、テストを実装するための関連機能を提供します。たとえば、トランザクションが元に戻されたときに詳細情報を取得して、問題を迅速に特定することができます。

Brownie をアクティブ化して Ganache をインストールする ローカル ブロックチェーンのインストール

ステップ1: ブラウニーのインストール

MacOS環境を例に考えてみましょう。まず最初に、ターミナルに次のコード行を入力して、Brownie のビジュアル環境をインストールする必要があります。

Python3 -m pip install –user pipx

Python3 -m pipx ensure path

インストールが完了したら、競合を避けるため、またはビジュアル環境をアクティブにするために、必ずターミナルを閉じてください。

次に、次のコード行を入力して Brownie をインストールします。

Pips install eth-brownie

Mac にインストールされているかどうかを確認するには、他のパッケージ チェックと同じ checker コマンドを入力します。

ステップ 2: 最初の Brownie スクリプト フォルダーとプロジェクトを作成する

コーディング ソフトウェア (Visual Studio Code など) に新しいフォルダーを作成したとします。ここで、新しいブラウニー プロジェクトを作成してみます。開始用のコードは次のとおりです。

Brownie init

初期化と反応インストールが完了すると、デフォルトで Brownie フォルダーにフォルダーのリストが表示されます。これらは、次のような異なる機能を持つフォルダーです。

  • 建てる
  • 契約
  • インターフェース
  • レポート
  • スクリプト
  • テスト

ステップ 3: ローカル Ganache Cl をインストールする

Brownie はデフォルトで、ローカルのブロックチェーン視覚環境であるターミナルの Ganache CLI で動作します。前回の記事では、スクリプトは Web UI バージョンに直接接続しました。今回は Ganache CLI をインストールする必要があります。

  • node.js (こちらは macOS バージョン) をダウンロードし、デバイスにインストールします
  • コマンド: npm install –global yarn 。 Yarn をインストールする必要があります。これは、実際に Ganache CLI のような部分やパッケージをダウンロードできるようにするパッケージ マネージャーです。デバイスが「yarn をインストールする権限がありません」と応答する可能性がある場合は、必ずsudoを追加してください。
  • コマンド「 yarn global add ganache-cliを使用して、Ganache CLI をインストールします。デバイスが再度拒否する場合は、必ずsudoを追加してください。

最初のスマート コントラクトを作成し、Ganache CLI にデプロイする

スマートコントラクトを追加する

Brownie のコントラクト フォルダーには、 easy2digitalStore.solなどのスマート コントラクト ファイルを保存します。このフォルダーの下にファイルを追加した後、次のようにコード行を入力できます。

Brownie compile

指定した sol ファイルをコンパイルすると、コントラクト フォルダー内のビルド フォルダーに保存されたすべてのコンパイル済み情報が JSON 形式で表示されます。

ETHブロックチェーン上に導入

まず最初に、script フォルダーの下に新しい Python ファイルを作成する必要があります。

Deployment.py

スクリプトでは、ローカルのビジュアル ブロックチェーンである Ganache CLI と対話するために、ブラウニーのメソッドの 1 つであるaccounts()を使用する必要があります。以下にコードサンプルを示します。

Import brownie import accounts

def single_contract():

localGanacheAccount = accounts[0]

print(localGanacheAccount)

Def main():

single_contracct()

また、brownie run を使用して、ターミナルで Python スクリプトをアクティブにすることができます。

新しいアカウントを追加し、実際のテスト ネットワークに接続します

Ganache CLI を使用する代わりに、新しいアカウントを作成できます。コマンドとコードの両方は次のとおりです。

ターミナル内:

Brownie accounts new easy2digitalAccount-account

次に、この新しいアカウントの秘密キーを追加する必要があります。 MetaMask 秘密キーをコピーして、ここに貼り付けます。

最後になりましたが、Brownie はパスワードを使用して秘密キーを暗号化します。したがって、お好みのパスワードを入力するだけです。

今作成した新しいアカウントを検索するために、load メソッドを使用して実行しようとすると、次のような結果になります。

実際のテストネットワークに接続する

Brownie は、宣言されたネットワークのリストを提供します。確認したい場合は、ターミナルにコマンド Brownie network list を入力するだけです。

前回の記事では、イーサリアムに接続するためのサードパーティ プラットフォームとして Infura を使用しました。したがって、ここでも INFURA を使用します。

まず最初に、INFURA の HTTP プロバイダー プロトコルが必要です。 BrownieではInfuraと接続する方法を用意しています。これを.envに追加してください

WEB3_INFURA_PROJECT_ID = your infura http endpoint unique ID.

次に、Ganache CLI からアカウントを取得する代わりに、MetaMask goerli テスト ネットワークからアカウントを取得する必要があります。

MetaMask ウォレットなど、追加したい秘密キーを追加します。 MetaMask 秘密キーの前に必ず 0x を追加してください。ここで 3 つのことを行う必要があります

  • MetaMaskウォレットの秘密鍵情報を取得するget_account関数を作成します。
  • メイン ディレクトリ フォルダーにbrownie-config.yamlファイルを追加して、秘密キーと INFURA エンドポイントの一意の ID を含む .env に接続します。
  • Ganache Cl テスト スクリプトの account[0] を get_account() に置き換えます。

最後に、Python スクリプトがどの ETH テスト ネットワークを使用するかを Infura に伝える必要があります。前回の記事で goerili を使用したので、ここでもターミナルにコマンドを入力して同じものを使用します。

Brownie run scripts/deployment.py –network goerli

接続したら、ビルド フォルダーの下のデプロイメント セクションに移動すると、マップ JSON ファイルが生成されます。

スマート コントラクトのテストとデバッグ

Brownie の強力な機能の 1 つはテスト環境です。スマート コントラクトの開発者は、UAT を実装し、本番稼働前にバグを修正できます。

テストフォルダーに作成したdeployment.pyスクリプトと同様のスクリプトを作成しましょう。

まず第一に、Brownie は開発者がスマート コントラクトを Python スクリプトに直接インポートできるため、非常に便利です。

コードサンプルは次のとおりです。

From brownie import easy2idigitalContract, accounts

したがって、 deploy()メソッドでコントラクト名を直接使用して、ブロックチェーンにアカウントをデプロイできます。例えば:

Def test_deployment():

##Arrange a specific smart contract address

walletAccount = accounts[0]

##Deploy the contract to the account

Single_contract = easy2idigitalContract.deploy({“from”: walletAccount})

Starting_value = single_contract.retrieve()

次に、テストなので、取得した値が期待値と等しいかどうかを確認する必要があります。したがって、コードのサンプルは次のとおりです。

Expected == 0

Assert starting_value == expected

次に、ターミナルにコマンドを入力して、値が等しいかどうかを確認してください。結果が合格した場合は、合格したことが緑色で表示されます。

Brownie test

アドホック機能のテストと開発のための Brownie コンソール

スクリプトのテストの場合、スクリプトをテストして実行するためのシェルまたはコンソールを作成したい場合。次のようにコードを入力してみると、スクリプトを直接更新し、出力して結果をすぐに取得できます。

Brownie test –pdb

Brownie Web3.0 の完全な Python スクリプト – Brownie と Python を使用してスマート コントラクトを開発し、ETH との対話をアクティブ化します

Web3.0 チュートリアル 3 – Web3.0 の Brownie – Brownie と Python を使用して暗号通貨ネットワークと対話するイーサリアム スマート コントラクトを開発することに興味がある場合は、 「Web3.0 チュートリアル 3」というメッセージを追加してニュースレターを購読してください。 。スクリプトはすぐにあなたのメールボックスに送信されます。

Web3.0 チュートリアル 3 – Web3.0 の Brownie – Brownie と Python を使用して暗号通貨ネットワークと対話するイーサリアム スマート コントラクトを開発する を楽しんで読んでいただければ幸いです。そうであれば、以下にリストされているいずれかのことを実行してサポートしてください。常に役に立ちます。私たちのチャンネル。

  • PayPal を通じて私のチャンネルをサポートし、寄付してください ( paypal.me/Easy2digital )
  • 私のチャンネルを購読し、 Easy2Digital Youtube チャンネルの通知ベルをオンにしてください。
  • Easy2Digital Facebook ページをフォローして「いいね!」してください
  • ハッシュタグ #easy2digital を付けて記事をソーシャル ネットワークで共有してください
  • Easy2Digital の最新記事、ビデオ、割引コードを受け取るには、毎週のニュースレターに登録してください。
  • Patreon を通じて月額メンバーシップに登録すると、限定特典をお楽しみいただけます ( www.patreon.com/louisludigital )