ERC-721の入力仕様ファイル

ブロックチェーン・アプリケーション・ビルダー初期化コマンドは、入力仕様ファイルを読み取り、チェーンコード開発プロセスを支援する複数のツールを使用してスキャフォールディング済プロジェクトを生成します。

ERC-721標準に基づく標準資産およびトークン資産を同じ仕様ファイルに定義できます。ERC-721トークン・アセット定義を含む仕様ファイルには、次の制限が適用されます。
  • 同じ仕様ファイルの複数の標準に基づいてトークン・アセットを定義することはできません。
  • 1つの仕様ファイルに複数の非固定トークン・アセットを定義することはできません。

トークン所有者は、適用できないトークン・アセットのカスタム属性値を更新できます。

仕様ファイルに標準アセットを含める方法の詳細は、「入力仕様ファイル」を参照してください。

ERC-721トークン・アセットの次のサンプル仕様ファイルは、ブロックチェーン・アプリケーション・ビルダー・パッケージで使用できます。
  • NFTArtCollectionMarketPlace with ERC-721-Typescript.yml

標準プロパティおよびセクションに加えて、非真菌トークン・アセットは、仕様ファイルのbehavioranatomyおよびmetadataセクションをサポートします。真偽のないトークン・アセットは、standardおよびsymbolプロパティもサポートしています。次の例は、ERC-721トークン・アセットの仕様ファイルの構造を示しています。

assets:
    - name: ArtCollection #Asset name
      type: token #Asset type
      symbol: ART # Token symbol
      standard: erc721+ # Token standard
      
      anatomy:
          type: nonfungible # Token type
          unit: whole #Token unit
      
      behavior:
        - indivisible
        - singleton
        - mintable:
            max_mint_quantity: 20000
        - transferable
        - burnable
        - lockable
        - roles:
            minter_role_name: minter
      
      properties: # Custom asset attributes for non-fungible tokens
          
          - name: price # Custom asset attribute to set the price of a non-fungible token in the marketplace
            type: number
          
          - name: on_sale_flag # Custom asset attribute maintains non-fungible token selling status in the marketplace
            type: boolean
      
      metadata: # Use this section to maintain the metadata on the blockchain. Only the user creating the non-fungible token can assign metadata attribute values, which cannot be updated later.
          
          - name: painting_name
            type: string
          
          - name: description
            type: string
          
          - name: image
            type: string
          
          - name: painter_name
            type: string

表7-6 ERC-721トークン仕様ファイルのパラメータの説明と例

開始時 説明
type:

assetsセクションでtype: tokenを指定する必要があります。

assets:
    - name: ArtCollection #Asset name
      type: token #Asset type
symbol: symbolプロパティは、トークン契約を識別する記号(ARTなど)を表します。通常、記号の長さは3から4文字です。
symbol: ART # Token symbol
standard: standardプロパティは、fungible以外のトークンに必須です。これは、チェーンコード生成時に従うトークン標準を表します。ブロックチェーン・アプリケーション・ビルダーでは、適用されないトークンはERC-721標準の一部のバージョンに従います。詳細は、制限を参照してください。
standard: erc721+ # Token standard
anatomy:
anatomyセクションには、非fungibleトークンの2つの必須パラメータがあります。
  • type: nonfungible

    真でないトークンは一意です。

  • unit: whole

    トークン全体を小さな小数単位に分割することはできません。

anatomy:
          type: nonfungible # Token type
          unit: whole #Token unit
behavior: この項では、トークンの機能および制限について説明します。mintabletransferablesingleton、および indivisibleの動作は、fungible以外のトークンでは必須です。
  • singleton: この必須動作では、クラス内にトークン全体を1つのみ含めることができ、分割できないように制限がサポートされます。
  • indivisible: この必須動作では、トークン全体を小数に分割できないように制限がサポートされます。
  • mintable: この必須動作では、新しいトークン・インスタンスの作成がサポートされます。オプションのmax_mint_quantityパラメータは、ミント可能なトークンの合計数を指定します。max_mint_quantityパラメータを指定しない場合、任意の数のトークンをミントできます。
  • transferable: この必須動作では、トークンの所有権の転送がサポートされます。
  • burnable: このオプション動作では、トークンの非アクティブ化または書込みがサポートされます。Burningでは、トークンは削除されませんが、使用できない永続的な状態になります。燃焼は元に戻せない。
  • lockable: この動作はオプションで、fungible以外のトークンでのみサポートされます。この動作により、トークン所有者は不確定トークンをロックできます。ロックされたトークンは、ほかのどのユーザーにも転送または書き込みできません。
  • roles: このオプション動作では、トークン動作が特定のロールを持つユーザーに制限されます。現在、minter_role_nameburner_role_nameの2つのロールを使用できます。ロールを指定しない場合、すべてのユーザーがマイナーまたはバーナとして機能できます。たとえば、バーナ・ロールが指定されていない場合、アカウント・ユーザーは暗黙的にバーナ・ロールを持ちます。バーナ・ロールが指定されている場合、トークンの設定プロセス中に、Token Adminユーザーはバーナ・ロールを他のユーザーに明示的に割り当てる必要があります。
behavior:
        - indivisible
        - singleton
        - mintable:
            max_mint_quantity: 20000
        - transferable
        - burnable
        - lockable
        - roles:
            minter_role_name: minter
metadata:

metadataプロパティはオプションであり、fungible以外のトークンでのみサポートされます。このプロパティは、ブロックチェーンに格納されているメタデータ情報(非真菌トークン)を指定します。メタデータ属性値は、トークンをミントするトークン所有者のみが割り当てることができ、トークンのミント後に更新することはできません。

この例では、nameはメタデータ属性の名前、typeは属性の値のタイプです。

metadata:
                                
                                - name: painting_name
                                type: string
                                
                                - name: description
                                type: string
                                
                                - name: image
                                type: string
                                
                                - name: painter_name
                                type: string

制限事項

ブロックチェーン・アプリケーション・ビルダーは、ERC-721標準を部分的にサポートします。現在、次のERC-721イベントおよびメソッドはサポートされていません。

イベント:
  • event Transfer
  • event Approval
  • event ApprovalForAll
メソッド:
  • approve
  • getApproved
  • setApprovalForAll
  • isApprovedForAll