OfferCreate
OfferCreateトランザクションは分散型取引所で注文を作成します。
OfferCreate JSONの例
{
"TransactionType": "OfferCreate",
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
"Fee": "12",
"Flags": 0,
"LastLedgerSequence": 7108682,
"Sequence": 8,
"TakerGets": "6000000",
"TakerPays": {
"currency": "GKO",
"issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
"value": "2"
}
}
OfferCreate フィールド
共通フィールドに加えて、OfferCreateトランザクションは以下のフィールドを使用します。
フィールド | JSONの型 | 内部の型 | 必須? | 説明 |
---|---|---|---|---|
DomainID | 文字列 - ハッシュ | Hash256 | いいえ | 許可型DEXのレジャーエントリID。指定された場合、対応する許可型DEXのみを使用するパスを返します。(PermissionedDEX amendment が必要です。) |
Expiration | 整数 | UInt32 | いいえ | オファーがアクティブでなくなるまでの時間(Rippleエポック以降の経過秒数)。 |
OfferSequence | 整数 | UInt32 | いいえ | 最初に削除されるオファー(OfferCancelと同様に指定されます)。 |
TakerGets | 通貨額 | Amount | はい | オファーの作成者によって作成される金額および通貨の種類。 |
TakerPays | 通貨額 | Amount | はい | オファーの作成者によってリクエストされる金額および通貨の種類。 |
OfferCreateフラグ
OfferCreate型のトランザクションについては、Flags
フィールドで以下の値が追加でサポートされます。
フラグ名 | 16進数 | 10進数 | 説明 |
---|---|---|---|
tfPassive | 0x00010000 | 65536 | このオファーと完全に一致するオファーを約定しません。これにより、特定の値で交換レートを固定するオファーを台帳に設定できます。 |
tfImmediateOrCancel | 0x00020000 | 131072 | オファーを即時またはキャンセル注文として扱い、Offerエントリをオーダーブックに配置しません。トランザクションは、処理時に既存のオファーを約定し、可能な限り多くの取引を行います。 |
tfFillOrKill | 0x00040000 | 262144 | オファーを即時またはキャンセル注文として扱い、Offerエントリをオーダーブックに配置しません。実行時に完全に約定できない場合、オファーをキャンセルします。デフォルトでは、所有者は完全なTakerPays の金額を受け取る必要があります。tfSell フラグが有効な場合、所有者は代わりに完全なTakerGets の金額を約定できる必要があります。 |
tfSell | 0x00080000 | 524288 | 取引所でTakerPays の金額よりも多く取得することになっても、TakerGets の金額を約定します。 |
tfHybrid | 0x00100000 | 1048576 | 許可型DEXとオープンDEXの両方を使用できるハイブリッドオファーにします。このフラグを使用する場合、DomainID フィールドを指定する必要があります。 |
エラーケース
エラーコード | 説明 |
---|---|
tecDIR_FULL | トランザクションの送信者が台帳で多くのアイテムを所有している場合、またはオーダーブックに同じ取引レートのオファーがすでに多く含まれている場合に発生します。 |
tecEXPIRED | トランザクションが指定したExpiration の時間が既に経過している場合に発生します。 |
tecFROZEN | フリーズされたトラストライン(ローカルおよびグローバルのフリーズを含む)上のトークンを含むトランザクションの場合に発生します。TakerPays (購入額)トークンが発行者によってディープフリーズされている場合に発生します。 |
tecINSUF_RESERVE_OFFER | 所有者が台帳に新しいOfferオブジェクトを追加するための準備要件を満たすのに十分なXRPを持っておらず、トランザクションがどの通貨も変換しなかった場合に発生します。(トランザクションが何らかの金額のトレードに成功した場合、トランザクションは結果コードtesSUCCESS で成功しますが、残りは台帳にOfferオブジェクトを作成しません)。 |
tecKILLED | トランザクションがtfFillOrKill を指定し、全額を約定できない場合に発生します。ImmediateOfferKilled amendment が有効な場合、この結果コードは、トランザクションがtfImmediateOrCancel を指定して資金が移動せずに実行された場合にも発生します(これまでは、これはtesSUCCESS を返していました)。 |
tecNO_AUTH | 発行者がAuthorized Trust Linesを使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 |
tecNO_ISSUER | トランザクションで、issuer の値が台帳の有効化されたアカウントでないトークンを指定した場合に発生します。 |
tecNO_LINE | 発行者がAuthorized Trust Linesを使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 |
tecNO_PERMISSION | トランザクションがDomainID を使用しているが、送信者がそのドメインのメンバーではない場合に発生します。(PermissionedDEX amendment ) |
tecUNFUNDED_OFFER | トランザクションの送信者がTakerGets の通貨を正の値で保有していない場合に発生する。(例外: TakerGets にトランザクションの送信者が発行するトークンを指定した場合、トランザクションは成功します)。 |
temBAD_CURRENCY | トランザクションで通貨コードが"XRP"のトークンが指定された場合に発生します。 |
temBAD_EXPIRATION | トランザクションのExpiration フィールドの値が無効なフォーマットの場合に発生します。 |
temBAD_ISSUER | トランザクションが無効なissuer 値を持つトークンを指定した場合に発生します。 |
temBAD_OFFER | OfferがXRPとXRPを交換しようとした場合、またはトークンの無効な量やマイナスの量を交換しようとした場合に発生します。 |
temBAD_SEQUENCE | トランザクションのOfferSequence フィールドの値が無効なフォーマットであるか、トランザクション自身のSequence 番号より大きい場合に発生します。 |
temINVALID_FLAG | トランザクションがtfImmediateOrCancel とtfFillOrKill 両方を指定した場合に発生します。 |
temREDUNDANT | トランザクションが同じトークン(同じ発行者、通貨コード)を指定した場合に発生します。 |