Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

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?

Non-Fungible Token

Last updated at Posted at 2024-12-22

Previous << Epoch Contracts
Next >> NFT Metadata

NonFungibleTokenコントラクトインターフェースは、Non Fungible Token Standardを実装しています。すべてのNFTコントラクトは、このスタンダードをインポートして実装することが推奨されています。

Source: NonFungibleToken.cdc

Network Contract Address
Emulator 0xf8d6e0586b0a20c7
Cadence Testing Framework 0x0000000000000001
Testnet 0x631e88ae7f1d7c20
Mainnet 0x1d7e57aa55817448

Transactions

全てのNonFungibleTokenプロジェクトは、flow-nft レポジトリ内の汎用(generic)トークン トランザクション/スクリプトを使用することが推奨されています。これらは、non-fungible tokenスタンダードを適切に実装したトークンであれば、違うネットワーク上であっても、コードのインポートアドレス以外一切変更しなくても、どのようなトークンにも使用できます。

Events

すべてのコントラクトから発行されるイベントは、標準的なフォーマットに従います。

A.{contract address}.{contract name}.{event name}

フォーマットの構成要素は以下の通りです。

  • contract address - スマートコントラクトがデプロイされたアカウントのアドレス
  • contract name - ソースコード内のスマートコントラクトの名称
  • event name - ソースコードで宣言されたイベントの名称

NonFungibleToken Events

Non-Fungible Token標準を実装するコントラクトは、トークンの預け入れやトークンの引き出しなど、関連するアクションが発生するたびに発行される標準的なイベントにアクセスできます。

つまり、プロジェクトが独自のカスタムイベントを実装する必要は、標準的なイベントがプロジェクトの要件を満たさない場合を除き、ないということです。

NonFungibleTokenのイベントは、次の形式をとります。

A.{contract address}.NonFungibleToken.Deposited
A.{contract address}.NonFungibleToken.Withdrawn

contract addressがネットワーク上でクエリーされているNonFungibleTokenのアドレスです。各ネットワーク上のアドレスは上部に示されています。

NonFungibleToken.Deposited

access(all) event Deposited (
    type: String,
    id: UInt64,
    uuid: UInt64,
    to: Address?,
    collectionUUID: UInt64
)

NonFungibleToken.Collectionを実装するリソース型でdeposit()が呼び出されるたびに、NonFungibleToken.Depositedイベントが以下の引数と一緒に発行されます。

  • type: String: 預け入れられたトークンの型のID。
    • 例:A.4445e7ad11568276.TopShot.NFT
  • id: UInt64: 預け入れられたトークンのID。 注:これはUUIDである場合も、そうでない場合もあります。
    • 例:173838
  • uuid: UInt64: 預け入れられたトークンのUUID。
    • 例:177021372071991
  • to: Address?: トークンを受け取ったコレクションを所有するアカウントのアドレス。コレクションがアカウントに保存されていない場合、tonilになります。
    • 例:0x4445e7ad11568276
  • collectionUUID: UInt64:トークンを受け取ったコレクションのUUID。
    • 例:177021372071991

NonFungibleToken.Withdrawn

access(all) event Withdrawn (
    type: String,
    id: UInt64,
    uuid: UInt64,
    from: Address?,
    providerUUID: UInt64
)

NonFungibleToken.Collectionを実装するリソース型でwithdraw()が呼び出されると、NonFungibleToken.Withdrawnイベントが以下の引数と一緒に発行されます。

  • type: String: 引き出されるトークンの型のID。
    • 例:A.4445e7ad11568276.TopShot.NFT
  • id: UInt64: 預け入れられたトークンのID。 注:これはUUIDである場合も、そうでない場合もあります。
    • 例:173838
  • uuid: UInt64: 預け入れられたトークンのUUID。
    • 例:177021372071991
  • from: Address?: トークンが引き出されたコレクションを所有するアカウントのアドレス。コレクションがアカウントに保存されていない場合、tonilになります。
    • 例:0x4445e7ad11568276
  • providerUUID: UInt64:トークンを引き出されたコレクションのUUID。
    • 例:177021372071991

NonFungibleToken.Updated

access(all) event Updated(
    type: String,
    id: UInt64,
    uuid: UInt64,
    owner: Address?
)

いかなる理由でも非代替性トークンが更新されるたびに、プロジェクトはNonFungibleToken.emitNFTUpdated() 関数を呼び出してこのイベントを発行すべきです。これにより、イベントリスナーは、データベースに保存されているNFTに関する情報を更新するために、NFTに対してquery処理を行うべきであることが示されます。

  • type: String: 更新されたトークンの型のID。
    • 例:A.4445e7ad11568276.FlowToken.Vault
  • id: UInt64: 更新されたトークンのID。 注:これはUUIDである場合も、そうでない場合もあります。
    • 例:173838
  • uuid: UInt64: 更新されたトークンのUUID。
    • 例:177021372071991
  • owner: Address?: トークンを所有するコレクションを所有するアカウントのアドレス。コレクションがアカウントに保存されていない場合、tonilになります。
    • 例:0x4445e7ad11568276

Last updated on Dec 11, 2024 by Chase Fleming

翻訳元


Previous << Epoch Contracts

Flow blockchain / Cadence version1.0ドキュメント (Non-Fungible Token)

Next >> NFT Metadata

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?