演習 - To Do リストを作成し、開発にデプロイする

完了

この演習では、タスク マネージャーを開発します。 それを使用して、Ropsten テスト ネットワークに接続し、デプロイします。

この演習の最初の部分では、プロジェクトの作成、スマート コントラクトの追加、開発ネットワークへのデプロイを重点的に取り上げます。

このチュートリアルでは、次のものを使用します。

  • プロジェクトを作成するための Visual Studio Code。
  • コンパイルしてデプロイするための Truffle
  • ブロックチェーン開発サーバーとしての Ganache CLI

新しい Truffle プロジェクトの作成

  1. ターミナルまたはコマンド プロンプト ウィンドウで、「mkdir todolist」と入力して、todolist という名前の新しいディレクトリを作成します。

  2. cd todolist」と入力して、新しく作成したディレクトリに移動します。

  3. truffle init」と入力して、ディレクトリを Truffle プロジェクトとして初期化します。

  4. Visual Studio Code で、todolist を開きます。

  5. Visual Studio Code で、contracts ディレクトリ内にファイルを作成します。 それに TodoList.sol という名前を付けます。 新しいファイルに、次のコードを貼り付けます。

    // SPDX-License-Identifier: MIT
    pragma solidity >=0.4.22 <0.8.0;
    
    contract TodoList {
     uint public taskCount = 0;
    
     struct Task {
       uint id;
       string taskname;
       bool status;
     }
    
     mapping(uint => Task) public tasks;
    
     event TaskCreated(
       uint id,
       string taskname,
       bool status
     );
    
     event TaskStatus(
       uint id,
       bool status
     );
    
     constructor() public {
       createTask("Todo List Tutorial");
     }
    
     function createTask(string memory _taskname) public {
       taskCount ++;
       tasks[taskCount] = Task(taskCount, _taskname, false);
       emit TaskCreated(taskCount, _taskname, false);
     }
    
     function toggleStatus(uint _id) public {
       Task memory _task = tasks[_id];
       _task.status = !_task.status;
       tasks[_id] = _task;
       emit TaskStatus(_id, _task.status);
     }
    
    }
    

開発に移行してデプロイする

  1. migrations/ フォルダー内に、TodoList.sol の移行を作成します。 まず、2_deploy_contracts.js という名前の新しいファイルを作成します。 そのファイルに、TodoList スマート コントラクトをデプロイするための次のコードを貼り付けます。

     var TodoList = artifacts.require("./TodoList.sol");
    
     module.exports = function(deployer) {
      deployer.deploy(TodoList);
     };
    
  2. メイン プロジェクト ディレクトリで、./truffle-config.js を開きます。 コメントを解除したコードを localhost ポート 8545 の開発ネットワークにデプロイします。 コードは次のようになります。

     networks: {
       development: {
         host: "127.0.0.1",
         port: 8545,
         network_id: "*" // Match any network id
       }
     },
    
  3. Visual Studio Code でターミナル ウィンドウを開きます。 「ganache-cli」と入力し、Ganache CLI を使用して、開発ブロックチェーンを起動します。

  4. Visual Studio Code で、ターミナル ウィンドウを開き、TodoList コントラクトをコンパイルして、開発ネットワークに移行します。 次のコマンドを実行します。

    • truffle compile
    • truffle migrate --reset

これらのステップにより、スマート コントラクトが開発ネットワークにデプロイされます。 ここで、Truffle コンソールを使用して、スマート コントラクトを確認し変更します。 タスク リストを初期化したときに単一のタスクが作成されたことがわかります。

Truffle コンソールで、引き続きコントラクトとやり取りすることができます。 たとえば、タスクを作成し設定したり、その状態を変更したりすることができます。