最終更新:
編集

NFTokenCreateOffer

[ソース]

トランザクションを送信するアカウントが所有するNFTokenに対する新しい 売却 オファー、または別のアカウントが所有するNFTokenに対する新しい 購入 オファーを作成します。

成功した場合、トランザクションはNFTokenOfferオブジェクトを作成します。各オファーは、オファーを提示したアカウントの所有者準備金に関連づけて1つのオブジェクトとしてカウントされます。

(NonFungibleTokensV1_1 amendmentにより追加されました)

NFTokenCreateOffer JSONの例

{
      "TransactionType": "NFTokenCreateOffer",
      "Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX",
      "NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007",
      "Amount": "1000000",
      "Flags": 1
}

NFTokenCreateOffer フィールド

共通フィールドに加えて、NFTokenCreateOfferトランザクションは以下のフィールドを使用します。

フィールドJSONの型内部の型説明
Owner文字列AccountID(省略可) 対応するNFTokenの所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、Accountフィールドとは異なるものでなければなりません(すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーである場合、このフィールドは存在してはいけません。所有者は暗黙のうちにAccountと同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。
NFTokenID文字列Hash256オファーが参照するNFTokenオブジェクトを指定します。
Amount通貨額Amount対応するNFTokenに対する売却希望額または売却提示額を表します。0を指定することは、トークンの現在の所有者が、誰でも、またはDestinationフィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。
Expiration数値UInt32(省略可) オファーが無効となる時間を指定します。値はRippleエポック以降の経過秒数です。
Destination文字列AccountID(省略可) 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。

NFTokenCreateOfferフラグ

NFTokenCreateOfferタイプのトランザクションは、以下のようにFlagsフィールドに追加の値を設定することが可能です。

フラグ名16進数値整数値説明
tfSellNFToken0x000000011有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。

エラーケース

すべてのトランザクションで発生する可能性のあるエラーに加えて、NFTokenCreateOfferトランザクションでは、次のトランザクション結果コードが発生する可能性があります。

エラーコード説明
temDISABLEDNonFungibleTokensV1 Amendmentは有効ではありません。
temBAD_AMOUNTAmountフィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるがNFTokenlsfOnlyXRPフラグが有効になっている場合などです。
temBAD_EXPIRATION指定されたExpirationは無効です(例:0)。
tecDIR_FULL送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。
tecEXPIRED指定されたExpirationの時間は既に経過しています。
tecFROZENAmountはトークンで、このオファーからトークンを受け取るトラストラインは凍結されています。これは売却者のトラストラインか、NFTokenの発行者のトラストライン(NFTokenに送金手数料がある場合)である可能性があります。
tecINSUFFICIENT_RESERVE送信者はこのオファーを提示した後、所有者準備金を満たすのに十分なXRPを持っていません。
tecNO_DSTDestinationに指定されたアカウントがレジャーに存在しません。
tecNO_ENTRYNFTokenフィールドで指定したアカウントは所有していません。
tecNO_ISSUERAmountフィールドで指定した発行者が存在しません。
tecNO_LINEAmountフィールドはトークンですが、NFTokenの発行者はそのトークンのトラストラインを持っておらず、NFTokenlsfTrustLineフラグが有効ではありません。
tecNO_PERMISSIONDestinationアカウントが着信する NFTokenOffer をブロックします。 (DisallowIncoming amendment が必要です。)
tecUNFUNDED_OFFER購入オファーの場合、送信者はAmountフィールドで指定された通貨を利用可能です。もしAmountがXRPである場合、これは準備不足によるものかもしれません。もしAmountがトークンである場合、これは凍結されている可能性があります。
tefNFTOKEN_IS_NOT_TRANSFERABLENFTokenlsfTransferableフラグが無効になっており、このトランザクションではNFTokenを発行者に転送したり発行者から転送したりすることはできません。