最終更新:
編集

Offer

[ソース]

台帳のOfferエントリは、XRP Ledgerの分散型取引所で通貨を交換するオファーを表しています。(金融ではより伝統的に オーダー として知られています)。OfferCreateトランザクションは台帳にある他のOfferを全額約定できない場合、台帳にOfferエントリを作成します。

オファーがネットワーク上の他の活動によって資金不足になることはありますが、元帳には残ります。トランザクションを処理する際、ネットワークはトランザクションが見つけた資金不足のオファーを自動的に削除します。( トランザクションのみ が台帳の状態を変更できるため、削除が行われないと資金不足のオファーが残ってしまいます。)

OfferのJSONの例

{
  "Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt",
  "BookDirectory": "ACC27DE91DBA86FC509069EAF4BC511D73128B780F2E54BF5E07A369E2446000",
  "BookNode": "0000000000000000",
  "Flags": 131072,
  "LedgerEntryType": "Offer",
  "OwnerNode": "0000000000000000",
  "PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF",
  "PreviousTxnLgrSeq": 14524914,
  "Sequence": 866,
  "TakerGets": {
    "currency": "XAG",
    "issuer": "r9Dr5xwkeLegBeXq6ujinjSBLQzQ1zQGjH",
    "value": "37"
  },
  "TakerPays": "79550000000",
  "index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797"
}

Offerのフィールド

共通フィールドに加えて、Offerエントリは以下のフィールドを使用します。

名前JSONの型内部の型必須?説明
Account文字列AccountIDはいこのオファーを所有するアカウントのアドレス。
BookDirectory文字列Hash256はいこのオファーにリンクしているオファーディレクトリーのID。
BookNode文字列UInt64はいOfferディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。
Expiration数値UInt32いいえ(省略可)このオファーが資金不足とみなされる時刻。詳細は、時間の指定をご覧ください。
Flags数値UInt32はいこのオファーに対して有効になっているブール値フラグのビットマップ。
LedgerEntryType文字列UInt16はい値が0x006F(文字列Offerにマッピング)の場合は、このオブジェクトが通貨取引オーダーを記述することを示す。
OwnerNode文字列UInt64はい所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒント。注記: このオファーには、オファーを含む所有者ディレクトリーへの直接リンクは含まれていません。これは、その値をAccountから取得できるためです。
PreviousTxnID文字列Hash256はい最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。
Sequence数値UInt32はいOfferオブジェクトを作成したOfferCreateトランザクションのSequence値。Accountとこのフィールドの組み合わせによってこのオファーが識別されます。
PreviousTxnLgrSeq数値UInt32はい最後にこのオブジェクトを変更したトランザクションが記録されたレジャーインデックス
TakerPays文字列またはオブジェクトAmountはいオファー作成者がリクエストする残額と通貨の種類。
TakerGets文字列またはオブジェクトAmountはいオファー作成者が提供する残額と通貨の種類。

Offerのフラグ

Offerエントリは以下のフラグをFlagsフィールドに指定することができます。

フラグ名16進数値10進数値対応するOfferCreateフラグ説明
lsfPassive0x0001000065536tfPassiveオブジェクトはパッシブオファーとして発注されています。レジャー内のオブジェクトには影響しません。
lsfSell0x00020000131072tfSellオブジェクトは売却オファーとして発注されています。これは台帳にあるオブジェクトには何の影響もありません (tfSellは指定したレートよりも良いレートが存在する場合にのみ意味を持ち、台帳にこのフラグを持ったオブジェクトが入ることはありません。)。

Offerの準備金

Offerエントリは、台帳上にエントリがある限り、オファーを出したアカウントの所有者準備金の対象の1つとしてカウントされます。オファーをキャンセルまたは約定すると、準備金が解放されます。準備金は、資金がないことが判明してオファーが削除された場合にも解放されます。

オファーIDのフォーマット

OfferオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。

  • Offerスペースキー(0x006F

  • オファーを行うアカウントのAccountID

  • オファーを作成したOfferCreateトランザクションのシーケンス番号

    OfferCreateトランザクションがTicketを使用した場合、代わりにTicketSequence値を使用します。