Daily Archive2022-01-16

Cadence / Flow

NFTが得意とされるFlowブロックチェーンの記述言語、Cadence(ケーデンス)を試してみました。(音楽用語のカデンツのことですね)

https://docs.onflow.org/cadence/tutorial/01-first-steps/

CadenceにはPlaygroundが用意されており、これを使ってFlowの特徴であるアカウントごとのストレージについてチュートリアルを実行して理解を深めました。

まずは、単純な文字列を表示するだけのプログラムです。上記コントラクトをデプロイします。左に表示されているのはアカウントで、0x01からアドレスがふられています。これは0x01にプログラムとしてデプロイしたのでコントラクト名Helloがアドレスの下に表示されます。(言語はSwiftに似ている)

次にトランザクションのプログラムを記述して送信します。Transaction Signerを選んで送信しますが、ここではどのSignerを選んでもコントラクトの文字列を表示します。
次は、コントラクト(<-で表現されるものはリソースと呼ぶらしい)をストレージに保存して、他のアカウントからアクセスできないようにします。記述したら上と同様デプロイします。

保存されたリソースが実行できることを確認します。loadしたリソースは戻すか破棄する必要があるようです。次に他のアカウントからアクセスできる方法を考えます。

0x02アカウントのストレージにあるリソースをloadするのではなく、linkを取得します。ためしに0x03アカウントでトランザクションを送信しますがエラーになりまだアクセスできません。

0x02アカウントで送信するともちらん成功しました。

他のアカウントからアクセスするためには、少しトランザクションを変更したものを用意し送信してみます。今度は成功しました。

このような感じで、Playgroundではアカウントの切り替えなど直感的で、Flowのしくみを学ぶことができます。NFTが得意とされているようですので、また次の機会に試してみたいと思います。

参考動画