スマート契約と流動性パート1


導入


本稿では、スマート契約、EVM、基本的な柔軟性について概観する.
前の記事をチェックアウト.そして、チェックアウトEthereumホワイトペーパー簡素化シリーズのための私のプロファイル.
さあ、これに入りましょう.
Sollienceは、オブジェクト指向、高レベルの言語スマート実装を実装することです.

スマート契約


  • スマート契約は、処理され、ブロックチェーンネットワーク内のすべてのコンピュータ上で複製されるコンピュータプログラムです.
  • あるコーディネータなしで自動的に一定の条件が満たされた時に取引を行うことができます.
  • etheruemブロックチェーン上のこれらのスマート契約は、solilityプログラミング言語を使用して書かれています.
  • Ethereum仮想マシン(EVM)


  • EVM(Ethereum Virtual Machine)は、Ethereumネットワークに参加しているすべての装置に存在する分散計算エンジンです.
  • スマート契約の実行と展開を実行します.
  • Ethereumは外部所有口座(EOA)と契約アカウントである2種類のアカウントを持っています.どちらもEVMによって等しく扱われます.
  • 契約アカウントはスマート契約にも、スマート財布として知られて格納されますがEOASはプライベートキーによって制御されます.
  • EVMはJavaのためのJVMと同じように、Solarisのために使用されるランタイム環境です.
  • 流動性パート1


    スマート契約の初期化

  • すべてのソリティアファイルの最初の行では、そのファイルをコンパイルするために使用するコンパイラバージョンを指定する必要があります.
  • 私たちはpragma solidity <version>
  • 次は契約の名前を指定することです.Sollienceでの契約はJavaのクラスと等価です.
  • 契約を指定する構文はcontract <name> { } .
  • pragma solidity ^0.8.10;
    
    contract Example {
        // code
    }
    

    変数とデータ型


    3種類の変数があります.以下のようになります:

  • ローカル-これらは関数の内部で宣言され、ブロックチェーンに格納されません.

  • state -これらは機能の外で宣言されますが、スマート契約の状態を維持するために契約の内部で宣言されます.これらはブロックチェーンに格納されます.

  • グローバル-これらの実行時にEVMによって注入されます.これらはタイムスタンプやハッシュなどのブロックチェーンに関する情報を提供します.
  • いくつかの基本的なデータ型は以下の通りです:

  • uint ( unsigned )、int ( signed )- 8 , 16 , 32 ,…といった複数のUintとintがあります.256ビット.

  • bool - boolean値です.

  • address - ethereumアドレスを保存する特別なデータ型.

  • string -文字や文章を格納する.

  • array -類似の他のデータ型項目のコレクションを格納します.
  • いくつかの他のデータ型も同様に次の記事で覆われている.

  • パブリックキーワードは、それらの変数または関数をコントラクトの外部からアクセスできるようにするために使用されます.

  • メモリキーワードは、コントラクトのランタイム全体ではなく、一時的に変数を利用できるようにするために使用されます.引数を渡すときに通常使われます.
  • アレイ

  • 配列は<datatype>[] <name> .

  • push関数を使用して項目を配列に追加し、pop関数を使用して配列から要素を削除します.
  • ループと制御構造

  • ループは他のプログラミング言語と同じです.一方、ループのために、しばらくしてください.
  • 、そうでなければ、制御文のために中断し続けます
  • 関数

  • 関数を書く構文は
  • function <name>(<arguments>) <view/pure> returns (<return type>) { ... }
  • ビュー関数は、契約の状態変数を変更しない関数です.表示機能は、任意のガスを必要としません.
  • 次の記事では純粋関数について議論する.
  • 上で議論される話題を使用している例契約(プログラムのコメントをチェックしてください).
    pragma solidity ^0.8.10;
    
    contract Example {
        address owner = 0x111122223333444455556666777788889999AAAABBBBCCCCDDDDEEEEFFFFCCCC; // state variable
        function sum (uint num) public view returns (uint) { // A public view function
              uint sum = 0; // local variable
              for(uint i = 0; i <= num; i++) {
                  sum = sum + i;
              }
              if(msg.sender == owner) { // msg.sender is global variable
                   return sum;
              }
              return 0;
        } // It is a view function because it is not changing the only state variable (owner).
    }
    

    結論


    それはこれです.より多くの内容に従ってください.
    あなたがコンテンツが大きいと感じるならば、共有して、共有してください.お読みありがとうございます.
    **あなたは私に従ってください**


  • Showwcase