(日本語訳) Chain Castle – Lesson 1 Chapter 2

Libra
Libra Move言語
スポンサーリンク

Chapter 2 スマートコントラクトとモジュール

スマートコントラクトはブロックチェーン上で動作するプログラムです。私たちは「送金」や「お買い物」といった一連の操作をブロックチェーン上で行うためにコントラクトを使います。

Moveのコントラクトのコードは、次の二つのパートに分けられます。

  • 「modules:」で始まるモジュールセクション
  • 「script:」で始まるmain()

このチャプタではモジュール部について説明し、次のチャプタでスクリプト部について説明します。

モジュール

モジュール部はコントラクトに必要なモジュール群を含んでいます。モジュールはMoveコントラクトの基本パッケージ単位です。そして、全てのLibraに配置されたモジュールはグローバルです。

モジュール内では、後のチャプタで説明するStructure(構造体)、Resource(リソース)、Procedure(プロシージャ)を定義できます。

モジュールはEthereumにおけるスマートコントラクトや、あるいはJavaにおけるクラスにも似ています。モジュールは、モジュール内の情報にアクセスするインターフェースを使う特定の関数を持つコードブロックと見なせます。

例えば、Libraコインを定義し、コインの転送やチャージを処理するLibraCoinモジュールはLibraによって公式にリリースされています。開発者がモジュールを紹介した後は、インターフェースを関連機能の実装に使うことができます。

モジュールの作りかた

module_name { }の形式でモジュールを作れます。

モジュールのインポートの仕方

javaにおけるpackage name + class nameの様に、Moveはaddress + module nameをモジュールをインポートするのに使います。例えば次の様に。

import 0x0.LibraCoin

ここでLibraCoinはモジュール名で、0x0がモジュールを公開したアカウントのアドレスです。各ユーザは自分のモジュールをブロックチェーンに公開するか、ほかの人がこの様に公開したモジュールをインポートすることができます。リブラによって公開されたモジュールのアドレスは全て0x0です。

同一のファイルからそこにあるモジュールをインポートする時にはimport Transaction.module nameを利用できます。次の様にです。

import Transaction.LibraCoin

実習

城を作るにあたって、段階的に一連の築のクリエイト機能を実装するBuildCastleモジュールを作るところからスタートしましょう。

  1. 中身が空っぽのBuildCastleモジュールを作ってください。
Move Castle
タイトルとURLをコピーしました