暗号化トークンを作成する


3週間前、私はCherry 100 100 SofWeb 3チャレンジを始めました.開発者として、私は以前にWEB 3製品とツールで働いたことがありませんでした.そして、私の暗号通貨トークンを作成するより良い仕事.
正直に、それはそれが見えるよりも簡単です!
それで、私はこの記事をまとめて暗号化の基本概念を概説することを決めました(基本的に、私が自分自身に問いかけてきた質問に答えます)、そしてEthereumにあなた自身のトークンを作成することをご案内します.

何が私のトークンを作成する前に知っている必要がありますか?

ブロックチェーンと暗号通貨
ブロックチェーンは、共有と不変の元帳です.ブロックの上で、情報は基盤となる基盤を提供するために一緒に働く複数のコンピュータの間で分配されます.
暗号通貨(crypto)は、暗号機能によって確保されるデジタル通貨です.ほとんどの暗号通貨は、ブロックチェーン技術に基づいています.それらは、ブロックチェーンの上のエントリーによって表されます.
Bitcoinは、最も人気のある暗号通貨、ブロックチェーン技術によって供給されます.基本的に、BlockChainはBitcoinを可能にし、BitCointを超えたアプリケーションの方法を持っている技術です.
Ethereum , Avalanche and Solana は、ブロックチェーン技術を使用して構築された他のプラットフォームです.異なるブロックチェーンのプラットフォームは、分散、コスト、速度、セキュリティなどのさまざまな機能を優先します.

コイン対トークン
暗号通貨は暗号コインまたは暗号トークンでありえます.つの用語はしばしば交換可能に使用されます、しかし、それらは2つの別々の用語です.
その封鎖にコインが存在する.それはそのブロックのためのお金のデジタル表現です.BTC、ETHまたはLTCは、暗号貨幣の例です、彼らはそれぞれ独自のブロックチェーンを持っています.
スマート契約を介して既存のブロックの上にトークン機能.コインとは異なり、トークンは通常、それに関連付けられているユーティリティがあります.例えば、UNISWAPはEthereumブロックチェーンの上に構築された交換プロトコルであり、そのトークンはUNIと呼ばれています.ユニホルダーは、プラットフォームの開発提案と決定に投票することができます.
簡単に言えば、コインは独自のブロックを持ち、交換の媒体として使用されますが、トークンはブロックチェーンの上に住んでいて、異なる値やユーティリティを持つことができます.

スマート契約
スマート契約は、デジタル以外の現実世界の契約のようです.
スマートコントラクトは、自己を実行するコンピュータプログラムのブロックチェーン内に格納されます.スマート契約の条件が満たされると、コードが自動的に実行されます.これは、現実の契約に必要な仲介者を削除し、ユーザーのための信頼できない環境を作成します.Trustlessは、ユーザーが基になるコードに依存できるので、ユーザーが互いに信頼する必要がないことを意味します.
いくつかのスマート契約言語Solidity , VyperとJava

エーテル
Ethereumは、スマートな契約によるオープンソース、分散化された封鎖プラットホームです.それはエーテル(eth)と呼ばれるそのネイティブの暗号通貨コインを持っています.
Sollienceは、オブジェクト指向、高レベルの言語をスマート契約を作成するために開発されます.それはEthereumのための主なプログラミング言語です.

ERC - 20
ERCは「コメントのためのEthereumリクエスト」と、20がトークン識別子です.これは、すべてのトークンに適用される一連の規則と関数を定義します.
ETC - 20はEthereumブロックチェーン上で資金を供給するトークンを作るスマート契約のための標準です.金銭的なトークンは、すべてのトークンが全く同じであることを意味します.私たちがそれぞれトークンを持っているなら、私のトークンとトークンの違いはありません.
より標準的なERCスマート契約があります.例えば、非資金トークン(NFT)を作成するための標準はERC - 721です.
🙌 我々は、暗号化トークンのための基本的な概念をカバーして、今1つを作成しよう!

暗号通貨トークンの作成方法
一緒に頑張りましょう!プロジェクトでは、我々のトークンをEthereumの上に構築します.使用するスマート契約のタイプはerc 20です.

