Lottery Dapp開発の第一歩を学ぶ

5285 ワード

https://www.youtube.com/playlist?list=PLlYCl1UOH8dheHS4vHOpPoHwq4Qi0R7WM
これは上の動画をもとに作成されたものです.

1.開発環境の構築

$ npx truffle initこの操作を実行すると、3つのフォルダとtruffle-configがあります.jsを生成します.


1-1.Truffleプロジェクト設定


Soledity自体は蘭貴紙、jsを使用しており、外部で使用されているテストを使用しています.
-契約書に「Lottery.solファイルを作成して書き込みます.
pragma solidity >=0.4.21 < 0.6.0;


contract Lottery{

}
しかし、これとは異なり、npx truffle create contract lotteryでもよい.

これにより、上記の内容が埋め込まれたsolidityファイルが生成されます.npx truffle compileこれでbuildフォルダがあります.

次に、デプロイする前にtruffle-config.jsを変更します.

私はカナ修に7545ポートを修正しました.

また、会社が使用しているバージョンは0.6.0なので修正しました.$ npx truffle migrate
再配置が必要な場合$ npx truffle migrate --resetを作ればいいです.では1日から始めましょうリセットしないと、移行したファイルには触れないからです.
契約の移転.solはバージョン管理の役割を果たした.

ここでsetCompletedの要素には、最終的に完了した番号が格納されます.

Migrationsファイルの前の数値とマッピングと見なすことができます.

1-2.Truffleを使用したインテリジェントな見積りインタラクション

  • contracts> Lottery.sol
  • pragma solidity ^0.6.0;
    
    contract Lottery {
    
      address public owner;
    
      constructor() public {
        owner = msg.sender;
      }
    
      function getSomeValue() public pure returns (uint value){
        return 5;
      }
    }
    
    address public owner; ownerを公衆にすると、getterが自動的に作成されます.constructorは、配備時に最初に実行される関数です.
    関数に他の関数が使用されていない場合はpureを使用します.

    Web 3デフォルトで提供される関数

    ethの関数



    truffleは、自分が所有しているアドレスの最初のアドレスを使用して移行します.
    -test > lottery.test.js
    const Lottery = artifacts.require("Lottery");
    
    contract('Lottery',function ([deployer,user1,user2]){
        let lottery;
        beforeEach(async()=>{
            console.log('Before each');
            lottery = await Lottery.new();//배포해 줄 수 있다. 
        })
        it ('Basic test',async()=>{
            console.log('Basic test');
            let owner = await lottery.owner();
            let value = await lottery.getSomeValue();
            console.log(`owner ${owner}`);
            console.log(`value ${value}`);
            assert.equal(value,5);
        })
    })
    $ npx truffle test test/lottery.test.js
    ownerのアドレスはganache-cliの最初のアドレスと同じであることがわかります.

    deployスクリプトは実際にはテストに使用されません.testコードで使用するには、ファイルから配布し、lottery = await Lottery.new();のように配布して使用することが望ましい.連絡できますが、そうしないほうがいいです.