0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

How to develop a blockchain game. Day1 基礎編Part1

Last updated at Posted at 2024-12-29

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

スクリーンショット 2024-12-29 9.59.39.png

2. VSCodeを開く

自分がプロジェクトを開始したいフォルダを新規で作成しておいてください。作成が終わったらVS Codeを開いて以下の赤枠の中のリンクをクリックして、そのフォルダを開きます。
スクリーンショット 2024-12-29 10.01.32.png

3. VSCode Extentionを開く

フォルダを開き終わったら以下のような画面になります。左端に四角が4つ繋がったようなアイコンが見えますのでそれをクリックします。
スクリーンショット 2024-12-29 10.05.06.png

Search枠にCadenceと入力します。
スクリーンショット 2024-12-29 10.06.57.png

リストとして表示される検索結果から、一番上のCadenceを選択します。画面の中央に表示されるInstallボタンをクリックします。(画面の赤丸内に表示されます。ここではインストール済みのため表示されていません)

4. Cadence言語を書く前に

ここにCadence言語でプログラミングを書いていくわけですが、その前にFlow CLIをインストールします。このCLIはブロックチェーンとやり取りする上で不可欠なコマンドを提供してくれます。

Terminal > New Terminalを選択してTerminalウィンドウを表示します。(画面赤枠)
スクリーンショット 2024-12-29 10.36.55.png

以下URLを参考にして、インストールコマンドをTerminal内で実施します。

Macの場合
brew install flow-cli

インストールが終わったらflow versionコマンドをTerminalウィンドウ内で実施します。

flow version

Output:
スクリーンショット 2024-12-29 10.23.31.png
Version v1.9.2以降が出力されていれば、Cadence1.0に対応したバージョンです。

(flow help コマンドを入力すると、Flow CLIで実行可能なコマンドをリスト表示してくれます。)

5. Flowプロジェクトを初期化

Flow プロジェクトを初期化するために以下のコマンドを実行します。

flow init

以下のような出力がされますのでHelloWorldと入力します。入力が終わったらEnterを押します。
スクリーンショット 2024-12-29 10.38.32.png

(Would you like to install any core contracts and their dependencies?:
と表示された場合は、Noを選択します。
)

スクリーンショット 2024-12-29 10.41.40.png

Terminalウィンドウに🎉 Congrats! your project was created.と表示され、画面の左側にHelloWorldフォルダと複数のファイルが表示されます。

6. スマートコントラクトを作成する

File > New Fileを選択して、プロジェクトに新しいファイルを作成します。「HelloWorld.cdc」と入力してファイル作成を完了します。

スクリーンショット 2024-12-29 10.46.53.png

ファイル名の左横にアイコンが表示されます。これはVSCodeが自動で.cdcのファイル名から判断して表示してくれています。.cdcはCadence言語のファイル拡張子です。

7. スマートコントラクトコードを入力

以下のようにCadence言語のコードを入力します。

access(all) contract HelloWorld {
  
}

この2行目に以下のコードを入力します。

  access(all) let greeting: String

  init() {
    self.greeting = "Hello, World!"
  }

コードは以下のことを示しています。

  1. HelloWorldというスマートコントラクトを宣言します
  2. コントラクトの中にgreetingという変数を宣言します。変数はデータを保存することができます。Stringはテキストデータを保存することができます。
  3. この変数に初期値として"Hello, World!"というデータをセットしました。

スクリーンショット 2024-12-29 12.06.59.png

8. flow.jsonにコントラクトを設定する

flow.jsonを開いてcontractsの下に"HelloWorld": "./HelloWorld.cdc"を書きます。
スクリーンショット 2024-12-29 11.26.12.png

contractsと同じ階層にdeploymentsのブラケットを作り、その下にemulatorのブラケットを作ります。この中にアカウントを指定するのですが、accountsを見ると、"emulator-account"がありますので、それを使ったブラケットを作り、その中にデプロイするコントラクト名を入れます。下図:

スクリーンショット 2024-12-29 12.16.09.png

emulatorはネットワークの一種で、コントラクトをデプロイすることができます。

9. エミュレータ起動

以下のコマンドをTerminalウィンドウに入力して実行します。

flow emulator -v

以下のようにエミュレータネットワークが起動しますので、Terminalウィンドウの右上の+をクリックして新しいTerminalウィンドウを開きます。
スクリーンショット 2024-12-29 11.38.41.png

新しいウィンドウで以下を実行します。

flow project deploy

エミュレータはあなたのマシンの中だけで動くネットワークですので、すぐにデプロイが完了します。
スクリーンショット 2024-12-29 11.41.24.png

Output:

HelloWorld -> 0xf8d6e0586b0a20c7 

0xf8d6e0586b0a20c7はデプロイされたアカウントのアドレスを示しています

10. スマートコントラクトのデータを読み込む

HelloWorld.cdcファイルと同じ階層にread_greeting.cdcファイルを作成します。
スクリーンショット 2024-12-29 11.45.21.png

以下のコードをread_greeting.cdcファイル内に書きます。

import "HelloWorld"

access(all) fun main(): String {
  return HelloWorld.greeting
}

💡スマートコントラクトのデータを取得する関数は全てmain関数から始まります。: Stringと後ろについているのはこの関数がString(文字列)を返すことを示しています。

以下コマンドをTerminalウィンドウで実行します。

flow scripts execute ./read_greeting.cdc

Output:
スクリーンショット 2024-12-29 11.54.53.png

以上で、スマートコントラクトを実際にエミュレータにデプロイして、そのスマートコントラクトの変数を読み出すことができました。

Day2以降はこのDay1の内容を既に知っているものとして進めていきますので、Day2以降もこのページを振り返って、エミュレータにデプロイする方法を知っている前提で進めてください。


Previous << User Signature

Flow BlockchainのCadence version1.0ドキュメント

Next >> Day2 - 基礎編Part2

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?