プロジェクトツール
  • Metamask Wallet : クリプト財布.それはあなたが携帯アプリやブラウザの拡張機能として使用できるソフトウェアの財布です.
  • Alchemy : Ethereum開発プラットホーム.錬金術は製品の完全なスイートを持っています.私たちは錬金術のEthereumインフラストラクチャと対話する錬金術APIを使用します.
  • Hardhat : Ethereum開発環境それはNPMパッケージとして来て、スマート契約のために必要な基本的なセットアップを作成することができます.
  • OpenZepplin Contracts: 安全なスマート契約の実装のためのライブラリ.

  • 必要条件

    井出
    私はこのプロジェクトのVSコードを使用します.VSコードを使用したい場合は、Solility拡張モジュールを追加する必要があります.一番好きなIDEを選択してください.

    注意:Remix Ide EthereumのブラウザベースのIDEですが、セットアップを必要としないので、非常に便利です.(リミックスIDEを使用する場合は、UIからコードを直接コンパイルして配備することができます.

    メタメークセットアップ
    あなたがいないならばMetamask すでに拡張子をダウンロードしてアカウントを作成するにはセットアップウィザードに従って自分のウェブサイトに向かうことができます.
    ネットワークをRrinkebyテストネットワークに変更します.


    アルケミーセットアップ
    錬金術でサインアップするには、使用することができますmy referral link そして、プラットフォーム上で100ドルの信用を得ることができます.我々が使用するツールは無料ですが、クレジットは他のプロジェクトに便利になることができます.
    ダッシュボードをクリックして“アプリを作成”からログインしたらあなたのアプリの名前と説明を与えます.テストネットワークである“rinkeby”ネットワークを選択します.

    あなたのアプリケーションを作成し、クリックして“表示の詳細”を使用するAPIキーを取得します.

    ハードハットセットアップ
    あなたが必要node.js Hardhatを使うマシンで.PC用のバージョンをインストールします.

    トークン作成

  • プロジェクトフォルダを作成し、そのディレクトリに渡します.
    mkdir my-token
    cd my-token
    

  • プロジェクトディレクトリで実行しているHardHatプロジェクトを作成しますnpx hardhat
    $ npx hardhat
    
    ここでは端末で何が表示されます.

    「セットアップ」ウィザードで「Enter」をクリックし、デフォルトのオプションを保持できます.

  • インストールするコマンドを実行しますOpenZepplin implementation スマート契約それは、我々が拡張することができるERC - 20トークン標準を持っています.
    npm install @openzeppelin/contracts
    
  • '契約'フォルダの下に新しいソリティアファイルを作成します.これはerc - 20トークンのファイルです.

  • 以下のサンプルは、OpenZeppInから拡張されたサンプルerc - 20トークンスマート契約を見ることができます.私は、コードで何が起こっているかについて説明する若干のコメントを加えました.コピーして、独自の粘り強さファイルに貼り付けます.
     //SPDX-License-Identifier: Unlicense
     pragma solidity ^0.8.4; // tells the solidity version to the complier
    
    import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; // inherit the erc20 contract
    
     import "hardhat/console.sol"; // built in hardhat local environment 
    
     contract Eda is ERC20 {
         constructor(string memory name, string memory symbol) ERC20(name, symbol) {
             _mint(msg.sender, 100 * (10 ** 18)); // mint tokens: supply 100 tokens, 18 is the decimal 
     }
    }
    
    openzepplin erc 20契約から機能を拡張しているので、私たちは多くのことをする必要があります.私たちがしていることは基本的にトークンを作ることです.
  • 錬金術APIキーを覚えて、我々は我々の契約からRrinkebyテストネットワークに話をする必要があります.あなたのAPIキーをhardhatに加えてください.設定.JSON ( Step 7の下のコードスニペットを参照)

  • あなたのMetamask秘密鍵をhardhatに加えてください.設定.JSONアカウントの詳細をクリックすることで、これを得ることができます.トークンはこのアカウントに追加されます
    require("@nomiclabs/hardhat-waffle");
    
    module.exports = {
      solidity: '0.8.4', // make sure that the solidity compiler version is the same as in your contract
      networks: {
        rinkeby: { // defining our test network 
          url: '', //alchemy api key 
          accounts: [' '], // metamask rinkeby account private key
        },
      },
    };
    
    すべてのコーディング完了です😀 現在、我々は我々の契約をコンパイルして、配備する必要があります.

  • スマート・コントラクトnpx hardhat compile . このコマンドは、プロジェクトディレクトリに' artifact 'フォルダを作成します.これは、Sollianceコードをマシンの実行可能コードに変換します.
    npx hardhat compile
    

  • 我々のローカルマシンから我々の契約をとって、それをRrinkeby Testネットワークに置く必要があります.これは単に展開を作成するためです.「スクリプト」フォルダの下のJSファイル.下記のコンテンツをコピーしてペーストします.
    async function main() {
    
       const Token = await hre.ethers.getContractFactory("Eda"); // hre: hardhat runtime environment
       const token = await Token.deploy("Eda Token", "Eda"); // call constructor: name and symbol
       console.log("Token address:", token.address); // print the address to the console
     }
    
     main()
       .then(() => process.exit(0)) /
       .catch((error) => {
         console.error(error); // print the error if there happens to be one 
         process.exit(1);
       });
    
  • 次のコマンドを実行して、Renkeby Testネットワークにコントラクトを配備します.
  •  npx hardhat run scripts/deploy.js --network rinkeby
    
    すべてが動作している場合は、契約を展開し、契約アドレスを端末に出力します.
    契約アドレスをコピーしてくださいRinkeby Testnet Explorer あなたの契約を表示します.

    あなたのMetamaskアカウントにトークンを追加することができます.デフォルトでは、それらを見ることができません.資産の下で「輸入トークン」を選んで、契約アドレスを加えてください.一度送信すると、トークンを見ることができます.

    君に別れさせてくれEthereum Developer Resources ここでEthereumの開発を継続する大きなリソースを見つけることができます.
    あなたの時間、あなたが記事を楽しんだことを望みます.任意の“EDA”トークンをしたり、任意のフィードバックをしたい場合は、躊躇しないでください!