あなた自身のトークンを作成する方法

6085 ワード

このチュートリアルでは、単純なerc 20トークンを作成する方法を学びます.

ERC 20トークンとは


ERC 20はスマート契約にあるトークン標準です.それが他の標準と異なっていることは交換可能であるということです.そして、それは1つのERC 20トークンが常に同じ種類のもう一つに等しいことを意味します.ERC 20トークンをコインではなくトークンにするものは、EDC 20トークンを制御するスマート契約が、ESUSUMと他のEVM互換のブロックであるアバランシェのようなブロックである一方で、コインには独自のバックボーンがあります.

要件


Python 3.6以降が必要です.
NPMも必要です.
Brownieという名前のPythonパッケージを使用してテストや展開のようなことを成し遂げることになりますので、PIPからインストールする必要があります.
> pip install eth-brownie
また、ブラウニーがローカルに展開/テストを行うことができるように、ガナッシュCLIも必要になります.
> npm install ganache-cli

プロジェクト設定


フォルダーを開き、その中にコマンドラインウィンドウを起動し、次のコマンドを実行します.このコマンドはブラウニープロジェクトの基本ファイルを初期化します.
> brownie init
これらのファイルが作成されたことがわかります.
├───build
│   ├───contracts
│   ├───deployments
│   └───interfaces
├───contracts
├───interfaces
├───reports
├───scripts
└───tests
我々がこのチュートリアルに集中する唯一のフォルダは、そうですcontracts and scripts . 契約フォルダは、我々のスマート契約を保持し、スクリプトフォルダーは、我々の展開スクリプトを書くものになります.

構成


このチュートリアルでは、OpenZeppelinライブラリを使用します.このライブラリは、簡単にインポートすることができますし、プロジェクトで使用するユーティリティと標準の多くを提供します.プロジェクトのOpenZeppelinを取得し、プロジェクトでさらに設定を追加するには、brownie-config.yaml 依存関係を設定するファイル.
ファイルを作成した後、これらを追加して、コンパイル時にライブラリがインストールされます.
dependencies:
  - OpenZeppelin/[email protected]

compiler:
  solc:
    remappings:
      - "@openzeppelin=OpenZeppelin/[email protected]"
dependencies セクションでは、ターゲットライブラリのGithubリポジトリを追加し、ダウンロードするバージョンを指定します.
remappings セクションでは、ライブラリのパスの再マッピングを指定します.

契約書作成


スマートコントラクトは基本的にESUTHUMブロックチェーンにあるコードで、関数を実行したり、イベントを発行したりできます.新しいファイルを作成してスマート契約コードを作成しますMyToken.sol コントラクトフォルダーで.
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {

    constructor(uint256 initialSupply) ERC20("MyToken","TKN"){
        _mint(msg.sender, initialSupply);
    }
}
このコードは何をしますか?
The pragma キーワードは、我々のコードがどのバージョンと互換性を持つかを指定できます.これは、0.8.0のバージョンと互換性があることを意味します.
インポート文ではerc 20に到達しました.OpenZeppelinライブラリからのSOLファイルは、我々は我々の契約でそれを使用することができます.
我々が我々の契約を宣言したあと、我々は加えましたis ERC20 , これは基本的にはerc 20の関数を継承する.SOL、技術的に我々のスマート契約をERC 20にします.
コンストラクタは、私たちのスマート契約を初期化することができます.追加ERC20("MyToken", "TKN") 名前とシンボルを宣言するには.The initialSupply 契約の展開者に割り当てられる金額です.

契約書の編集


契約書を書いた後、契約書を編集しなければなりません.エラーが発生した場合は、次のコマンドを実行します.
> brownie compile
エラーがない場合は、今すぐローカルガナッシュに展開する時間です!

ローカル展開


クリエイトdeploy.pyscripts フォルダ.
from brownie import MyToken, accounts
from web3 import Web3

initial_supply = 1000000

def main():
    account = accounts[0]
    my_token = MyToken.deploy(initial_supply, {'from': account})
    print(my_token.name())
ブラウニーからインポートされたアカウントはGanacheによって作成されたローカルアカウントです.これらは展開やテストなどの操作を行うことを容易にします.
ブラウニーからローカルアカウントと我々の契約mytokenを得ることによって、我々は契約を展開して、展開機能を使用することができます.{'from': account} パラメータは、アカウントによって変換される関数に与えるパラメータです.
最後に、継承を使用して印刷しますname() 関数は、我々の契約のERC 20コンストラクターに入力した名前を取得します.
コーディングを終了したら、コマンドラインウィンドウをベースディレクトリに開き、次のコマンドを入力します.
> brownie run scripts/deploy.py
これが問題なしで実行され、最後にトークン名の出力を取得する場合、それはあなたがそれを作ったことを意味!
これはチュートリアルのこの部分の終わりです.場合は、このチュートリアルでは、任意のミスを見ている場合、または任意の質問がある場合は、それについてコメントをお気軽に.あなたがより多くを成し遂げて、TestNetにあなたのトークンを配備するならば、シリーズに沿って続いてください.私はこのチュートリアルがWeb 3にあなたの出発点になることを望む!