HiÐΞClassic

初心者による初心者のためのInternet Computerチュートリアル備忘録その13「Accept cycles from a wallet」

でりおてんちょー
3 years ago
新しいプロジェクトを作成するデフォルトのプログラムを変更するローカルネットワークを開始しますアプリケーションを登録、ビルド、およびデプロイするアプリケーションをテストするローカルネットワークを停止します


プログラミング(C#)歴半年の私でりおてんちょーが、Internet Computerチュートリアルを進めていく上で

  • 分かりづらかったところ
  • めっちゃ調べたところ

などを、備忘録としてこちらにまとめていきます。


【目次】
Internet Computerチュートリアル備忘録その1「Explore the default project」
Internet Computerチュートリアル備忘録その2「Query using an actor」
Internet Computerチュートリアル備忘録その3「Pass text arguments」
Internet Computerチュートリアル備忘録その4「Increment a natural number」
Internet Computerチュートリアル備忘録その5「Use integers in calculator functions」
Internet Computerチュートリアル備忘録その6「Import library modules」
Internet Computerチュートリアル備忘録その7「Use multiple actors」
Internet Computerチュートリアル備忘録その8「Customize the front-end」
Internet Computerチュートリアル備忘録その9「Add a stylesheet」
Internet Computerチュートリアル備忘録その10「Make inter-canister calls」
Internet Computerチュートリアル備忘録その12「Add access control with identities」
Internet Computerチュートリアル備忘録その13「Accept cycles from a wallet」
Internet Computerチュートリアルが終わったらやること1「examplesを動かして遊ぶ」


今回は、13個目のチュートリアル「Add access control with identities 」についてです。

これからInternet Computerチュートリアルを始める方に、少しでも役立てていただけると幸いです。

また、この記事ではMacでの作業となりますこと、あらかじめご了承ください。

新しいプロジェクトを作成する

1. ターミナルシェルをまだ開いていない場合は、ローカルコンピューターで開きます。
まずはターミナルを開きます。

2. 別の作業フォルダーを使用している場合は、インターネットコンピュータープロジェクトに使用しているフォルダーに移動します。
クイックスタートで「ic-projects」というフォルダを作り、私はそこにまとめるようにしたので、『cd ic-projects』で移動します。

ちなみに『pwd』コマンドで、現在の場所が確認できますよ。(pwd:print working directoryの略)

3. 『dfx new cycles_hello』のコマンドを実行して、新しいプロジェクトを作成します。
この呪文で∞マークっぽいのが表示されれば、プロジェクトの作成成功です。

4. 『cd cycles_hello』のコマンドを実行して、プロジェクトディレクトリに移動しておきます。

デフォルトのプログラムを変更する

1. 「src / cycles_hello / main.mo」ファイルをテキストエディタで開き、既存のコンテンツを削除します。
これを全部削除します。

2. 次のサンプルコードをコピーしてmain.moファイルに貼り付けます。

チュートリアルのコードをコピペします。

プログラムのいくつかの重要な要素については、チュートリアルを一読しておきましょう。

3. 変更を保存し、main.moファイルを閉じて続行します。
「command + S」で保存して終了しましょう。

ローカルネットワークを開始します

『dfx start --clean --background』のコマンドを実行して、ローカルコンピューターでインターネットコンピューターネットワークを起動しましょう。

--backgroundオプションを使うことで、ローカルコンピューターで別のターミナルシェルを開かずに済みますよ。

アプリケーションを登録、ビルド、およびデプロイする

1. 必要に応じて、プロジェクトのルートディレクトリにいることを確認してください。
「cycles_hello」にいることを確認しましょう。

2. 『dfx deploy --argument '(360000000000)'』のコマンドを実行して、アプリケーションを登録、ビルド、およびデプロイします。
360,000,000,000サイクルに設定するコマンドですが、「サイクルとはなんぞや?」という方は、チュートリアルの最後にある関連リソースを見てみてください。

アプリケーションをテストする

1. 『dfx canister call cycles_hello owner』のコマンドを実行して、プリンシパルのdefaultのユーザーIDを確認します。

このように表示されます。

2. 『dfx canister call cycles_hello wallet_balance』のコマンドを実行して、ウォレットの初期サイクルバランスを確認します。

まだ残高は0ですね。

3. 『dfx canister call rwlgt-iiaaa-aaaaa-aaaaa-cai wallet_send '(record { canister = principal "rrkah-fqaaa-aaaaa-aaaaq-cai"; amount = (256000000000:nat64); } )'』のようなコマンドを実行して、キャニスタープリンシパルを使用して、defaultのウォレットキャニスターからcycles_helloキャニスターにいくつかのサイクルを送信します。

今回はテストなのでそのままコピペで問題ないですが、本番ではdeployしたときに出力される、①と②のid部分を代入してあげることになります。

4. wallet_balance関数を呼び出して、許可された容量未満の量を指定した場合、またはdfx deployコマンドを実行したときに指定した容量を指定した場合、cycles_helloキャニスターに転送したサイクル数があることを確認します。

ちゃんと指定した分のサイクル数が転送されていますね。

5. 『dfx canister call rwlgt-iiaaa-aaaaa-aaaaa-cai wallet_balance』のようなコマンドを実行して、wallet_balance関数を呼び出し、defaultのウォレットのサイクル数を確認します。

6. 『dfx canister call cycles_hello greet '("from DFINITY")'』のようなコマンドを実行して、greet関数を呼び出します。

7. wallet_balance関数の呼び出しを再実行して、デフォルトのウォレットから差し引かれるサイクル数を確認します。
wallet_balance関数の呼び出しを再実行して、defaultのウォレットから差し引かれるサイクル数を確認します。
うーん、5回くらい試してみたのですが、チュートリアルの出力表示のように残高が減らないですね。。

これに関して何か分かる方がいらっしゃったら、教えていただけますと幸いです。mm

ローカルネットワークを停止します

テストができたら、最後にローカルネットワークを止めておきましょう。

ターミナルが現在稼働中であれば「Control-C」を押して、「%」が表示される状態にします。

最後に『dfx stop』コマンドを入力すれば、13個目のチュートリアルは終了です。お疲れ様でした。

思っていた以上に多くの反響をいただき、大変ありがたい次第です。よければHiÐΞやTwitterのフォローお願い致します!

需要がありそうであれば、他の勉強記録も備忘録として残していきますので、何かしらアクションいただけると大変励みになりますし嬉しいです!

次はこちら(↓)をどうぞ
Internet Computerチュートリアルが終わったらやること1「examplesを動かして遊ぶ」


コメント
いいね
投げ銭
最新順
人気順
でりおてんちょー
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン