# NFTokenCancelOffer

[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/xrpld/app/tx/detail/NFTokenCancelOffer.cpp)

`NFTokenCancelOffer`トランザクションは、`NFTokenCreateOffer`を使用して作成した既存のトークンへのオファーをキャンセルするために使用できます。

NonFungibleTokensV1_1
##  JSONの例


```json
{
      "TransactionType": "NFTokenCancelOffer",
      "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
      "NFTokenOffers": [
      "9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D"
    ]
}
```

## アクセス権

`NFTokenOffer` オブジェクトで表される既存のオファーは、以下の方法でキャンセルすることができます。

* `NFTokenOffer`を最初に作成したアカウント
* `NFTokenOffer`の`Destination`フィールドのアカウント（存在する場合）
* `NFTokenOffer`が有効期限を指定しており、`NFTokenCancelOffer`が含まれる親レジャーのクローズ時刻が有効期限より大きい場合、任意のアカウントに設定することができます


このトランザクションは、リストアップされた`NFTokenOffer`オブジェクトがあればレジャーから削除し、それに応じて必要な準備金を調整します。`NFTokenOffer`が見つからなくてもエラーにはなりません。その場合、トランザクションは正常に完了するでしょう。

##  フィールド

[共通フィールド](/ja/docs/references/protocol/transactions/common-fields)に加えて、トランザクションは以下のフィールドを使用します。

| フィールド | JSONの型 | [内部の型](/ja/docs/references/protocol/binary-format) | 説明 |
|  --- | --- | --- | --- |
| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリは[NFTokenOffer](/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer)オブジェクトの異なる[オブジェクトID](/ja/docs/references/protocol/ledger-data/common-fields)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 |


`NFTokenOffers`フィールドのIDの1つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します（たとえば、それらのオファーはすでに削除されている可能性があります）。IDの1つが存在するオブジェクトを指していても、[NFTokenOffer](/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer)オブジェクトでない場合は、エラーでトランザクションが失敗します。

注意すべき点は、誤って`nft_offer_index`ではなく`nft_id`を指定してしまった場合、`tesSUCCESS`レスポンスを受け取る可能性があることです。適切にフォーマットされたID値が見つからない場合、システムは`NFTokenOffer`が既に削除されたと判断するからです。

IDが[NFTokenOffer](/ja/docs/references/protocol/ledger-data/ledger-entry-types/nftokenoffer)オブジェクトでないオブジェクトを指している場合、トランザクションはエラーで失敗します。

## エラーケース

すべてのトランザクションで発生する可能性のあるエラーに加えて、トランザクションでは、次の[トランザクション結果コード](/ja/docs/references/protocol/transactions/transaction-results)が発生する可能性があります。

| エラーコード | 説明 |
|  --- | --- |
| `temDISABLED` | [NonFungibleTokensV1 Amendment](/ja/resources/known-amendments#nonfungibletokensv1)は有効ではありません。 |
| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 |
| `tecNO_PERMISSION` | `NFTokenOffers`フィールドのIDのうち少なくとも1つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 |