MOVE言語 チュートリアルStep_3 モジュールの設計
前回の記事
ではソースコードの内容を見ていきましょう!
cd <自分がmoveをクローンしたディレクトリ>/move/language/documentation/tutorial/step_3
ここのBasicCoin.moveを見ていきます!
今回は文法というより
Coinを発行する機能の関数の説明になっているかと思います!
私のわかる範囲でコメントを残しています。
module NamedAddr::BasicCoin {
// Coinの構造体
// storeはこの構造体がモジュールのグローバルストレージ内で使えることを示す
struct Coin has store {
value: u64
}
// keyはこの構造体(Balance)がグローバルストレージ操作のキーとして機能することを許可する。
struct Balance has key {
coin: Coin
}
/// このモジュールに残っている残高を表示する
/// mintやtranferの時に必ず呼び出す必要がある
public fun publish_balance(account: &signer) { .. }
/// &sinnerがトランザクションを起こしたアドレス、mint_addrにamountの数だけコインを生成する。
// acquiresのアノテーションはBalanceの構造体を必ず呼び出さないといけなくする。(イマイチピンとこないので、中身を書いたりしないとわからなそう)
public fun mint(module_owner: &signer, mint_addr: address, amount: u64) acquires Balance { .. }
/// アドレスを渡すとそのアドレスの所有している数が帰ってくる
public fun balance_of(owner: address): u64 acquires Balance { .. }
/// FromからToのアドレスへCoinを送る関数 amountはコインの数
public fun transfer(from: &signer, to: address, amount: u64) acquires Balance { .. }
}
vscode上の色がついているものも載せておきます。
acquiresの構文記事
以上になります。
次回もまたよろしくお願いします!
この記事が気に入ったらサポートをしてみませんか?