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進数値 | 整数値 | 説明 |
---|---|---|---|
tfSellNFToken |
0x00000001 |
1 |
有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。 |
エラーケース
すべてのトランザクションで発生する可能性のあるエラーに加えて、NFTokenCreateOfferトランザクションでは、次のトランザクション結果コードが発生する可能性があります。
エラーコード | 説明 |
---|---|
temDISABLED |
NonFungibleTokensV1 Amendmentは有効ではありません。 |
temBAD_AMOUNT |
Amount フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額はトークンであるがNFToken でlsfOnlyXRP フラグが有効になっている場合などです。 |
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 の発行者はそのトークンのトラストラインを持っておらず、NFToken はlsfTrustLine フラグが有効ではありません。 |
tecNO_PERMISSION |
Destination アカウントが着信する NFTokenOffer をブロックします。 (DisallowIncoming amendment が必要です。) |
tecUNFUNDED_OFFER |
購入オファーの場合、送信者はAmount フィールドで指定された通貨を利用可能です。もしAmount がXRPである場合、これは準備不足によるものかもしれません。もしAmount がトークンである場合、これは凍結されている可能性があります。 |
tefNFTOKEN_IS_NOT_TRANSFERABLE |
NFToken はlsfTransferable フラグが無効になっており、このトランザクションではNFToken を発行者に転送したり発行者から転送したりすることはできません。 |