Previous << User Signature
Next >> Day2 - 基礎編Part2
Why Flow
FLOW(または$FLOW)トークンは、Flowネットワークのネイティブ通貨です。開発者およびユーザーは、FLOWを使用してネットワーク上で取引(transact)を行うことができます。開発者は、ピアツーピア決済(他人同士の決済)、サービス料金徴収、または消費者向け特典(rewards)のために、FLOWを直接アプリに統合することができます。
ということでやっていきます、猿でも分かるP2P(ピアツーピア)決済アプリ開発 Day1!
1. VSCodeをダウンロード
以下URLからVSCodeをダウンロードします。(Macの方は赤枠の中のボタンを押してください)
https://code.visualstudio.com/download
2. VSCodeを開く
自分がプロジェクトを開始したいフォルダを新規で作成しておいてください。作成が終わったらVS Codeを開いて以下の赤枠の中のリンクをクリックして、そのフォルダを開きます。
3. VSCode Extentionを開く
フォルダを開き終わったら以下のような画面になります。左端に四角が4つ繋がったようなアイコンが見えますのでそれをクリックします。
リストとして表示される検索結果から、一番上のCadenceを選択します。画面の中央に表示されるInstallボタンをクリックします。(画面の赤丸内に表示されます。ここではインストール済みのため表示されていません)
4. Cadence言語を書く前に
ここにCadence言語でプログラミングを書いていくわけですが、その前にFlow CLIをインストールします。このCLIはブロックチェーンとやり取りする上で不可欠なコマンドを提供してくれます。
Terminal
> New Terminal
を選択してTerminalウィンドウを表示します。(画面赤枠)
以下URLを参考にして、インストールコマンドをTerminal内で実施します。
brew install flow-cli
インストールが終わったらflow version
コマンドをTerminalウィンドウ内で実施します。
flow version
Output:
Version v1.9.2以降が出力されていれば、Cadence1.0に対応したバージョンです。
(flow help
コマンドを入力すると、Flow CLIで実行可能なコマンドをリスト表示してくれます。)
5. Flowプロジェクトを初期化
Flow プロジェクトを初期化するために以下のコマンドを実行します。
flow init
以下のような出力がされますのでHelloWorldと入力します。入力が終わったらEnterを押します。
(Would you like to install any core contracts and their dependencies?:
と表示された場合は、Noを選択します。)
Terminalウィンドウに🎉 Congrats! your project was created.
と表示され、画面の左側にHelloWorldフォルダと複数のファイルが表示されます。
6. スマートコントラクトを作成する
File
> New File
を選択して、プロジェクトに新しいファイルを作成します。「HelloWorld.cdc
」と入力してファイル作成を完了します。
ファイル名の左横にアイコンが表示されます。これはVSCodeが自動で.cdc
のファイル名から判断して表示してくれています。.cdc
はCadence言語のファイル拡張子です。
7. スマートコントラクトコードを入力
以下のようにCadence言語のコードを入力します。
access(all) contract HelloWorld {
}
この2行目に以下のコードを入力します。
access(all) let greeting: String
init() {
self.greeting = "Hello, World!"
}
コードは以下のことを示しています。
- HelloWorldというスマートコントラクトを宣言します
- コントラクトの中にgreetingという変数を宣言します。変数はデータを保存することができます。
String
はテキストデータを保存することができます。 - この変数に初期値として"Hello, World!"というデータをセットしました。
8. flow.json
にコントラクトを設定する
flow.json
を開いてcontracts
の下に"HelloWorld": "./HelloWorld.cdc"
を書きます。
contracts
と同じ階層にdeployments
のブラケットを作り、その下にemulator
のブラケットを作ります。この中にアカウントを指定するのですが、accounts
を見ると、"emulator-account"
がありますので、それを使ったブラケットを作り、その中にデプロイするコントラクト名を入れます。下図:
emulator
はネットワークの一種で、コントラクトをデプロイすることができます。
9. エミュレータ起動
以下のコマンドをTerminalウィンドウに入力して実行します。
flow emulator -v
以下のようにエミュレータネットワークが起動しますので、Terminalウィンドウの右上の+を
クリックして新しいTerminalウィンドウを開きます。
新しいウィンドウで以下を実行します。
flow project deploy
エミュレータはあなたのマシンの中だけで動くネットワークですので、すぐにデプロイが完了します。
Output:
HelloWorld -> 0xf8d6e0586b0a20c7
0xf8d6e0586b0a20c7
はデプロイされたアカウントのアドレスを示しています
10. スマートコントラクトのデータを読み込む
HelloWorld.cdc
ファイルと同じ階層にread_greeting.cdc
ファイルを作成します。
以下のコードをread_greeting.cdc
ファイル内に書きます。
import "HelloWorld"
access(all) fun main(): String {
return HelloWorld.greeting
}
💡スマートコントラクトのデータを取得する関数は全てmain
関数から始まります。: String
と後ろについているのはこの関数がString
(文字列)を返すことを示しています。
以下コマンドをTerminalウィンドウで実行します。
flow scripts execute ./read_greeting.cdc
以上で、スマートコントラクトを実際にエミュレータにデプロイして、そのスマートコントラクトの変数を読み出すことができました。
Day2
以降はこのDay1
の内容を既に知っているものとして進めていきますので、Day2
以降もこのページを振り返って、エミュレータにデプロイする方法を知っている前提で進めてください。