NFTokenCreateOffer

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

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

(NonFungibleTokensV1_1 amendmentが必要です)

NFTokenCreateOffer JSONの例

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

NFTokenCreateOffer Fields

In addition to the common fields, NFTokenCreateOffer transactions use the following fields:

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

NFTokenCreateOfferフラグ

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

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

エラーケース

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

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