mirror of
https://github.com/XRPLF/xrpl-dev-portal.git
synced 2025-11-27 23:25:51 +00:00
Merge pull request #2206 from XRPLF/migrate_ja
[JA] Move files to a dir compatible with Redocly
This commit is contained in:
@@ -1,36 +0,0 @@
|
||||
---
|
||||
html: base58-encodings.html
|
||||
parent: basic-data-types.html
|
||||
blurb: 暗号鍵と関連データをbase58形式で表すフォーマットです。
|
||||
---
|
||||
# base58エンコード
|
||||
|
||||
`rippled` APIでは、チェックサムを含む**base58**エンコード(「Base58Check」とも呼ばれます)を使用して[アカウントアドレス](addresses.html)や暗号鍵に関連するその他のタイプの値が表現されることがよくあります。このエンコードは、[Bitcoinのアドレスに使用されているエンコード](https://en.bitcoin.it/wiki/Base58Check_encoding)と同じですが、XRP Ledgerでは以下のディクショナリが使用される点が異なります。`rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz`。
|
||||
|
||||
XRP Ledgerにより、さまざまなタイプの値をエンコードする前に、データタイプを区別する固有の8ビット数値が値の前に付加されます。XRP Ledgerのbase58ディクショナリの文字配列と組み合わされた、さまざまなタイプのエンコード値のbase58表現は、タイプごとに固有の文字で始まります。
|
||||
|
||||
以下の表に、XRP Ledgerで使用されるすべてのエンコードを示します。
|
||||
|
||||
| データタイプ | 開始文字 | タイププレフィクス | コンテンツのサイズ¹ | 最大文字数 |
|
||||
|:-----------------------------------------|:------------|:------------|:--------------|:--|
|
||||
| [アカウント][]アドレス | r | `0x00` | 20バイト | 35 |
|
||||
| アカウントの公開鍵 | a | `0x23` | 33バイト | 53 |
|
||||
| シード値(シークレットキー) | s | `0x21` | 16バイト | 29 |
|
||||
| 検証公開鍵またはノード公開鍵 | n | `0x1C` | 33バイト | 53 |
|
||||
|
||||
¹ コンテンツのサイズでは1バイトのタイププレフィクスは除外されます。
|
||||
|
||||
[アカウント]: accounts.html
|
||||
|
||||
## 関連項目
|
||||
|
||||
- [アドレスのエンコード](addresses.html#アドレスのエンコード) - アドレスのエンコードについての詳細な情報
|
||||
- [暗号鍵](cryptographic-keys.html) - XRP Ledgerの暗号鍵のタイプとその使用法
|
||||
- [wallet_proposeリファレンス][wallet_proposeメソッド] - アカウントキーを生成するためのAPIメソッド
|
||||
- [validation_createリファレンス][validation_createメソッド] - バリデータキーを生成するためのAPIメソッド
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,170 +0,0 @@
|
||||
---
|
||||
html: basic-data-types.html
|
||||
parent: protocol-reference.html
|
||||
blurb: さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。
|
||||
---
|
||||
# 基本的なデータ型
|
||||
|
||||
さまざまなタイプのオブジェクトがそれぞれ異なる方法で一意に識別されます。
|
||||
|
||||
[アカウント](accounts.html)は[アドレス][]で識別されます。例えば、`"r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"`など。アドレスは常に「r」で始まります。`rippled`メソッドの多くは、16進数表記に対応しています。
|
||||
|
||||
[トランザクション](transaction-formats.html)は、トランザクションのバイナリフォーマットの[ハッシュ][]で識別されます。また、トランザクションは送信アカウントと[シーケンス番号][]でも識別できます。
|
||||
|
||||
閉鎖された各[レジャー](ledger-data-formats.html)は、[レジャーインデックス][]と[ハッシュ][]値を保有します。[レジャーを指定する](#レジャーの指定)場合、いずれか1つを使用できます。
|
||||
|
||||
## アドレス
|
||||
[アドレス]: #アドレス
|
||||
|
||||
{% include '_snippets/data_types/address.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
|
||||
## ハッシュ
|
||||
[ハッシュ]: #ハッシュ
|
||||
|
||||
{% include '_snippets/data_types/hash.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
### ハッシュプレフィクス
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/HashPrefix.h "Source")
|
||||
|
||||
多くの場合、XRP Ledgerではオブジェクトのバイナリデータに4バイトのプレフィクスを付けてからハッシュを計算するため、異なるタイプのオブジェクトが同じバイナリフォーマットである場合でも、異なるハッシュが設定されます。既存の4バイトコードは、ASCIIでエンコードされた英字3文字の後に0バイトが続く構成となっています。
|
||||
|
||||
ある種のハッシュは、APIの要求と応答に使用されます。またある種のデータに署名するときの最初のステップで計算されるだけのものや、より高度なハッシュを計算するためのものもあります。XRP Ledgerで使用されるすべての4バイトのハッシュプレフィクスは以下の表の通りです。
|
||||
|
||||
| オブジェクトタイプ | APIフィールド | ハッシュプレフィクス(16進数) | ハッシュプレフィクス(テキスト) |
|
||||
|:--------------------------------------|:-------------------------------------|:------------------|:--|
|
||||
| コンセンサスの提案 | なし | `0x50525000` | `PRP\0` |
|
||||
| レジャーバージョン | `ledger_hash` | `0x4C575200` | `LWR\0` |
|
||||
| レジャー状態データ | `account_state` ([レジャーヘッダー][]内) | `0x4D4C4E00` | `MLN\0` |
|
||||
| レジャーデータ内部ノード | なし | `0x4D494E00` | `MIN\0` |
|
||||
| レジャーデータ内部ノード([SHAMapv2][]) | なし | `0x494E5200` | `INR\0` |
|
||||
| Payment Channelのクレーム | なし | `0x434C4D00` | `CLM\0` |
|
||||
| 署名済みのトランザクション | トランザクションの`hash` | `0x54584E00` | `TXN\0` |
|
||||
| メタデータを持つトランザクション | なし | `0x534E4400` | `SND\0` |
|
||||
| 未署名のトランザクション(シングル署名) | なし | `0x53545800` | `STX\0` |
|
||||
| 未署名のトランザクション(マルチシグ) | なし | `0x534D5400` | `SMT\0` |
|
||||
| 検証の投票 | なし | `0x56414C00` | `VAL\0` |
|
||||
| バリデータサブキー認証(「バリデータマニフェスト」) | なし | `0x4D414E00` | `MAN\0` |
|
||||
|
||||
[レジャーヘッダー]: ledger-header.html
|
||||
[SHAMapv2]: known-amendments.html#shamapv2
|
||||
|
||||
[レジャーオブジェクトID](ledger-object-ids.html)も似た方法で計算されますが、ここで説明したプレフィクスの代わりに「スペースキー」という2バイトのプレフィクスを使用します。
|
||||
|
||||
|
||||
## アカウントシーケンス
|
||||
[シーケンス番号]: #アカウントシーケンス
|
||||
|
||||
{% include '_snippets/data_types/account_sequence.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
|
||||
## レジャーインデックス
|
||||
[レジャーインデックス]: #レジャーインデックス
|
||||
|
||||
{% include '_snippets/data_types/ledger_index.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
|
||||
### レジャーの指定
|
||||
|
||||
APIメソッドの多くは、レジャーのインスタンスを指定する必要があります。その場合、共有されたレジャーの特定バージョンで最新と見なされるデータで指定する必要があります。レジャーバージョンを受け入れるコマンドは、すべて同様に機能します。使用するレジャーを指定するには、以下の3つの方法があります。
|
||||
|
||||
1. `ledger_index`パラメーターにレジャーの[レジャーインデックス][]を指定します。閉鎖された各レジャーには識別用のレジャーインデックスが付いていて、その前に検証されたレジャーより1つ大きい番号になります。(最初のレジャーのインデックスは1です。)
|
||||
2. `ledger_hash`パラメーターにレジャーの[ハッシュ][]値を指定します。
|
||||
3. `ledger_index`パラメーターに以下のいずれかのショートカットを指定します。
|
||||
* `validated`: ネットワーク全体で検証された最新のレジャー
|
||||
* `closed`: 変更できないように閉鎖され、検証を提案されている最新のレジャー
|
||||
* `current`: サーバーで現在処理中のレジャーバージョン
|
||||
|
||||
上記3つのフォーマットすべてを受け入れる、廃止予定の`ledger`パラメーターもあります。このパラメーターは使用*しないでください*。今後予告なしに廃止される可能性があります。
|
||||
|
||||
レジャーを指定しない場合、デフォルトで`current`(処理中)レジャーが選択されます。レジャーを指定するフィールドを複数指定した場合、廃止予定の`ledger`フィールドが最初に使用され(存在する場合)、`ledger_hash`に戻ります。`ledger_index`フィールドは、他の2つのフィールドがいずれも存在しない場合を除いて無視されます。
|
||||
|
||||
**注記:** レジャーを指定する際に上記のデフォルトの動作に頼らないでください。変更される場合があります。可能であれば、常に要求にてレジャーバージョンを指定してください。
|
||||
|
||||
|
||||
## 通貨
|
||||
|
||||
XRP Ledgerには2種類の通貨があります。XRPとその他のあらゆる通貨です。この2つには多くの相違点があります。
|
||||
|
||||
| `XRP` | 発行済み通貨 |
|
||||
|:----------------------------------------------------------------|:-----------|
|
||||
| 発行者なし | 必ずXRP Ledgerアカウントが発行 |
|
||||
| 文字列として指定 | オブジェクトとして指定 |
|
||||
| [アカウント](accountroot.html)内で追跡 | [トラストライン](ripplestate.html)内で追跡 |
|
||||
| 作成は一切不可、消却のみ可能 | 自由に発行または清算可能 |
|
||||
| 最大値: `100000000000`(`1e11`) | 最大値: `9999999999999999e80` |
|
||||
| [「drop」](#xrp)(0.000001 XRP)に近い精度 | 10進15桁の精度で非ゼロの最少絶対値は `1000000000000000e-96` |
|
||||
|
||||
**注意:** XRP Ledgerでは、通常の浮動小数点数とは異なる精度の小数点計算を使用するため、通貨額は常に文字列として表されます。
|
||||
|
||||
### 通貨額の指定
|
||||
|
||||
一部のAPIメソッドでは、通貨額を指定する必要があります。取扱通貨がネットワーク固有のXRP通貨であるかその他の通貨単位(_イシュアンス_)であるかによって、指定方法が大きく異なります。
|
||||
|
||||
#### XRP
|
||||
[XRPのdrop数]: #xrp
|
||||
[XRP、drop単位]: #xrp
|
||||
|
||||
XRPの額は文字列で表します。(XRPの精度は64ビット整数と同等ですが、JSON 整数は32ビットに制限されるため、JSON整数で表す場合はXRPがオーバーフローする恐れがあります。)XRPは正式には「drop」で指定します。これは0.000001(百万分の1)のXRPと等価です。したがって、JSON文書で1.0 XRPを表示するには、次のように書きます。
|
||||
|
||||
```
|
||||
"1000000"
|
||||
```
|
||||
|
||||
**XRPをオブジェクトに指定しないでください。**
|
||||
|
||||
単体テストでは、XRPの値(dropではありません)を小数点を使用して指定できます。例えば、「1.23」は1.23 XRPを意味します。それ以外のすべての場合では、XRPは常にdrop単位で指定し、小数点は使用しません。例えば、「1230000」は1.23 XRPを意味します。
|
||||
|
||||
#### 非XRP
|
||||
|
||||
XRP以外の通貨(法定通貨としてのドル、貴金属、暗号資産、その他のカスタム通貨を含む)を指定する場合、通貨指定オブジェクトを使用して指定する必要があります。以下は、3つのフィールドを持つJSONオブジェクトです。
|
||||
|
||||
| `Field` | 型 | 説明 |
|
||||
|:-----------|:---------------------------|:-----------------------------------|
|
||||
| `currency` | 文字列 - [通貨コード][] | 通貨を発行するための任意コード。`XRP`は使用できません。 |
|
||||
| `value` | 文字列 | 通貨の金額を表す引用符付き10進数表記。これには科学的記数法が含まれ、例えば`1.23e11`は123,000,000,000を意味します。`e`と`E`のどちらも使用できます。 |
|
||||
| `issuer` | 文字列 | 通貨を発行する組織の一意のアカウントアドレス。つまり、通貨を清算できる個人または企業です。 |
|
||||
|
||||
**注意:** これらのフィールド名は大文字小文字の区別があります。
|
||||
|
||||
例えば、アカウント`r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59`によって発行された$153.75 USドルは、以下のように指定します。
|
||||
|
||||
```
|
||||
{
|
||||
"currency": "USD",
|
||||
"value": "153.75",
|
||||
"issuer": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59"
|
||||
}
|
||||
```
|
||||
|
||||
単体テストでは、非XRP通貨の金額値をスラッシュで区切られた文字列で指定できます。例えば、`"amount/currency/issuer"`のフォーマットになります。その他すべての場合では、前述のJSONオブジェクトのフォーマットを使用する必要があります。
|
||||
|
||||
#### 金額なしでの通貨の指定
|
||||
|
||||
XRP以外の通貨を金額なしで指定する場合は(主に、通貨取引オファーのオーダーブックを定義する場合など)、上記のように指定しますが、`value`フィールドは省略します。
|
||||
|
||||
XRPを金額なしで指定する場合は(主に、オーダーブックを定義する場合など)、JSONオブジェクトとして指定しますが、使用するフィールドは`currency`フィールド _のみ_ です。XRPの場合は`issuer`フィールドを指定してはいけません。
|
||||
|
||||
最後に、支払いの受取人アカウントが複数のイシュアー(通貨発行者)を信頼している場合は、受取人が受け入れているイシュアーがどのように組み合わされても支払いが行われるように指定できます。これを行うには、受取人アカウントのアドレスをJSONオブジェクトに`issuer`値として指定します。
|
||||
|
||||
### 通貨コード
|
||||
[通貨コード]: #通貨コードs
|
||||
|
||||
{% include '_snippets/data_types/currency_code.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
|
||||
## 時間の指定
|
||||
|
||||
`rippled`サーバーとそのAPIでは、時間を符号なし整数で表します。この数値は、「Rippleエポック」である2000年1月1日(00:00 UTC)から経過した秒数を表しています。これは[UNIXエポック](http://en.wikipedia.org/wiki/Unix_time)と同様に機能しますが、RippleエポックはUNIXエポックより946684800秒遅れています。
|
||||
|
||||
Rippleエポック時間を32ビット変数でUNIXエポック時間に変換しないでください。整数のオーバーフローが発生する恐れがあります。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,74 +0,0 @@
|
||||
---
|
||||
html: currency-formats.html
|
||||
parent: basic-data-types.html
|
||||
blurb: 通貨番号の精度と範囲、カスタム通貨コードのフォーマットです。
|
||||
labels:
|
||||
- XRP
|
||||
- トークン
|
||||
---
|
||||
# 通貨フォーマット
|
||||
|
||||
XRP Ledgerには2種類の通貨 XRP と[発行済み通貨](issued-currencies.html))があります。XRP Ledgerでは、これらの通貨のフォーマットは異なりますが、いずれの通貨も高精度です。
|
||||
|
||||
## 文字列フォーマット
|
||||
|
||||
{% include '_snippets/string-number-formatting.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
## XRPの精度
|
||||
|
||||
XRPの精度は、64ビット符号なし整数と同等であり、各単位は0.000001 XRPと同等です。プロパティは次の通りです。
|
||||
|
||||
* 最小値: `0`
|
||||
* 最大値: `100000000000`(10<sup>11</sup>)XRP
|
||||
- `"100000000000000000"`(10<sup>17</sup>) dropのXRP
|
||||
* `0.000001`(10<sup>-6</sup>)XRPに近い精度
|
||||
- `"1"` dropのXRP
|
||||
|
||||
## 発行済み通貨の精度
|
||||
|
||||
XRP Ledgerの発行済み通貨は、以下の精度のカスタムフォーマットで表現されます。
|
||||
|
||||
* 非ゼロの最小絶対値: `1000000000000000e-96`
|
||||
* 最大値: `9999999999999999e80`
|
||||
* 最小値: `-9999999999999999e80`
|
||||
* 10進15桁の精度
|
||||
|
||||
## 発行済み通貨の計算
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/35fa20a110e3d43ffc1e9e664fc9017b6f2747ae/src/ripple/protocol/impl/STAmount.cpp "Source")
|
||||
|
||||

|
||||
|
||||
`rippled`内部では発行済み通貨の数値はカスタムの数値フォーマットで表現されます。このフォーマットではさまざまな資産(一般的にごく小さな単位または極めて大きな単位で測定される資産を含む)を保管できます。このフォーマットでは、有効数字と10のべき乗の指数を科学的記数法と同様の方法で使用します。このフォーマットは、指定された範囲内のプラスまたはマイナスの有効桁数と指数に対応しています。非整数値の一般的な浮動小数点表記とは異なり、このフォーマットでは整数を用いて計算します。このため、常に15桁の精度が維持されます。乗算と除算には、最下位の有効数字の丸め過ぎを補う調整機能があります。
|
||||
|
||||
「任意精度」の数値フォーマットとは異なり、カスタムフォーマットは64ビットの固定サイズで格納できます。このようにシリアル化される場合、このフォーマットは「非XRP」ビット、符号ビット、有効桁数、指数で構成されます。これらは次の順で表示されます。
|
||||
|
||||
1. 発行済み通貨額の1番目のビット(最上位ビット)は、XRPの額ではないことを示す`1`です。(XRPの額である場合、最上位ビットは常に`0`に設定され、このフォーマットからXRPの額が区別されます。)
|
||||
2. 符号ビットは、金額のプラスマイナスを示します。標準的な[2の補数で表される](https://en.wikipedia.org/wiki/Two%27s_complement)整数とは異なり、`1` はXRP Ledgerフォーマットでは**プラス**を示し`0`はマイナスを示します。
|
||||
3. 次の8ビットは、指数を符号なし整数で表しています。指数は、小数点以下桁数(有効桁数に乗算する10のべき乗)を-96以上+80以下の範囲で示します。ただしシリアル化では、この指数に97を加算して符号なし整数としてシリアル化できるようにします。したがってシリアル化された値が`1`の場合は指数`-96`、シリアル化された値が`177`の場合は指数80を示します。
|
||||
4. 残りの54ビットは、有効数字を符号なし整数で表します。シリアル化では、値0の特殊なケースを除き、この値は10<sup>15</sup>(`1000000000000000`)以上10<sup>16</sup>-1(`9999999999999999`)以下の範囲で正規化されます。値0の特殊なケースがあります。この場合符号ビット、指数、および仮数はすべてゼロであるため、64ビット値は`0x8000000000000000000000000000000000000000`としてシリアル化されます。
|
||||
|
||||
|
||||
## 通貨コード
|
||||
|
||||
XRP LedgerのXRP以外の通貨には160ビットの通貨コードがあります。[`rippled`API](http-websocket-apis.html)では、標準マッピングを使用して3文字のASCII文字列(大文字と小文字の区別あり)が160ビットの通貨コードにマッピングされます。通貨コード`XRP`は発行済み通貨には使用できません。同一コードの通貨は接続トラストラインを通じて[ripple](rippling.html)できます。通貨コードには、XRP Ledgerに組み込まれるその他の動作はありません。
|
||||
|
||||
### 標準通貨コード
|
||||
|
||||
標準通貨マッピングによりビットが次のように割り当てられます。
|
||||
|
||||

|
||||
|
||||
1. 最初の8ビットは`0x00`でなければなりません。
|
||||
2. 次の88ビットは予約済みであり、すべて`0`です。
|
||||
3. 次の24ビットは3つのASCII文字を表します。
|
||||
[ISO 4217](https://www.xe.com/iso4217.php)コードまたはよく利用されている疑似ISO 4217コード(BTCなど)の使用が推奨されます。ただし、すべての大文字と小文字、桁数、および記号`?`、`!`、`@`、`#`、`$`、`%`、`^`、`&`、`*`、`<`、`>`、`(`、`)`、`{`、`}`、`[`、`]`、および<code>|</code>の組み合わせを使用できます。通貨コード`XRP`(すべて大文字)はXRP用に予約されており、発行済み通貨には使用できません。
|
||||
4. 次の40ビットは予約済みであり、すべて`0`です。
|
||||
|
||||
通常、XRP額の指定時には通貨コードは使用しません。フィールドにXRPの通貨コードが指定されている稀なケースでは、通貨コードのバイナリ形式はすべてゼロになります。
|
||||
|
||||
### 非標準通貨コード
|
||||
|
||||
通貨コードとして160ビット(40文字)16進文字列(例: `015841551A748AD2C1F76FF6ECB0CCCD00000000`)を使用して、その他のタイプの通貨を発行することもできます。異なる通貨コードタイプとして扱われないようにするには、先頭8ビットが`0x00`であってはなりません。
|
||||
|
||||
**廃止予定:** 一部の旧バージョンの[ripple-lib](https://github.com/XRPLF/xrpl.js)では通貨コードタイプとして「有利子」または「マイナス利子」がサポートされていました。これらの通貨の先頭8ビットは`0x01`です。マイナス利子/有利子通貨はサポートされなくなりましたが、レジャーデータにこのような通貨が現れることがあります。詳しくは、[マイナス利子](demurrage.html)を参照してください。
|
||||
@@ -1,137 +0,0 @@
|
||||
---
|
||||
html: nftoken.html
|
||||
parent: basic-data-types.html
|
||||
blurb: XRPL NFTの紹介
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
---
|
||||
# NFToken
|
||||
|
||||
`NFToken`オブジェクトは、1つの非代替性トークン(NFT)を表します。単体では保存されず、他のNFTと共に[NFTokenPage オブジェクト][]に格納されます。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました。)_
|
||||
|
||||
{{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65",
|
||||
"URI": "ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf4dfuylqabf3oclgtqy55fbzdi"
|
||||
}
|
||||
```
|
||||
|
||||
通常の[ledger entries](ledger-object-types.html)とは異なり、`NFToken`にはオブジェクトのタイプや現在の所有者を特定するフィールドはありません。`NFToken`オブジェクトは、そのオブジェクトのタイプを暗黙的に定義し、所有者を特定するページにグループ化されます。
|
||||
|
||||
|
||||
## NFTokenID
|
||||
|
||||
NFTokenID, 任意, 文字列, Hash256
|
||||
|
||||
この複合フィールドは、トークンを一意に識別するものであり、以下のセクションから構成されます。
|
||||
|
||||
A) 16ビットのNFTokenのフラグや設定の識別子
|
||||
|
||||
B) 16ビットのNFTokenに関連する送金手数料のエンコード化された値(送金手数料が設定されている場合)
|
||||
|
||||
C) 160ビットの発行者のアカウント識別子
|
||||
|
||||
D) 32ビットの発行者が指定する[`NFTokenTaxon`](https://www.merriam-webster.com/dictionary/taxon)
|
||||
|
||||
E) 32ビットの(自動生成される)単調増加するのシーケンス番号
|
||||
|
||||

|
||||
|
||||
16ビットのフラグ、送金手数料フィールド、32ビットの`NFTokenTaxon`、シーケンス番号フィールドはビッグエンディアン形式で格納されます。
|
||||
|
||||
|
||||
## NFToken フラグ
|
||||
|
||||
フラグは、`NFToken`オブジェクトに関連するプロパティやその他のオプションです。
|
||||
|
||||
|
||||
| フラグ名 | フラグ値 | 説明 |
|
||||
|:------------------|:-----------|:--------------------------------------------|
|
||||
| `lsfBurnable` | `0x0001` | 設定されている場合、発行者(または発行者が許可したエンティティ)が`NFToken`を破棄できることを示します。オブジェクトの所有者は常に破棄することができます。 |
|
||||
| `lsfOnlyXRP` | `0x0002` | 設定されている場合、`NFToken`はXRPに対してのみオファーまたは売却できることを示します。 |
|
||||
| `lsfTrustLine` | `0x0004` | **廃止** 設定されている場合、送金手数料を保持するための[トラストライン](trust-lines-and-issuing.html)を自動的に作成します。設定されていない場合、発行者がそのトークンのトラストラインを持っていない場合、この`NFToken`をそのトークンで売買することは失敗します。[fixRemoveNFTokenAutoTrustLine amendment][]により、このフラグは利用できなくなります。|
|
||||
| `lsfTransferable` | `0x0008` | 設定されている場合、この`NFToken`は所有者から別の所有者に転送することができます。設定されていない場合、所有者は発行者との間でのみ譲渡が可能です。 |
|
||||
| `lsfReservedFlag` | `0x8000` | 本提案では、このフラグを将来の使用に備えて確保します。このフラグを設定しようとすると失敗します。 |
|
||||
|
||||
`NFToken`のフラグは変更できません。[NFTokenMint トランザクション][]でのみ設定可能で、後で変更することはできません。
|
||||
|
||||
### 例
|
||||
|
||||
この例では、`lsfBurnable`(0x0001), `lsfOnlyXRP`(0x0002), `lsfTransferable`(0x0008)の3つのフラグを設定しています。1+2+8 = 11、つまりビッグエンディアン形式で0x000Bです。
|
||||
|
||||

|
||||
|
||||
|
||||
### 送金手数料
|
||||
|
||||
`TransferFee`には、トークンの二次販売時に発行者が請求する手数料を1/100,000単位で指定します。このフィールドの有効な値は0から50,000までです。1の値は1bpsまたは0.01%に相当し、0%から50%の間の送金手数料が設定可能です。
|
||||
|
||||
### 例
|
||||
|
||||
この値では、転送手数料は31.4bps(0.314%)に設定されます。
|
||||
|
||||

|
||||
|
||||
### 発行者の識別
|
||||
|
||||
`NFTokenID`の3番目のセクションは、発行者のアドレスをビッグエンディアンで表現したものです。
|
||||
|
||||

|
||||
|
||||
### NFTokenTaxon(分類群)
|
||||
|
||||
4番目のセクションは、発行者が作成する`NFTokenTaxon`です。
|
||||
|
||||

|
||||
|
||||
発行者は同じ`NFTokenTaxon`を持つ複数の`NFToken`を発行する可能性があります。`NFToken`が複数のページにまたがるようにするため、`NFTokenTaxon`は第5セクションの連番を乱数発生器のシード値として乱数化されています。乱数化された値は`NFToken`と共に保存されますが、乱数化されていない値が実際の`NFTokenTaxon`となります。
|
||||
|
||||
`NFTokenTaxon`の値は`0xBC8B858E`ですが、これは発行者が指定した`NFTokenTaxon`の値が乱数化されたものであることに注意してください。`NFTokenTaxon`の実際の値は乱数化されていない値です。
|
||||
|
||||
### トークン連番
|
||||
|
||||
5番目のセクションは、発行者が`NFToken`を作成するたびに増加するシーケンス番号です。
|
||||
|
||||

|
||||
|
||||
[NFTokenMint トランザクション][]では`NFTokenID`のこのフィールドを`Issuer`アカウントの`MintedNFTokens`フィールドを基に自動的に設定します。発行者の[AccountRoot オブジェクト][]が`MintedNFTokens`フィールドを持っていない場合、そのフィールドは値 0 と見なされます。フィールドの値は1ずつ増加します。
|
||||
|
||||
|
||||
## URI
|
||||
|
||||
URIフィールドは、`NFToken`に関連するデータまたはメタデータを指します。このフィールドはHTTPやHTTPSのURLである必要はありません。IPFS URIや紐づくリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397)、あるいはカスタムされたのエンコード値である可能性もあります。URIの有効性はチェックされませんが、フィールドの長さは最大256バイトに制限されます。
|
||||
|
||||
**注意:** URIは変更不可能であるため、例えば、存在しないウェブサイトにリンクしていたとしても、誰もそれを更新することはできません。
|
||||
|
||||
# NFTokenデータとメタデータの取得
|
||||
|
||||
機能を犠牲にしたり不必要な制限を課したりすることなく`NFTokens`の容量を最小にするために、XRPL NFTは任意のデータフィールドを持ちません。その代わり、データは別に管理され、`NFToken`によって参照されます。URIは`Hash`に対して不変のコンテンツへの参照を提供し、`NFToken`オブジェクトに対しては任意の変更可能なデータを提供します。
|
||||
|
||||
`URI`フィールドは、従来とは異なるピアツーピア(P2P)URLを参照する際に特に有用です。例えば、惑星間ファイルシステム(IPFS)を使用して`NFToken`データやメタデータを保存する発行者は、`URI`フィールドを使用してIPFS上のデータを様々な方法で参照することができ、それぞれが異なるユースケースに適しています。NFTデータの保存に使用できるIPFSリンクの種類については、[Best Practices for Storing NFT Data using IPFS](https://docs.ipfs.io/how-to/best-practices-for-nft-data/#types-of-ipfs-links-and-when-to-use-them)を参照してください。
|
||||
|
||||
## TXTレコードの形式
|
||||
|
||||
TXTレコードのフォーマットは以下の通りです。
|
||||
|
||||
```
|
||||
xrpl-nft-data-token-info-v1 IN TXT "https://host.example.com/api/token-info/{tokenid}"
|
||||
```
|
||||
|
||||
情報を問い合わせようとしたときに、文字列`{tokenid}`を要求されたトークンの`NFTokenID`(64バイトの16進文字列)に置き換えてください。
|
||||
|
||||
実装では、`TXT`レコードの存在を確認し、存在すればそれらのクエリ文字列を使用する必要があります。文字列が存在しない場合、実装はデフォルトのURLを使用するように試みるべきです。ドメインが _example.com_ であると仮定すると、デフォルトのURLは次のようになります。
|
||||
|
||||
```
|
||||
https://example.com/.well-known/xrpl-nft/{tokenid}
|
||||
```
|
||||
|
||||
`NFTokenMint`トランザクションを使用して`NFToken`を作成します。`NFTokenBurn`トランザクションを使用して`NFToken`を破棄することもできます。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
html: ledger-data-formats.html
|
||||
parent: protocol-reference.html
|
||||
blurb: XRP Ledgerの共有状態を構成する個別のデータオブジェクトについて説明します。
|
||||
---
|
||||
# レジャーのデータ型
|
||||
|
||||
XRP Ledgerに各レジャーバージョンは3つの要素で構成されています:
|
||||
|
||||
* **[レジャーヘッダー](ledger-header.html)**: このレジャーに関してメタデータです。
|
||||
* **[トランザクションセット](transaction-formats.html)**: このレジャーの作成時に、直前のレジャーに適用されたトランザクション。
|
||||
* **[状態データ](ledger-object-types.html)**: このバージョンのレジャーの設定、残高、オブジェクトを含むすべてのレジャーオブジェクト。
|
||||
|
||||
|
||||
## 状態データ
|
||||
|
||||
{% include '_snippets/ledger-objects-intro.ja.md' %}
|
||||
|
||||
{% from '_snippets/macros/page-children.md' import page_children with context %}
|
||||
{{ page_children(pages|selectattr("html", "eq", "ledger-object-types.html")|first, 1, 1, True) }}
|
||||
@@ -1,122 +0,0 @@
|
||||
---
|
||||
html: accountroot.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: あるアカウントの設定、XRP残高、その他のメタデータを表します。
|
||||
labels:
|
||||
- アカウント
|
||||
- XRP
|
||||
---
|
||||
# AccountRoot
|
||||
[[ソース]](https://github.com/xrplf/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L27 "Source")
|
||||
|
||||
`AccountRoot`オブジェクトタイプは、1つの[アカウント](accounts.html)、そのアカウントの設定、XRP残高を記述します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"AccountTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D",
|
||||
"Balance": "148446663",
|
||||
"Domain": "6D64756F31332E636F6D",
|
||||
"EmailHash": "98B4375E1D753E5B91627516F6D70977",
|
||||
"Flags": 8388608,
|
||||
"LedgerEntryType": "AccountRoot",
|
||||
"MessageKey": "0000000000000000000000070000000300",
|
||||
"OwnerCount": 3,
|
||||
"PreviousTxnID": "0D5FB50FA65C9FE1538FD7E398FFFE9D1908DFA4576D8D7A020040686F93C77D",
|
||||
"PreviousTxnLgrSeq": 14091160,
|
||||
"Sequence": 336,
|
||||
"TransferRate": 1004999999,
|
||||
"index": "13F1A95D7AAB7108D5CE7EEAF504B2894B8C674E6D68499076441C4837282BF8"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`AccountRoot`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:------------------------------|:---------|:------------------|:------|:------|
|
||||
| `Account` | 文字列 | AccountID | はい | この[アカウント](accounts.html)を識別するための(クラシック)アドレスです。 |
|
||||
| `AccountTxnID` | 文字列 | Hash256 | いいえ | このアカウントから直近に送信されたトランザクションの識別ハッシュ。このフィールドは、[`AccountTxnID`トランザクションフィールド](transaction-common-fields.html#accounttxnid)を使うために有効になっていなければなりません。これを有効にするには、[`asfAccountTxnID`フラグを有効にしたAccountSetトランザクション](accountset.html#accountsetのフラグ)を送信してください。 |
|
||||
| `AMMID` | 文字列 | Hash256 | いいえ | _([AMM amendment][] :not_enabled:が必要です。)_ 対応するAMMレジャーエントリのレジャーエントリID。アカウント作成時に設定します。AMM以外のアカウントでは常に省略されます。 |
|
||||
| `Balance` | 文字列 | Amount | いいえ | アカウントの現在の[drop単位のXRP残高][XRP、drop単位]で、文字列で表現されます。 |
|
||||
| `BurnedNFTokens` | 数値 | UInt32 | いいえ | このアカウントで発行された [非代替性トークン](non-fungible-tokens.html) のうち、バーンしたトークンの総数を表します。この数値は常に `MintedNFTokens` と同じかそれ以下となります。 |
|
||||
| `Domain` | 文字列 | VariableLength | いいえ | このアカウントに関連付けられたドメイン。JSONでは、ドメインのASCII表現を16進数で表現します。[256バイトを超える長さは使用できません](https://github.com/xrplf/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
|
||||
| `EmailHash` | 文字列 | Hash128 | いいえ | メールアドレスのmd5ハッシュ。クライアントはこれを使用してサービス内で[Gravatar](https://ja.gravatar.com/)などのアバターを検索できます。 |
|
||||
| [`Flags`](#accountrootのフラグ) | 数値 | UInt32 | はい | このアカウントに対して有効になっているブールフラグのビットマップ。 |
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | 値`0x0061`で文字列`AccountRoot`にマッピングされ、AccountRootオブジェクトであることを示します。 |
|
||||
| `MessageKey` | 文字列 | VariableLength | いいえ | このアカウントに暗号化されたメッセージを送信するために使用することができる公開鍵です。JSONでは、16進数で指定します。33バイトであることが必要で、最初の1バイトは鍵の種類を表します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`となります。 |
|
||||
| `MintedNFTokens` | 数値 | UInt32 | いいえ | このアカウントによって、またはこのアカウントのためにMintされた[非代替性トークン](non-fungible-tokens.html) の合計数。 |
|
||||
| `NFTokenMinter` | 文字列 | AccountID | いいえ | このアカウントに代わって[非代替性トークン](non-fungible-tokens.html)をミントできる別のアカウントを表します。 |
|
||||
| `OwnerCount` | 数値 | UInt32 | はい | レジャーでこのアカウントが所有しており、アカウント所有者の準備金に資金を付与するオブジェクトの数。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | はい | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
| `RegularKey` | 文字列 | AccountID | いいえ | このアカウントのトランザクションに署名するときにマスターキーの代わりに使用できる[キーペア](cryptographic-keys.html)のアドレス。この値を変更するには[SetRegularKeyトランザクション][]を使用してください。 |
|
||||
| `Sequence` | 数値 | UInt32 | はい | このアカウントの有効な次のトランザクションの[シーケンス番号](basic-data-types.html#アカウントシーケンス) を表します。 |
|
||||
| `TicketCount` | 数値 | UInt32 | いいえ | このアカウントが台帳に保有する[チケット](tickets.html)の数です。これは、アカウントが一度に250 チケットという上限以内に留まることを保証するために自動的に更新されます。このフィールドは、チケットの数がゼロの場合は省略されます。 _([TicketBatch amendment][]により追加されました)_ |
|
||||
| `TickSize` | 数値 | UInt8 | いいえ | このアドレスが発行した通貨が関わるオファーの為替レートに使用する有効桁数。有効な値は`3`以上`15`以下です。_([TickSize Amendment][]が必要です。)_ |
|
||||
| `TransferRate` | 数値 | UInt32 | いいえ | このアカウントが発行した通貨を他のユーザーが相互に送金する際に、これらのユーザーに請求する[送金手数料](transfer-fees.html)。 |
|
||||
| `WalletLocator` | 文字列 | Hash256 | いいえ | ユーザーが設定できる任意の256bit値。 |
|
||||
| `WalletSize` | 数値 | UInt32 | いいえ | 未使用。(コード上ではこのフィールドをサポートしていますが、設定する方法はありません)。 |
|
||||
|
||||
## AMMの特殊なAccountRootエントリ
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
[自動マーケットメーカー](automated-market-makers.html)(AMM)は、AMMの詳細の一部を追跡するための[AMMレジャーエントリ](amm.html)に加えて、LPトークンを発行しAMMプール内の資産を保持するためにAccountRootレジャーエントリを使用します。AMMに関連するAccountRootのアドレスは、AMMが作成される前にユーザがそのアドレスを特定し資金を提供できないように、ランダム化されています。AMMのAccountRootは、通常のアカウントとは異なり、以下のような設定で作成されます。
|
||||
|
||||
- `lsfDisableMaster` **有効** : トランザクションへ署名する手段はありません。これにより、誰もそのアカウントを直接操作することができず、トランザクションを送信することができなくなります。
|
||||
- `lsfRequireAuth` **有効** : 事前承認されているアカウントは存在しません。これにより、AMMアカウントに資産を追加する唯一の方法は、[AMMDepositトランザクション][]を使用することであることが保証されます。
|
||||
- `lsfDefaultRipple` **有効** : ユーザ間でAMMのLPトークンを送信したり、取引したりすることが可能になります。
|
||||
|
||||
さらに、AMMのAccountRootエントリには以下の特別なルールが適用されます。
|
||||
|
||||
- このAMM向けの特殊なアカウントは、[準備金要件](reserves.html)の対象外ですが、AMMのプール内の2つの資産のうちの1つであれば、XRPを保有することができます。
|
||||
- チェック、エスクロー、ペイメントチャネルの宛先にはできません。そのようなエントリを作成するトランザクションは結果コード`tecNO_PERMISSION`で失敗します。
|
||||
- ユーザはAMMのLPトークン以外のためにトラストラインを作成することはできません。そのようなトラストラインを作成するトランザクションは結果コード`tecNO_PERMISSION`で失敗します。(AMMはそのプール内のトークンを保持するために2つのトラストラインを持っており、プール内の他の資産がXRPの場合は1つのトラストラインを持っています)。
|
||||
- [Clawback Amendment][]も有効になっている場合においても、トークンの発行者はAMMから資金を回収することはできません。
|
||||
|
||||
LPトークンは他の[トークン](tokens.html)と同様に動作しますが、これらのトークンはAMM関連のトランザクションでも使用することができます。AMMの残高や、AMMに影響を与えたトランザクションの履歴は、通常のアカウントと同じように確認することができます。
|
||||
|
||||
## AccountRootのフラグ
|
||||
|
||||
AccountRootフラグの多くは、[AccountSetトランザクション][]で変更できるオプションに対応しています。ただし、レジャーで使用されるビット値は、トランザクションでそれらのフラグを有効または無効にするために使用される値とは異なります。レジャーのフラグは **lsf`** で始まる名前を持ちます。
|
||||
|
||||
AccountRootオブジェクトは`Flags`フィールドに以下のフラグを指定できます。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 対応する[AccountSetのフラグ](accountset.html#accountsetのフラグ) | 説明 |
|
||||
|-----------------------------------|--------------|----------|-------------------------------------|-------------------------------|
|
||||
| `lsfAllowTrustLineClawback` | `0x80000000` | 2147483648 | `asfAllowTrustLineClawback` | このアカウントの[Clawback](clawing-back-tokens.html)を有効にします。 _([Clawback Amendment][]が必要です。)_ |
|
||||
| `lsfDefaultRipple` | `0x00800000` | 8388608 | `asfDefaultRipple` | このアドレスのトラストラインでデフォルトで[rippling](rippling.html)を有効にします。発行アドレスに必要です。他のアドレスでの使用は推奨されません。 |
|
||||
| `lsfDepositAuth` | `0x01000000` | 16777216 | `asfDepositAuth` | このアカウントは、アカウントが送信するトランザクションと、[事前承認された](depositauth.html#事前承認)アカウントからの資金だけを受領します。([DepositAuth](depositauth.html)が有効になっています。) |
|
||||
| `lsfDisableMaster` | `0x00100000` | 1048576 | `asfDisableMaster` | このアカウントのトランザクションの署名にマスターキーを使用することを禁止します。 |
|
||||
| `lsfDisallowIncomingCheck` | `0x08000000` | 134217728 | `asfDisallowIncomingCheck` | このアカウントを宛先とするチェックの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ |
|
||||
| `lsfDisallowIncomingNFTokenOffer` | `0x04000000` | 67108864 | `asfDisallowIncomingNFTokenOffer` | このアカウントを宛先とするNFTokenオファーの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ |
|
||||
| `lsfDisallowIncomingPayChan` | `0x10000000` | 268435456 | `asfDisallowIncomingPayChan` | このアカウントを宛先とするペイメントチャネルの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ |
|
||||
| `lsfDisallowIncomingTrustline` | `0x20000000` | 536870912 | `asfDisallowIncomingTrustline` | このアカウントに対するトラストラインの作成をブロックします。 _([DisallowIncoming Amendment][]により追加されました。)_ |
|
||||
| `lsfDisallowXRP` | `0x00080000` | 524288 | `asfDisallowXRP` | クライアントアプリケーションはこのアカウントにXRPを送金しないでください。`rippled`により強制されるものではありません。 |
|
||||
| `lsfGlobalFreeze` | `0x00400000` | 4194304 | `asfGlobalFreeze` | このアドレスが発行するすべての資産が凍結されます。 |
|
||||
| `lsfNoFreeze` | `0x00200000` | 2097152 | `asfNoFreeze` | このアドレスは、このアドレスに接続しているトラストラインを凍結できません。一度有効にすると、無効にできません。 |
|
||||
| `lsfPasswordSpent` | `0x00010000` | 65536 | (なし) | このアカウントは無料のSetRegularKeyトランザクションを使用しています。 |
|
||||
| `lsfRequireAuth` | `0x00040000` | 262144 | `asfRequireAuth` | このアカウントは、他のユーザーがこのアカウントのトークンを保有することを個別に承認する必要があります。 |
|
||||
| `lsfRequireDestTag` | `0x00020000` | 131072 | `asfRequireDest` | 受信ペイメントには宛先タグの指定が必要です。 |
|
||||
|
||||
## {{currentpage.name}}の準備金
|
||||
|
||||
AccountRootエントリの[準備金](reserves.html)は、特別なAMM AccountRootの場合を除き、現在の基本準備金である{{target.base_reserve}}です。
|
||||
|
||||
このXRPは他人に送ることはできませんが、[トランザクションコスト][]の一部として利用することができます。
|
||||
|
||||
## AccountRoot IDのフォーマット
|
||||
|
||||
AccountRootエントリのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* Accountスペースキー(`0x0061`)
|
||||
* アカウントのAccountID
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
html: amendments-object.html #amendments.html is taken by the concept page
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 有効化されているAmendmentと保留中のAmendmentのステータスを持つシングルトンオブジェクトです。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# Amendments
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L110-L113 "Source")
|
||||
|
||||
`Amendments`オブジェクトタイプには、現在アクティブな[Amendment](amendments.html)のリストが含まれています。各レジャーバージョンには**最大で1つの** `Amendments`オブジェクトが含まれています。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Majorities": [
|
||||
{
|
||||
"Majority": {
|
||||
"Amendment": "1562511F573A19AE9BD103B5D6B9E01B3B46805AEC5D3C4805C902B514399146",
|
||||
"CloseTime": 535589001
|
||||
}
|
||||
}
|
||||
],
|
||||
"Amendments": [
|
||||
"42426C4D4F1009EE67080A9B7965B44656D7714D104A72F9B4369F97ABF044EE",
|
||||
"4C97EBA926031A7CF7D7B36FDE3ED66DDA5421192D63DE53FFB46E43B9DC8373",
|
||||
"6781F8368C4771B83E8B821D88F580202BCB4228075297B19E4FDC5233F1EFDC",
|
||||
"740352F2412A9909880C23A559FCECEDA3BE2126FED62FC7660D628A06927F11"
|
||||
],
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "Amendments",
|
||||
"index": "7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}のフィールド
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|-------------------|-----------|-------------------|-------------|
|
||||
| `Amendments` | 配列 | STI_VECTOR256 | _(省略可)_ 現在有効なすべてのAmendmentの256ビット[Amendment ID](amendments.html)からなる配列。省略されている場合は、有効なAmendmentがありません。 |
|
||||
| `Majorities` | 配列 | STI_ARRAY | _(省略可)_ 過半数の支持を得ているがまだ有効になっていないAmendmentのステータスを記述するオブジェクトの配列。省略されている場合は、過半数の支持を得ている保留中のAmendmentがありません。 |
|
||||
| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Amendmentオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`です。 |
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値が `0x0066`(文字列`Amendments`にマッピング)の場合は、このオブジェクトがXRP Ledgerに対するAmendmentのステータスを記述していることを示します。 |
|
||||
|
||||
`Majorities`フィールドにメンバーが含まれている場合、各メンバーは`Majority`フィールドのみが含まれているオブジェクトです。このフィールドの内容は、以下のフィールドからなるネストオブジェクトです。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|-------------------|-----------|-------------------|-------------|
|
||||
| `Amendment` | 文字列 | Hash256 | 保留中のAmendmentのAmendment ID。 |
|
||||
| `CloseTime` | 数値 | UInt32 | このAmendmentが最後に過半数の支持を得たレジャーバージョンの[`close_time`フィールド](ledger-header.html)。 |
|
||||
|
||||
[Amendmentプロセス](amendments.html#amendmentプロセス)では、80%以上のバリデータが新しいAmendmentを支持してバリデータのコンセンサスが得られると、`tfGotMajority`フラグを指定した[EnableAmendment][]疑似トランザクションを使用してこの新しいAmendmentが`Majorities`フィールドに追加されます。保留中のAmendmentの支持が80%を下回ると、`tfLostMajority`フラグが指定された[EnableAmendment][]疑似トランザクションによりそのAmendmentが`Majorities`配列から削除されます。Amendmentが`Majorities`フィールドに含まれている状態が2週間以上継続している場合、フラグが指定されていない[EnableAmendment][]疑似トランザクションによってそのAmendmentは`Majorities`から削除され、`Amendments`フィールドに恒久的に追加されます。
|
||||
|
||||
**注記:** 実際には、レジャー内のすべてのトランザクションは、その直前のレジャーバージョンで有効になっているAmendmentに基づいて処理されます。Amendmentが有効になったレジャーバージョンにトランザクションを適用する場合、このルールでは中間レジャーは変更されません。レジャーの閉鎖後、適用された新しいAmendmentにより定義される新しいルールが次のレジャーで使用されます。
|
||||
|
||||
## Amendment IDのフォーマット
|
||||
|
||||
`Amendments`オブジェクトIDは、`Amendments`スペースキー(`0x0066`)のハッシュのみです。つまり、レジャーの`Amendments`オブジェクトのIDは常に次の値になります:
|
||||
|
||||
```
|
||||
7DB0788C020F02780A673DC74757F23823FA3014C1866E72CC4CD8B226CD6EF4
|
||||
```
|
||||
|
||||
(`Amendments`レジャーオブジェクトタイプのIDと、個々のAmendmentのAmendment IDを混同しないでください。)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,119 +0,0 @@
|
||||
---
|
||||
html: amm.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 自動マーケットメーカー(AMM)インスタンスの定義と詳細。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMM
|
||||
[[ソース]](https://github.com/xrplf/rippled/blob/c1e4bfb08bcc9f187d794a71d653003a6148dc68/src/ripple/protocol/impl/LedgerFormats.cpp#L265-L275 "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
`AMM`レジャーエントリは、単一の[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを表します。これは常に[特殊な AccountRootエントリ](accountroot.html#ammの特殊なaccountrootエントリ)と対になっています。
|
||||
|
||||
|
||||
## AMM JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"AMMAccount" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
|
||||
"Asset" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"AuctionSlot" : {
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"AuthAccounts" : [
|
||||
{
|
||||
"AuthAccount" : {
|
||||
"Account" : "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"AuthAccount" : {
|
||||
"Account" : "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv"
|
||||
}
|
||||
}
|
||||
],
|
||||
"DiscountedFee" : 0,
|
||||
"Expiration" : 721870180,
|
||||
"Price" : {
|
||||
"currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2",
|
||||
"issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
|
||||
"value" : "0.8696263565463045"
|
||||
}
|
||||
},
|
||||
"Flags" : 0,
|
||||
"LPTokenBalance" : {
|
||||
"currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2",
|
||||
"issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
|
||||
"value" : "71150.53584131501"
|
||||
},
|
||||
"TradingFee" : 600,
|
||||
"VoteSlots" : [
|
||||
{
|
||||
"VoteEntry" : {
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"TradingFee" : 600,
|
||||
"VoteWeight" : 100000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## AMM フィールド
|
||||
|
||||
`AMM`オブジェクトは以下のフィールドを持ちます。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:-----------------|:--------------------|:------------------|:----------|--------------|
|
||||
| `Asset` | オブジェクト | STIssue | はい | このAMMが保有する2つのアセットのうちの1つの定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | このAMMが保有するもう一つの資産の定義。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります。 |
|
||||
| `AMMAccount` | 文字列 | AccountID | はい | このAMMの資産を保有する[特殊なアカウント](accountroot.html#ammの特殊なaccountrootエントリ)のアドレス。 |
|
||||
| `AuctionSlot` | オブジェクト | STObject | いいえ | オークションスロットの現在の所有者の詳細。[オークションスロットオブジェクト](#オークションスロットオブジェクト)形式です。|
|
||||
| `LPTokenBalance` | [通貨額][] | Amount | はい | AMMインスタンスの流動性供給者トークンの発行残高の合計。このトークンの保有者は、保有量に比例してAMMの取引手数料に投票したり、取引手数料の徴収とともに増えていくAMMの資産の一部とトークンを交換したりすることができます。 |
|
||||
| `TradingFee` | 数値 | UInt16 | はい | AMMインスタンスに対する取引に課される手数料のパーセンテージを1/100,000の単位で指定します。最大値は1000で、これは1%の手数料となります。 |
|
||||
| `VoteSlots` | 配列 | STArray | いいえ | プールの取引手数料に関する投票を表す、投票オブジェクトのリスト。|
|
||||
|
||||
### オークションスロットオブジェクト
|
||||
|
||||
`AuctionSlot`フィールドは、以下のネストしたフィールドを持つオブジェクトを含んでいます。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:----------------|:--------------------|:------------------|:----------|:--|
|
||||
| `Account` | 文字列 - アドレス | AccountID | はい | このオークションスロットの現在の所有者。 |
|
||||
| `AuthAccounts` | 配列 | STArray | いいえ | AMMインスタンスに対して取引手数料を割引した価格で取引することを許可された、最大4つの追加アカウントのリスト。 |
|
||||
| `DiscountedFee` | 文字列 | UInt32 | はい | オークションの所有者に請求される取引手数料で、`TradingFee`と同じフォーマットです。デフォルトでは0で、オークションスロットの所有者はAMMの標準的な手数料の代わりに、手数料なしで取引できることを意味します。 |
|
||||
| `Price` | [通貨額][] | Amount | はい | オークションスロットの所有者がこのスロットを落札するために支払った金額(LPトークン)。 |
|
||||
| `Expiration` | 文字列 | UInt32 | はい | このスロットの有効期限が切れる[Rippleエポック以降の経過秒数][]で指定した時刻。 |
|
||||
|
||||
## {{currentpage.name}}の準備金
|
||||
|
||||
`{{currentpage.name}}`エントリは準備金が不要です。
|
||||
|
||||
## AMM フラグ
|
||||
|
||||
`AMM`エントリに定義されているフラグはありません。
|
||||
|
||||
## AMM ID フォーマット
|
||||
|
||||
`AMM`エントリのIDは、以下の値を順に繋げた[SHA-512Half][]です。
|
||||
|
||||
1. `AMM`のスペースキー(`0x0041`)
|
||||
2. 第1アセットの発行者のAccountID。
|
||||
3. 第1トークンの160ビットの通貨コード。
|
||||
4. 第2アセットの発行者のAccountID。
|
||||
5. 第2トークンの160ビットの通貨コード。
|
||||
|
||||
XRPの場合、トークン・発行者ともに全て0を使用します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
html: check.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 送信先が清算して資金にできるCheckです。
|
||||
labels:
|
||||
- Checks
|
||||
---
|
||||
# Check
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L157-L170 "Source")
|
||||
|
||||
_([Checks Amendment][]が必要です)_
|
||||
|
||||
`Check`オブジェクトはCheckを表します。Checkは紙の個人小切手に似ており、送金先はCheckを換金して送金元からの資金を獲得できます。(予定されている支払いは送金元によりすでに承認されていますが、換金されるまでは資金の移動は発生しません。[Escrow](escrow.html)とは異なり、Checkの資金は預託されず、資金不足が原因でCheckの換金が失敗することがあります。)
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
|
||||
"Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
|
||||
"DestinationNode": "0000000000000000",
|
||||
"DestinationTag": 1,
|
||||
"Expiration": 570113521,
|
||||
"Flags": 0,
|
||||
"InvoiceID": "46060241FABCF692D4D934BA2A6C4427CD4279083E38C77CBE642243E43BE291",
|
||||
"LedgerEntryType": "Check",
|
||||
"OwnerNode": "0000000000000000",
|
||||
"PreviousTxnID": "5463C6E08862A1FAE5EDAC12D70ADB16546A1F674930521295BC082494B62924",
|
||||
"PreviousTxnLgrSeq": 6,
|
||||
"SendMax": "100000000",
|
||||
"Sequence": 2,
|
||||
"index": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`Check`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------------|:-----------------|:------------------|:----------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0043`が文字列`Check`にマッピングされている場合は、このオブジェクトがCheckオブジェクトであることを示します。 |
|
||||
| `Account` | 文字列 | Account | Checkの送金元。Checkを換金するとこのアドレスの残高から引き落とされます。 |
|
||||
| `Destination` | 文字列 | Account | Checkの指定受取人。このアドレスだけが[CheckCashトランザクション][]を使用してCheckを換金できます。 |
|
||||
| `Flags` | 数値 | UInt32 | ブール値フラグのビットマップ。Checkにはフラグが定義されていないため、この値は常に`0`です。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][]。 |
|
||||
| `SendMax` | 文字列またはオブジェクト | Amount | このCheckで送金元から引き落とすことができる最大通貨額。Checkの換金が成功すると、送金先に同じ通貨で最大この額までの資金が入金されます。 |
|
||||
| `Sequence` | 数値 | UInt32 | このCheckを作成した[CheckCreateトランザクション][]のシーケンス番号。 |
|
||||
| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 送金先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金先(送金先アドレスのホスティングされている受取人など)を詳しく指定するための任意のタグ。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ 経過後にこのCheckが有効期限切れとみなされる時刻を示します。詳細は[時間の指定][]を参照してください。 |
|
||||
| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子として送金元が指定する任意の256ビットハッシュ。 |
|
||||
| `SourceTag` | 数値 | UInt32 | _(省略可)_ このCheckの送金元(送金元アドレスのホスティングされている返金時の受取人など)を詳しく指定するための任意のタグ。 |
|
||||
|
||||
|
||||
## Check IDのフォーマット
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source")
|
||||
|
||||
`Check`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* Checkスペースキー(`0x0043`)
|
||||
* `Check`オブジェクトを作成した[CheckCreateトランザクション][]の送信者のAccountID。
|
||||
* `Check`オブジェクトを作成した[CheckCreateトランザクション][]のシーケンス番号。
|
||||
CheckCreateトランザクションが[Ticket](tickets.html)を使用する場合は、代わりに`TicketSequence`値を使用します。
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
html: depositpreauth-object.html #depositpreauth.html is taken by the tx type
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 承認を必要とするアカウントへの送金ペイメントの事前承認の記録です。
|
||||
labels:
|
||||
- セキュリティ
|
||||
---
|
||||
# DepositPreauth
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L172-L178 "Source")
|
||||
|
||||
`DepositPreauth`オブジェクトはアカウント間の事前承認を追跡します。[DepositPreauthトランザクション][]によりこれらのオブジェクトが作成されます。
|
||||
|
||||
これは、事前承認を付与したアカウントに[Deposit Authorization](depositauth.html)が不要な場合は、トランザクションの処理に影響しません。その場合、事前承認されたアカウントから、事前承認を付与したアカウントに対して、支払やその他のトランザクションを直接送信できます。事前認証は一方向であり、反対方向の支払には影響しません。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"LedgerEntryType" : "DepositPreauth",
|
||||
"Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8",
|
||||
"Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de",
|
||||
"Flags" : 0,
|
||||
"OwnerNode" : "0000000000000000",
|
||||
"PreviousTxnID" : "3E8964D5A86B3CD6B9ECB33310D4E073D64C865A5B866200AD2B7E29F8326702",
|
||||
"PreviousTxnLgrSeq" : 7,
|
||||
"index" : "4A255038CC3ADCC1A9C91509279B59908251728D0DAADB248FFE297D0F7E068C"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`DepositPreauth`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------------|:-----------------|:------------------|:----------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0070`が文字列`DepositPreauth`にマッピングされている場合は、これがDepositPreauthオブジェクトであることを示します。 |
|
||||
| `Account` | 文字列 | Account | 事前承認を付与したアカウント。(事前認証支払の宛先。) |
|
||||
| `Authorize` | 文字列 | Account | 事前承認を受けたアカウント。(事前認証支払の送金元。) |
|
||||
| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。DepositPreauthオブジェクトにはフラグが定義されていないため、この値は常に`0`です。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 送金元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
|
||||
|
||||
## DepositPreauth IDのフォーマット
|
||||
|
||||
`DepositPreauth`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* DepositPreauthスペースキー(`0x0070`)
|
||||
* このオブジェクトの所有者(このオブジェクトを作成した[DepositPreauthトランザクション][]の送信者、つまり事前承認を付与したユーザー)のAccountID。
|
||||
* 事前承認されたアカウント(このオブジェクトを作成した[DepositPreauthトランザクション][]の`Authorized`フィールド、つまり事前承認を受けたユーザー)のAccountID。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,109 +0,0 @@
|
||||
---
|
||||
html: directorynode.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 他のオブジェクトへのリンクを含みます。
|
||||
labels:
|
||||
- 分散型取引所
|
||||
- データ保持
|
||||
---
|
||||
# DirectoryNode
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L44 "Source")
|
||||
|
||||
`DirectoryNode`オブジェクトタイプは、レジャーの状態ツリー内の他オブジェクトへのリンクのリストを提供します。概念上の1つの _ディレクトリー_ は、1つ以上の各DirectoryNodeオブジェクトが含まれる二重リンクリストの形式になっています。各DirectoryNodeオブジェクトには、他オブジェクトの[ID](ledger-object-ids.html)が最大32個まで含まれています。1番目のオブジェクトはディレクトリーのルートと呼ばれ、ルートオブジェクト以外のオブジェクトはすべて必要に応じて自由に追加または削除できます。
|
||||
|
||||
2種類のディレクトリーがあります。
|
||||
|
||||
* **所有者ディレクトリー**は、アカウントが所有するその他のオブジェクト(`RippleState`オブジェクトや`Offer`オブジェクトなど)をリストします。
|
||||
* **オファーディレクトリー**は、分散型取引所で利用可能なオファーをリストします。1つのオファーディレクトリーには、同一イシュアンスに同一為替レートが設定されているすべてのオファーが含まれます。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
<!-- MULTICODE_BLOCK_START -->
|
||||
|
||||
*オファーディレクトリー*
|
||||
|
||||
```json
|
||||
{
|
||||
"ExchangeRate": "4F069BA8FF484000",
|
||||
"Flags": 0,
|
||||
"Indexes": [
|
||||
"AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD"
|
||||
],
|
||||
"LedgerEntryType": "DirectoryNode",
|
||||
"RootIndex": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000",
|
||||
"TakerGetsCurrency": "0000000000000000000000000000000000000000",
|
||||
"TakerGetsIssuer": "0000000000000000000000000000000000000000",
|
||||
"TakerPaysCurrency": "0000000000000000000000004A50590000000000",
|
||||
"TakerPaysIssuer": "5BBC0F22F61D9224A110650CFE21CC0C4BE13098",
|
||||
"index": "1BBEF97EDE88D40CEE2ADE6FEF121166AFE80D99EBADB01A4F069BA8FF484000"
|
||||
}
|
||||
```
|
||||
|
||||
*所有者ディレクトリー*
|
||||
|
||||
```json
|
||||
{
|
||||
"Flags": 0,
|
||||
"Indexes": [
|
||||
"AD7EAE148287EF12D213A251015F86E6D4BD34B3C4A0A1ED9A17198373F908AD",
|
||||
"E83BBB58949A8303DF07172B16FB8EFBA66B9191F3836EC27A4568ED5997BAC5"
|
||||
],
|
||||
"LedgerEntryType": "DirectoryNode",
|
||||
"Owner": "rpR95n1iFkTqpoy1e878f4Z1pVHVtWKMNQ",
|
||||
"RootIndex": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94",
|
||||
"index": "193C591BF62482468422313F9D3274B5927CA80B4DD3707E42015DD609E39C94"
|
||||
}
|
||||
```
|
||||
|
||||
<!-- MULTICODE_BLOCK_END -->
|
||||
|
||||
## {{currentpage.name}}のフィールド
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|-------------------|-----------|---------------|-------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0064`(文字列`DirectoryNode`にマッピング)の場合は、このオブジェクトがディレクトリーの一部であることを示します。 |
|
||||
| `Flags` | 数値 | UInt32 | このディレクトリーに対して有効になっているブール値フラグのビットマップ。現在、プロトコルではDirectoryNodeオブジェクトのフラグは定義されていません。 |
|
||||
| `RootIndex` | 文字列 | Hash256 | このディレクトリーのルートオブジェクトのID。 |
|
||||
| `Indexes` | 配列 | Vector256 | このディレクトリーの内容: 他のオブジェクトのIDの配列。 |
|
||||
| `IndexNext` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の次のオブジェクトにリンクし、末尾でラップアラウンドします。 |
|
||||
| `IndexPrevious` | 数値 | UInt64 | (省略可)このディレクトリーに複数のページが含まれている場合、このIDはチェーン内の前のオブジェクトにリンクし、先頭でラップアラウンドします。 |
|
||||
| `Owner` | 文字列 | AccountID | (所有者ディレクトリーのみ)このディレクトリー内のオブジェクトを所有するアカウントのアドレス。 |
|
||||
| `ExchangeRate` | 数値 | UInt64 | (オファーディレクトリーのみ)**廃止予定**。使用しないでください。 |
|
||||
| `TakerPaysCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額の通貨コード。 |
|
||||
| `TakerPaysIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerPaysの額のイシュアー。 |
|
||||
| `TakerGetsCurrency` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額の通貨コード。 |
|
||||
| `TakerGetsIssuer` | 文字列 | Hash160 | (オファーディレクトリーのみ)このディレクトリーのオファーのTakerGetsの額のイシュアー。 |
|
||||
|
||||
## ディレクトリー IDのフォーマット
|
||||
|
||||
DirectoryNodeのIDを作成するときには、DirectoryNodeが以下のどのページを表しているかに応じて3種類の方式があります。
|
||||
|
||||
* 所有者ディレクトリーの1番目のページ(ルートとも呼ばれます)
|
||||
* オファーディレクトリーの1番目のページ
|
||||
* いずれかのディレクトリーの以降のページ
|
||||
|
||||
**所有者ディレクトリーの1番目のページ**のIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* 所有者ディレクトリーのスペースキー(`0x004F`)
|
||||
* `Owner`フィールドのAccountID。
|
||||
|
||||
**オファーディレクトリーの1番目のページ**には特殊なIDがあります。このIDの上位192ビットはオーダーブックを定義し、それ以降の64ビットはこのディレクトリー内のオファーの為替レートを定義します。(IDはビッグエンディアンであるため、最初に位置する上位ビットにブックが含まれ、後に位置する下位ビットにクオリティが含まれます。)これにより、最適なオファーから最低のオファーへの順にオーダーブックを反復できます。具体的には、先頭192ビットとは、以下の値がこの順序で連結されている[SHA-512ハーフ][]の先頭192ビットです。
|
||||
|
||||
* ブックディレクトリーのスペースキー(`0x0042`)
|
||||
* `TakerPaysCurrency`の160ビットの通貨コード
|
||||
* `TakerGetsCurrency`の160ビットの通貨コード
|
||||
* `TakerPaysIssuer`のAccountID
|
||||
* `TakerGetsIssuer`のAccountID
|
||||
|
||||
オファーディレクトリーのIDの下位64ビットは、そのディレクトリー内のオファーのTakerPaysの額をTakerGetsの額で割った結果を、XRP Ledgerの内部金額フォーマットの64ビット数値で表したものです。
|
||||
|
||||
**DirectoryNodeがディレクトリーの1番目のページではない場合**(所有者ディレクトリー、オファーディレクトリーのいずれの場合でも)、DirectoryNodeのIDは、以下の値をこの順序で連結した[SHA-512ハーフ][]です。
|
||||
|
||||
* DirectoryNodeスペースキー(`0x0064`)
|
||||
* ルートDirectoryNodeのID
|
||||
* このオブジェクトのページ番号(ルートDirectoryNodeは0であるため、この値は1以上の整数値です。)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,75 +0,0 @@
|
||||
---
|
||||
html: escrow-object.html #escrow.html is taken by the concept page
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 条件付き決済のために保有されているXRPを含みます。
|
||||
labels:
|
||||
- Escrow
|
||||
---
|
||||
# Escrow
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/c6b6d82a754fe449cc533e18659df483c10a5c98/src/ripple/protocol/impl/LedgerFormats.cpp#L90-L101 "Source")
|
||||
|
||||
_([Escrow Amendment][]が必要です。)_
|
||||
|
||||
`Escrow`オブジェクトタイプは、実行または取り消しを待機している保留中のXRP支払を表します。[EscrowCreateトランザクション][]はレジャーに`Escrow`オブジェクトを作成します。[EscrowFinish][]トランザクションまたは[EscrowCancel][]トランザクションが正常に完了すると、オブジェクトが削除されます。``Escrow``オブジェクトに [_Crypto-condition_](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02)が指定されている場合、支払が成功するのは、EscrowFinishトランザクションに指定された対応する _フルフィルメント_ がその条件を満たす場合だけです。(サポートされている唯一のCrypto-conditionタイプは[PREIMAGE-SHA-256](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)です。)`Escrow`オブジェクトに`FinishAfter`時刻が指定されている場合、保留中の支払はその時刻の経過後にのみ実行されます。
|
||||
|
||||
`Escrow`オブジェクトには次の2つのアドレスが関連付けられています。
|
||||
|
||||
- `Escrow`オブジェクトの作成時にXRPを供給する所有者。保留中の支払が取り消されると、XRPは所有者に返金されます。
|
||||
- 保留中の支払が成功するとXRPが支払われる宛先。宛先は所有者と同じにできます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Amount": "10000",
|
||||
"CancelAfter": 545440232,
|
||||
"Condition": "A0258020A82A88B2DF843A54F58772E4A3861866ECDB4157645DD9AE528C1D3AEEDABAB6810120",
|
||||
"Destination": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"DestinationTag": 23480,
|
||||
"FinishAfter": 545354132,
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "Escrow",
|
||||
"OwnerNode": "0000000000000000",
|
||||
"DestinationNode": "0000000000000000",
|
||||
"PreviousTxnID": "C44F2EB84196B9AD820313DBEBA6316A15C9A2D35787579ED172B87A30131DA7",
|
||||
"PreviousTxnLgrSeq": 28991004,
|
||||
"SourceTag": 11747,
|
||||
"index": "DC5F3851D8A1AB622F957761E5963BC5BD439D5C24AC6AD7AC4523F0640244AC"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`Escrow`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|-------------------|-----------|---------------|-------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0075`が文字列`Escrow`にマッピングされている場合は、このオブジェクトが`Escrow`オブジェクトであることを示します。 |
|
||||
| `Account` | 文字列 | AccountID | この保留中の支払の所有者(送金元)のアドレス。これはXRPを供給し、保留中の支払が取り消された場合にXRPが返金されるアカウントです。 |
|
||||
| `Destination` | 文字列 | AccountID | 保留中の支払が成功するとXRPが支払われる宛先アドレス。 |
|
||||
| `Amount` | 文字列 | Amount | 保留中の支払から送金されるXRPの額(drop単位)。 |
|
||||
| `Condition` | 文字列 | VariableLength | _(省略可)_ [PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)(16進数)。指定されている場合、[EscrowFinishトランザクション][]にこの条件を満たすフルフィルメントが含まれている必要があります。 |
|
||||
| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このフィールドがあり、 _かつ_ 指定されている時刻を経過している場合にのみ、保留中の支払を取り消すことができます。具体的には、これは[Rippleエポック以降の経過秒数][]として指定され、前の検証済みレジャーの閉鎖時刻よりも早い場合に「経過した」ことになります。 |
|
||||
| `FinishAfter` | 数値 | UInt32 | _(省略可)_ [Rippleエポック以降の経過秒数][]で示される時刻が経過した後、保留中の支払を完了できます。この時刻より前の[EscrowFinishトランザクション][]はすべて失敗します。(特にこれは、前の検証済みレジャーの閉鎖時刻と比較されます。) |
|
||||
| `Flags` | 数値 | UInt32 | ブールフラグのビットマップ。Escrowタイプにはフラグが定義されていないため、この値は常に`0`です。 |
|
||||
| `SourceTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の支払元(所有者のアドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ この保留中の支払の宛先(宛先アドレスにホスティングされている受取人など)を詳しく指定するための任意のタグ。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。**注記:** このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
|
||||
| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fix1523 Amendment][]を有効にする前に作成されたEscrowでは省略されています。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
|
||||
|
||||
## Escrow IDのフォーマット
|
||||
|
||||
`Escrow`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* Escrowスペースキー(`0x0075`)
|
||||
* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]の送信者のAccountID。
|
||||
* `Escrow`オブジェクトを作成した[EscrowCreateトランザクション][]のシーケンス番号。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,56 +0,0 @@
|
||||
---
|
||||
html: feesettings.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: コンセンサスで承認された基本トランザクションコストと必要準備金があるシングルトンオブジェクトです。
|
||||
labels:
|
||||
- 手数料
|
||||
---
|
||||
# FeeSettings
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L115-L120 "Source")
|
||||
|
||||
`FeeSettings`オブジェク
|
||||
トタイプには、現在の基本[トランザクションコスト](transaction-cost.html)と、[手数料投票](fee-voting.html)により決定する[準備金の額](reserves.html)が含まれています。各レジャーバージョンには**最大で1つの** `FeeSettings`オブジェクトが含まれています。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
`FeeSettings`オブジェクトの例。
|
||||
|
||||
```json
|
||||
{
|
||||
"BaseFee": "000000000000000A",
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "FeeSettings",
|
||||
"ReferenceFeeUnits": 10,
|
||||
"ReserveBase": 20000000,
|
||||
"ReserveIncrement": 5000000,
|
||||
"index": "4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`FeeSettings`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------------|:----------|:------------------|:-----------------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0073`が文字列`FeeSettings`にマッピングされている場合は、このオブジェクトにレジャーの手数料設定が含まれていることを示します。 |
|
||||
| `BaseFee` | 文字列 | UInt64 | 「リファレンストランザクション」の[トランザクションコスト](transaction-cost.html)(XRPのdrop数、16進数) |
|
||||
| `ReferenceFeeUnits` | 数値 | UInt32 | 「手数料単位」に変換された`BaseFee` |
|
||||
| `ReserveBase` | 数値 | UInt32 | XRP Ledgerのアカウントの[基本準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 |
|
||||
| `ReserveIncrement` | 数値 | UInt32 | 所有するオブジェクトごとに増加する[所有者準備金](reserves.html#基本準備金と所有者準備金)(XRPのdrop数)。 |
|
||||
| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 |
|
||||
|
||||
**警告:** このレジャーオブジェクトのJSONフォーマットは一般的ではありません。`BaseFee`、`ReserveBase`、および`ReserveIncrement`はXRPのdrop数を示しますが、通常の[XRP指定][通貨額]フォーマットでは***ありません*** 。
|
||||
|
||||
## FeeSettings IDのフォーマット
|
||||
|
||||
`FeeSettings`オブジェクトIDは、`FeeSettings`スペースキー(`0x0065`)のハッシュのみです。つまり、レジャーの`FeeSettings`オブジェクトのIDは常に次の値になります。
|
||||
|
||||
```
|
||||
4BC50C9B0D8515D3EAAE1E74B29A95804346C491EE1A95BF25E4AAB854A6A651
|
||||
```
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,10 +0,0 @@
|
||||
---
|
||||
html: ledger-entry-types.html
|
||||
parent: ledger-data-formats.html
|
||||
template: pagetype-category.html.jinja
|
||||
labels:
|
||||
- データ保持
|
||||
---
|
||||
# レジャーオブジェクトのタイプ
|
||||
|
||||
{% include '_snippets/ledger-objects-intro.ja.md' %}
|
||||
@@ -1,83 +0,0 @@
|
||||
---
|
||||
html: ledgerhashes.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 履歴検索用に以前のレジャーバージョンのハッシュをリスト表示します。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# LedgerHashes
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/LedgerFormats.cpp#L104-L108 "Source")
|
||||
|
||||
(レジャーバージョンを一意に示す[「ledger hash」文字列データ型][ハッシュ]と混同しないでください。このセクションでは、`LedgerHashes`レジャーオブジェクトタイプについて説明します。)
|
||||
|
||||
`LedgerHashes`オブジェクトタイプには、このレジャーバージョン以前のレジャーの履歴がハッシュの形式で含まれています。このレジャータイプのオブジェクトは、レジャーの閉鎖処理の過程で自動的に変更されます。(このときに限り、レジャーの「状態」ツリーはトランザクションまたは疑似トランザクションなしで変更されます。)`LedgerHashes`オブジェクトの目的は、現行レジャーバージョンのみを指定して過去のレジャーのハッシュを検索できるようにすることです。過去のレジャーバージョンを最大で1回検索できます。
|
||||
|
||||
2種類の`LedgerHashes`オブジェクトがあります。2種類のオブジェクトのフィールドは同一です。各レジャーバージョンの内容は以下のとおりです。
|
||||
|
||||
- 「最近の履歴」の`LedgerHashes`オブジェクト(1つのみ)
|
||||
- 現在のレジャーインデックス(レジャー履歴の長さ)に基づく正確な数の「過去の履歴」の`LedgerHashes`オブジェクト。具体的には、XRP Ledgerでは65536個のレジャーバージョンごとに新しい「過去の履歴」オブジェクトが1つ追加されます。
|
||||
|
||||
**注記:** 例外として、新しいジェネシスレジャーにはレジャー履歴がないため、`LedgerHashes`オブジェクトが含まれていません。
|
||||
|
||||
`LedgerHashes`オブジェクトの例(一部省略しています):
|
||||
|
||||
```json
|
||||
{
|
||||
"LedgerEntryType": "LedgerHashes",
|
||||
"Flags": 0,
|
||||
"FirstLedgerSequence": 2,
|
||||
"LastLedgerSequence": 33872029,
|
||||
"Hashes": [
|
||||
"D638208ADBD04CBB10DE7B645D3AB4BA31489379411A3A347151702B6401AA78",
|
||||
"254D690864E418DDD9BCAC93F41B1F53B1AE693FC5FE667CE40205C322D1BE3B",
|
||||
"A2B31D28905E2DEF926362822BC412B12ABF6942B73B72A32D46ED2ABB7ACCFA",
|
||||
"AB4014846DF818A4B43D6B1686D0DE0644FE711577C5AB6F0B2A21CCEE280140",
|
||||
"3383784E82A8BA45F4DD5EF4EE90A1B2D3B4571317DBAC37B859836ADDE644C1",
|
||||
... (up to 256 ledger hashes) ...
|
||||
],
|
||||
"index": "B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B"
|
||||
}
|
||||
```
|
||||
|
||||
`LedgerHashes`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|-------------------|-----------|-------------------|-------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0068`が文字列`LedgerHashes`にマッピングされている場合は、このオブジェクトがレジャーハッシュのリストであることを示します。 |
|
||||
| `FirstLedgerSequence` | 数値 | UInt32 | **廃止予定** 使用しないでください。(本番環境のXRP Ledgerの「最近のハッシュ」オブジェクトでは、このフィールドの値は`2`です。これは、以前の`rippled`ソフトウェアによるものです。この値は「最近のハッシュ」オブジェクトの更新に伴い持ち越されます。このフィールドは新しい「過去の履歴」オブジェクトには含まれていません。また、新しいバージョンの`rippled`で導入された[並列ネットワーク](parallel-networks.html)の「最近のハッシュ」オブジェクトにも含まれていません。) |
|
||||
| `LastLedgerSequence` | 数値 | UInt32 | このオブジェクトの`Hashes`配列の最後の要素の[レジャーインデックス][]。 |
|
||||
| `Hashes` | 文字列の配列 | STI_VECTOR256 | 最大256個のレジャーハッシュからなる配列。その内容は、これが`LedgerHashes`オブジェクトのどのサブタイプであるかに応じて異なります。 |
|
||||
| `Flags` | 数値 | UInt32 | このオブジェクトのブールフラグのビットマップ。このタイプではフラグは定義されていません。 |
|
||||
|
||||
## 最近の履歴のLedgerHashes
|
||||
|
||||
ジェネシスレジャー以降、各レジャーには「最近の履歴」サブタイプの`LedgerHashes`オブジェクトが1つだけ存在します。このオブジェクトでは、最近の256個のレジャーバージョン(または、レジャー履歴に記録されたレジャーの数が256未満の場合は256未満)を識別するハッシュが`Hashes`配列に含まれています。新しいレジャーを閉鎖するたびに、閉鎖処理の過程の一部で「最近の履歴」オブジェクトが、このレジャーバージョンの生成元である前のレジャーバージョン(このレジャーバージョンの _親レジャー_ )のハッシュで更新されます。ハッシュ数が256を超えると、最も古いハッシュが削除されます。
|
||||
|
||||
特定のレジャーの「最近の履歴」`LedgerHashes`オブジェクトを使用して、その特定のレジャーバージョンより古い256個のレジャーバージョンから、任意のレジャーインデックスのハッシュを取得できます。
|
||||
|
||||
## 過去の履歴のLedgerHashes
|
||||
|
||||
「過去の履歴」の`LedgerHashes`のエントリーには、レジャー履歴全体の256個ごとのレジャーバージョン(フラッグレジャー)のハッシュがまとめて含まれています。フラッグレジャーの子が閉鎖すると、最も新しい「過去の履歴」`LedgerHashes`オブジェクトの`Hashes`配列にフラッグレジャーのハッシュが追加されます。65536個のレジャーごとに、`rippled`は新しい`LedgerHashes`オブジェクトを作成します。これにより、各「過去の履歴」オブジェクトには256個のフラッグレジャーのハッシュが含まれます。
|
||||
|
||||
**注記:** 最も古い「過去の履歴」`LedgerHashes`オブジェクトのエントリー数は255です。これは、ジェネシスレジャーのレジャーインデックスが0ではなく1であるためです。
|
||||
|
||||
「過去の履歴」`LedgerHashes`オブジェクトは[スキップリスト](https://en.wikipedia.org/wiki/Skip_list)として機能するので、任意の履歴フラッグレジャーのハッシュをそのインデックスから取得できます。さらに、フラッグレジャーの「最近の履歴」オブジェクトを使用してその他のレジャーのハッシュを取得できます。
|
||||
|
||||
## LedgerHashes IDのフォーマット
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/Indexes.cpp#L26-L42)
|
||||
|
||||
`LedgerHashes`オブジェクトIDには2種類のフォーマットがあります。これは、オブジェクトのサブタイプが「最近の履歴」と「過去の履歴」のいずれであるかに応じて決まります。
|
||||
|
||||
**「最近の履歴」** `LedgerHashes`オブジェクトのIDは、`LedgerHashes`スペースキー(`0x0073`)の[SHA-512ハーフ][]です。つまり「最近の履歴」のIDは常に`B4979A36CDC7F3D3D5C31A4EAE2AC7D7209DDA877588B9AFC66799692AB0D66B`です。
|
||||
|
||||
**「過去の履歴」**`LedgerHashes`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
- `LedgerHashes`スペースキー(`0x0073`)
|
||||
- オブジェクトの`Hashes`配列のフラッグレジャーの32ビット[レジャーインデックス][]を65536で割った値。
|
||||
|
||||
**ヒント:** 65536で割ることで最上位16ビットが維持されます。これは、「過去の履歴」オブジェクトに含まれているすべてのフラッグレジャーでのみ同一です。この点を踏まえて、フラッグレジャーのハッシュが含まれている`LedgerHashes`オブジェクトを検索できます。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,67 +0,0 @@
|
||||
---
|
||||
html: negativeunl.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 現在オフラインと思われるバリデーターの一覧を表します。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# NegativeUNL
|
||||
|
||||
_([NegativeUNL amendment][]により追加されました。)_
|
||||
|
||||
`NegativeUNL`オブジェクトタイプは、[ネガティブUNL](negative-unl.html)の現在の状態、つまり現在オフラインであると考えられる信頼できるバリデーションのリストを含んでいます。
|
||||
|
||||
各台帳のバージョンには、**最大1つの**`NegativeUNL`オブジェクトが含まれます。無効になっているか、無効になる予定のバリデータがない場合、台帳には`NegativeUNL`オブジェクトは存在しません。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"DisabledValidators": [
|
||||
{
|
||||
"DisabledValidator": {
|
||||
"FirstLedgerSequence": 1609728,
|
||||
"PublicKey": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE"
|
||||
}
|
||||
}
|
||||
],
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "NegativeUNL",
|
||||
"index": "2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
`NegativeUNL`オブジェクトは、以下のフィールドを持ちます。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:----------------------|:---------|:-----------|:------|:---------------------|
|
||||
| `DisabledValidators` | 配列 | Array | いいえ | `DisabledValidator`オブジェクト(下記参照)は、現在無効になっている信頼できるバリデータを表すリストです。 |
|
||||
| `Flags` | 数値 | UInt32 | はい | 真偽値フラグのビットマップ。NegativeUNLオブジェクトタイプにはフラグが定義されていないため、この値は常に`0`となります。 |
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | `0x004E`は文字列`NegativeUNL`に対応し、このオブジェクトがNegativeUNLであることを意味します。 |
|
||||
| `ValidatorToDisable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで無効化される予定の信頼できるバリデータの公開鍵を表します。 |
|
||||
| `ValidatorToReEnable` | 文字列 | Blob | いいえ | 次回のフラグレジャーで再有効化される予定のネガティブUNLの信頼できるバリデーターの公開鍵を表します。 |
|
||||
|
||||
## DisabledValidatorオブジェクト
|
||||
|
||||
各`DisabledValidator`オブジェクトは無効化されたバリデータ一つ分を表します。JSONでは、`DisabledValidator`オブジェクトは`DisabledValidator`という1つのフィールドを持ち、そのオブジェクトは以下のフィールドを持つ別のオブジェクトを含んでいます。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][]| 説明 |
|
||||
|:----------------------|:---------|:----------|:----------------------|
|
||||
| `FirstLedgerSequence` | 数値 | UInt32 | バリデータがネガティブUNLに追加されたときの[レジャーインデックス][]を表します。 |
|
||||
| `PublicKey` | 文字列 | Blob | バリデータのマスター公開鍵を16進数で表します。 |
|
||||
|
||||
|
||||
|
||||
## NegativeUNL IDのフォーマット
|
||||
|
||||
`NegativeUNL`オブジェクトのIDは、`NegativeUNL`のスペースキー(`0x004E`)のみのハッシュです。つまり、台帳上の`NegativeUNL`オブジェクトのIDは常に次のようになります。
|
||||
|
||||
```
|
||||
2E8A59AA9D3B5B186B0B9E0F62E6C02587CA74A4D778938E957B6357D364B244
|
||||
```
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,89 +0,0 @@
|
||||
---
|
||||
html: nftokenoffer.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: NFTを売買するオファーを作成する。
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
---
|
||||
# NFTokenOffer
|
||||
|
||||
`lsfTransferable`フラグが設定されているトークンは、オファーを使って参加者間で転送することができます。`NFTokenOffer`オブジェクトは`NFToken`オブジェクトの購入、売却、または譲渡のオファーを表します。`NFToken`の所有者は`NFTokenCreateOffer`を使用して売買を行うことができます。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Amount": "1000000",
|
||||
"Flags": 1,
|
||||
"LedgerEntryType": "NFTokenOffer",
|
||||
"NFTokenID": "00081B5825A08C22787716FA031B432EBBC1B101BB54875F0002D2A400000000",
|
||||
"NFTokenOfferNode": "0",
|
||||
"Owner": "rhRxL3MNvuKEjWjL7TBbZSDacb8PmzAd7m",
|
||||
"OwnerNode": "17",
|
||||
"PreviousTxnID": "BFA9BE27383FA315651E26FDE1FA30815C5A5D0544EE10EC33D3E92532993769",
|
||||
"PreviousTxnLgrSeq": 75443565,
|
||||
"index": "AEBABA4FAC212BF28E0F9A9C3788A47B085557EC5D1429E7A8266FB859C863B3"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
### `NFTokenOffer`のフィールド
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:--------------------|:------------|:------------------|:------|:-----------|
|
||||
| `Amount` | [通貨額][] | AMOUNT | はい | NFTokenに対して見込まれる、または提示される金額です。トークンに`lsfOnlyXRP`フラグが設定されている場合、金額はXRPで指定する必要があります。XRP以外の資産を指定する売却オファーは、0以外の金額を指定する必要があります。XRPを指定する売却オファーは、`無料`にすることができます(つまり、このフィールドは`"0"`とすることができます)。 |
|
||||
| `Destination` | 文字列 | AccountID | いいえ | このオファーの対象となるAccountID。存在する場合、そのアカウントのみがオファーを受け入れることができます。 |
|
||||
| `Expiration` | 数値 | UInt32 | いいえ | オファーが有効でなくなる時刻。値は、リップルエポックからの秒数です。 |
|
||||
| `Flags` | 数値 | UInt32 | はい | このオブジェクトに関連付けられたフラグのセットで、様々なオプションや設定を指定するために使用されます。フラグは、以下の表に示すとおりです。 |
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトの種類を示します(0x0074)。 |
|
||||
| `NFTokenID` | 文字列 | Hash256 | はい | このオファーが参照するNFTokenオブジェクトのNFTokenID。 |
|
||||
| `NFTokenOfferNode` | 文字列 | UInt64 | いいえ | トークン購入または売却のオファーディレクトリの中で、このトークンが記録されている内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
|
||||
| `Owner` | 文字列 | AccountID | はい | オファーの作成者であり、所有者であるアカウント。NFTokenの現在の所有者のみがNFTokenの売却オファーを作成できますが、NFTokenの購入オファーはどのアカウントでも作成できます。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | いいえ | このトークンが記録されているオーナーディレクトリ内のページを示す、内部的な台帳です。このフィールドを使用することで、オファーを効率的に削除することができます。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | はい | このオブジェクトを最も最近更新したトランザクションの識別ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | はい | このオブジェクトを最も最近更新したトランザクションを含むレジャーのインデックス。 |
|
||||
|
||||
|
||||
|
||||
#### NFTokenOffer フラグ
|
||||
|
||||
|フラグ名 |16進数値 |10進数値|説明 |
|
||||
|------------------|--------------|------|---------|
|
||||
| `lsfSellNFToken `| `0x00000001` | 1 | 有効な場合、オファーは売却オファーとなります。そうでない場合、オファーは購入オファーとなります。 |
|
||||
|
||||
## `NFTokenOffer`トランザクション
|
||||
|
||||
[代替可能トークンに対するOffer](offers.html)とは異なり、`NFTokenOffer`はオーダーブックに保存されず、自動的にマッチングされたり約定されたりすることはありません。買い手は売り手により提示されてた`NFTokenOffer`の受け入れを明示的に選択する必要があります。同様に、売り手は自分が所有する`NFToken`オブジェクトを買いたいと申し出た買い手の`NFTokenOffer`を受け入れることを明示的に選択しなければなりません。
|
||||
|
||||
`NFToken`の取引のためのトランザクションは3つあります。
|
||||
|
||||
- [NFTokenCreateOffer][]
|
||||
- [NFTokenCancelOffer][]
|
||||
- [NFTokenAcceptOffer][]
|
||||
|
||||
|
||||
### `NFTokenOffer`オブジェクトの検索
|
||||
|
||||
各`NFToken`は、2つの[ディレクトリ](directorynode.html)があります。1つはトークンを購入するためのオファー、もう1つはトークンを売却するためのオファーが含まれています。マーケットプレイスやその他のクライアントアプリケーションは、ユーザに対し`NFToken`オブジェクトの取引オファーを提示したり、自動的にマッチングすることができます。
|
||||
|
||||
|
||||
### `NFTokenOffer`の準備金
|
||||
|
||||
各`NFTokenOffer`オブジェクトは、オファーを出すアカウントに1つ分の準備金の増額を要求します。執筆時点では、準備金の増分は2XRPです。この準備金は、オファーをキャンセルすることで取り戻すことができます。
|
||||
|
||||
|
||||
### `NFTokenOfferID`のフォーマット
|
||||
|
||||
`NFTokenOffer`オブジェクトのユニークID(`NFTokenOfferID`)は、以下の値を順番に結合したものです。
|
||||
|
||||
* `NFTokenOffer`のスペースキー、`0x0074`
|
||||
* オファーを出すアカウントの`AccountID`
|
||||
* `NFTokenCreateOffer`トランザクションが生成する`NFTokenCreateOffer`の`Sequence`(または`Ticket`)
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,106 +0,0 @@
|
||||
---
|
||||
html: nftokenpage.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: NFTokenを記録するためのレジャー構造。
|
||||
labels:
|
||||
- Non-fungible Tokens, NFTs
|
||||
---
|
||||
# NFTokenPage
|
||||
|
||||
`NFTokenPage` オブジェクトは、同じアカウントが所有する `NFToken` オブジェクトのコレクションを表します。一つのアカウントは複数の `NFTokenPage` 型のレジャーオブジェクトを持つことができ、それらは双方向リストを形成します。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"LedgerEntryType": "NFTokenPage",
|
||||
"PreviousTokenPage":
|
||||
"598EDFD7CF73460FB8C695d6a9397E907378C8A841F7204C793DCBEF5406",
|
||||
"PreviousTokenNext":
|
||||
"598EDFD7CF73460FB8C695d6a9397E9073781BA3B78198904F659AAA252A",
|
||||
"PreviousTxnID":
|
||||
"95C8761B22894E328646F7A70035E9DFBECC90EDD83E43B7B973F626D21A0822",
|
||||
"PreviousTxnLgrSeq":
|
||||
42891441,
|
||||
"NFTokens": [
|
||||
{
|
||||
"NFTokenID":
|
||||
"000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65",
|
||||
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469"
|
||||
},
|
||||
/* 更に多くのオブジェクト */
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
ページのサイズを最小にし、ストレージを最適化するために、`Owner`フィールドは存在しません。なぜなら、それはオブジェクトのレジャー識別子の一部としてエンコードされているからです。
|
||||
|
||||
|
||||
## {{currentpage.name}} フィールド
|
||||
|
||||
`NFTokenPage` オブジェクトは、以下の必須フィールドと任意フィールドを持つことができます。
|
||||
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:--------------------|:----------|:-----------|:----------|:------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | はい | レジャーオブジェクトのタイプを識別文字列です。予約されているレジャーの種類は、0x0050 です。|
|
||||
| `NextPageMin` | 文字列 | Hash256 | いいえ | 次のページの位置情報(もしあれば)。このフィールドの詳細および使用方法については、NFTokenPageID の構築についての説明以降に記載しています。|
|
||||
| `NFTokens` | オブジェクト | TOKEN | はい | この NFTokenPage オブジェクトに含まれる NFToken オブジェクトのコレクション。本仕様では、1 ページあたり 32 の NFToken オブジェクトを上限としています。オブジェクトは、TokenID をソート パラメータとして使用して、低いものから高いものへとソートされた順序で格納されています。|
|
||||
| `PreviousPageMin` | 文字列 | Hash256 | いいえ | 前のページの位置情報(もしあれば)。このフィールドの詳細および使用方法については、NFTokenPageID の構築についての説明以降に記載しています。|
|
||||
| `PreviousTxnID` | 文字列 | HASH256 | いいえ | この NFTokenPage オブジェクトを最も最近変更したトランザクションのトランザクション ID の情報を示します。|
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | いいえ | この NFTokenPage オブジェクトを最も最近変更したトランザクションを含むレジャーのシーケンスを示します。|
|
||||
|
||||
|
||||
### TokenPage ID のフォーマット
|
||||
|
||||
`NFTokenPage` 識別子は、`NFTokens` に最適で、より効率的なページング構造を採用できるように特別に構築されています。
|
||||
|
||||
`NFTokenPage` の識別子は、そのページの所有者の 160 ビットの `AccountID` と、そのページに特定の `NFTokenID` が含まれるかどうかを示す 96 ビットの値を連結して得られます。
|
||||
|
||||
具体的には、関数 `low96(x)` が 256 ビットの値の下位 96 ビットを返すと仮定すると、`NFTokenID` `A` の NFT は `NFTokenPageID` `B` のページに含めることができるのは `low96(A) >= low96(B)` の場合のみとなります。
|
||||
|
||||
例えば、`000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65`というIDを持つ先ほどのNFTに`low96`関数を適用すると、`42540EE208C3098E00000D65`が返されます。
|
||||
|
||||
この不思議な構造は、SHAMap の構造を利用して、`NFTokenPages` の二重リンクされたリストを反復することなく、個々の `NFToken` オブジェクトを効率的に検索できるようにするものです。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの検索
|
||||
|
||||
特定の `NFToken` を検索するには、上記のように所有者のアカウントとトークンの `NFTokenID` を使用して `NFTokenPageID` を計算します。識別子がその値以下であるレジャーの項目を検索します。そのエントリーが存在しないか、`NFTokenPage` でない場合、`NFToken` は与えられたアカウントによって保持されていません。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの追加
|
||||
|
||||
`NFToken` オブジェクトを追加するには、そのオブジェクトが含まれるべき `NFTokenPage` を見つけ(`NFToken` オブジェクトを検索するのと同じテクニックを使用します)、そのページに追加します。`NFToken` を追加した後にページがオーバーフローした場合は、 `next` と `previous` ページを探し (もしあれば)、その 3 ページでバランスをとりながら、必要に応じて新しいページを挿入します。
|
||||
|
||||
|
||||
### `NFToken` オブジェクトの削除
|
||||
|
||||
`NFToken` は同じ手法で削除することもできます。ページ内の `NFToken` の数がある閾値を下回ると、サーバーはそのページを前後のページと統合して準備金を取り戻そうとします。
|
||||
|
||||
|
||||
### `NFTokenPage` オブジェクトの準備金
|
||||
|
||||
`NFTokenPage`ごとに、所有者アカウントに追加で準備金の費用がかかります。つまり、複数のNFTを保有するアカウントでは、NFTあたりの _実効_ 準備金コストは _R_ /32( _R_ は準備金増分)と低くすることが可能です。
|
||||
|
||||
|
||||
### 準備金の実例
|
||||
|
||||
増分準備金の値は、この記事の執筆時点では 2 XRP です。下の表は、あるページが1、8、16、32のNFTを含む場合、トークンごとの _実効_準備金がどの程度になるかを示しています。
|
||||
|
||||
|
||||
| 増分準備金 | 1 NFToken | 8 NFTokens | 16 NFTokens | 32 NFTokens | 64 NFTokens |
|
||||
|:--------------------|:----------|:-----------|:------------|:------------|:------------|
|
||||
| 5 XRP | 5 XRP | 0.625 XRP | 0.3125 XRP | 0.15625 XRP | 0.07812 XRP |
|
||||
| 2 XRP | 2 XRP | 0.25 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP |
|
||||
| 1 XRP | 1 XRP | 0.125 XRP | 0.0625 XRP | 0.03125 XRP | 0.01562 XRP |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,83 +0,0 @@
|
||||
---
|
||||
html: offer.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 通貨取引を行う注文
|
||||
labels:
|
||||
- 分散型取引所
|
||||
---
|
||||
# Offer
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L57 "Source")
|
||||
|
||||
台帳の`Offer`項目は、XRP Ledgerの[分散型取引所](decentralized-exchange.html)で通貨を交換する[オファー](offers.html)を表しています。(金融ではより伝統的に _オーダー_ として知られています)。[OfferCreateトランザクション][]は台帳にある他のOfferを全額約定できない場合、台帳に`Offer`項目を作成します。
|
||||
|
||||
オファーがネットワーク上の他の活動によって資金不足になることはありますが、元帳には残ります。トランザクションを処理する際、ネットワークはトランザクションが見つけた資金不足のオファーを自動的に削除します。( _トランザクションのみ_ が台帳の状態を変更できるため、削除が行われないと資金不足のオファーが残ってしまいます。)
|
||||
|
||||
詳細は、[オファー](offers.html)を参照してください。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```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"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}のフィールド
|
||||
|
||||
`Offer`オブジェクトのフィールドを次に示します。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|-------------------|-----------|-----------|------|-------|
|
||||
| `Account` | 文字列 | AccountID | はい | このオファーを所有するアカウントのアドレス。 |
|
||||
| `BookDirectory` | 文字列 | Hash256 | はい | このオファーにリンクしている[オファーディレクトリー](directorynode.html)の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のフラグ
|
||||
|
||||
[OfferCreateトランザクション][]でOfferオブジェクトを作成するときに有効化または無効化できる各種オプションがあります。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 **`lsf`** で始まる名前が付いています。
|
||||
|
||||
`Offer`オブジェクトには以下のフラグ値を指定できます。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 対応する[OfferCreateフラグ](offercreate.html#offercreateフラグ) | 説明 |
|
||||
|-----------|-----------|---------------|-------------|------------------------|
|
||||
| lsfPassive | `0x00010000` | 65536 | tfPassive | オブジェクトはパッシブオファーとして発注されています。レジャー内のオブジェクトには影響しません。 |
|
||||
| lsfSell | `0x00020000` | 131072 | tfSell | オブジェクトは売却オファーとして発注されています。これは台帳にあるオブジェクトには何の影響もありません (`tfSell`は指定したレートよりも良いレートが存在する場合にのみ意味を持ち、台帳にこのフラグを持ったオブジェクトが入ることはありません。)。 |
|
||||
|
||||
## オファーIDのフォーマット
|
||||
|
||||
`Offer`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* Offerスペースキー(`0x006F`)
|
||||
* オファーを行うアカウントのAccountID
|
||||
* オファーを作成した[OfferCreateトランザクション][]のシーケンス番号
|
||||
|
||||
OfferCreateトランザクションが[Ticket](tickets.html)を使用した場合、代わりに`TicketSequence`値を使用します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,109 +0,0 @@
|
||||
---
|
||||
html: paychannel.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 非同期XRP支払い用のチャネルです。
|
||||
labels:
|
||||
- Payment Channel
|
||||
---
|
||||
# PayChannel
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/c0a0b79d2d483b318ce1d82e526bd53df83a4a2c/src/ripple/protocol/impl/LedgerFormats.cpp#L180-L198 "Source")
|
||||
|
||||
_([PayChan Amendment][]が必要です。)_
|
||||
|
||||
`PayChannel`オブジェクトタイプは、Payment Channelを表します。Payment Channelにより、レジャー外で少額のXRPを迅速に支払うことができます。このような支払は、コンセンサスレジャーにより後日調整できます。Payment Channelは、このChannelが閉鎖されるまでは、特定の宛先アドレスに対してのみ支払可能なXRPの残高を保有します。Channelの閉鎖時に、未使用のXRPはChannelの所有者(Channelを作成し、資金を供給した支払元アドレス)に返金されます。
|
||||
|
||||
[PaymentChannelCreateトランザクション][]タイプは、`PayChannel`オブジェクトを作成します。[PaymentChannelFundトランザクション][]タイプと[PaymentChannelClaimトランザクション][]タイプは、既存の`PayChannel`オブジェクトを変更します。
|
||||
|
||||
有効期限切れになったPayment Channelは、まずレジャーに残ります。これは、レジャーの内容を変更できるのは新しいトランザクションだけであるためです。有効期限の経過後にトランザクションがPayment Channelにアクセスすると、トランザクション処理によりそのPayment Channelは自動的に閉鎖されます。有効期限切れのChannelを閉鎖して未使用のXRPを所有者に返金するには、一部のアドレスがそのChannelにアクセスする新しいPaymentChannelClaimトランザクションまたはPaymentChannelFundトランザクションを送信する必要があります。
|
||||
|
||||
Payment Channelの使用例については、[Payment Channelのチュートリアル](use-payment-channels.html)を参照してください。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rBqb89MRQJnMPq8wTwEbtz4kvxrEDfcYvt",
|
||||
"Destination": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Amount": "4325800",
|
||||
"Balance": "2323423",
|
||||
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A",
|
||||
"SettleDelay": 3600,
|
||||
"Expiration": 536027313,
|
||||
"CancelAfter": 536891313,
|
||||
"SourceTag": 0,
|
||||
"DestinationTag": 1002341,
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "PayChannel",
|
||||
"OwnerNode": "0000000000000000",
|
||||
"PreviousTxnID": "F0AB71E777B2DA54B86231E19B82554EF1F8211F92ECA473121C655BFC5329BF",
|
||||
"PreviousTxnLgrSeq": 14524914,
|
||||
"index": "96F76F27D8A327FC48753167EC04A46AA0E382E6F57F32FD12274144D00F1797"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`PayChannel`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------------|:----------|:------------------|:-----------------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0078`が文字列`PayChannel`にマッピングされている場合は、このオブジェクトがPayment Channelオブジェクトであることを示します。 |
|
||||
| `Account` | 文字列 | AccountID | このPayment Channelを所有する支払元アドレス。これは、Channelを作成したトランザクションの送信側アドレスから取得されます。 |
|
||||
| `Destination` | 文字列 | AccountID | このPayment Channelの宛先アドレス。Payment Channelが開いている場合、このアドレスは、このChannelからXRPを受領できる唯一のアドレスです。これは、Channelを作成したトランザクションの`Destination`フィールドから取得されます。 |
|
||||
| `Amount` | 文字列 | Amount | このChannelに割り当てられている [XRP、drop単位][]の合計です。これには宛先アドレスに支払われたXRPも含まれます。最初にChannelを作成したトランザクションにより設定され、支払元アドレスがPaymentChannelFundトランザクションを送信する場合に増加できます。 |
|
||||
| `Balance` | 文字列 | Amount | このChannelがすでに支払った[XRP、drop単位][]の合計。この値と`Amount`フィールドの差異は、PaymentChannelClaimトランザクションの宛先アドレスに対して支払うことができるXRPの量を示します。Channelが閉鎖すると、残りの差額は支払元アドレスに返されます。 |
|
||||
| `PublicKey` | 文字列 | PubKey | このChannelに対するクレームの署名に使用できるキーペアの公開鍵(16進数)。有効なsecp256k1公開鍵またはEd25519公開鍵を指定できます。Channelを作成したトランザクションによって設定されます。Channelに対するクレームに使用される公開鍵と一致している必要があります。Channelの支払元アドレスは、署名付きクレームなしでこのChannelから宛先にXRPを送金することもできます。 |
|
||||
| `SettleDelay` | 数値 | UInt32 | ChannelにXRPがまだある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する秒数。値が小さい場合、支払元アドレスがChannelの閉鎖を要求した後で、宛先アドレスが未処理のクレームを精算できる時間が短くなります。32ビットの符号なし整数に収まる値(0~2^32-1)であれば任意の値を指定できます。これは、Channelを作成するトランザクションにより設定されます。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 支払元アドレスの所有者のディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
| `Flags` | 数値 | UInt32 | このPayment Channelに対して有効になっているブールフラグのビットマップ。現在、プロトコルでは`PayChannel` オブジェクトのフラグは定義されていません。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ このPayment Channelの変更可能な有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。詳細は、[Channel有効期限の設定](#channel有効期限の設定)を参照してください。 |
|
||||
| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このPayment Channelの不変の有効期限([Rippleエポック以降の経過秒数][])。この値が指定されており、前のレジャーの[`close_time`フィールド](ledger-header.html)よりも小さい場合、Channelは有効期限切れです。これは、Channelを作成するトランザクションによりオプションで設定され、変更できません。 |
|
||||
| `SourceTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの支払元(所有者のアドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 |
|
||||
| `DestinationNode` | 文字列 | UInt64 | _(省略可)_ 宛先の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。[fixPayChanRecipientOwnerDir Amendment][]を有効にする前に作成されたPayment Channelでは省略されています。 |
|
||||
|
||||
|
||||
## Channel有効期限の設定
|
||||
|
||||
Payment Channelの`Expiration`フィールドは、`CancelAfter`フィールドが表す不変の有効期限とは対照的な変更可能な有効期限です。Channelの有効期限は常に、前のレジャーの[`close_time`フィールド](ledger-header.html)を基準にしているものとみなされます。`PayChannel`オブジェクトの作成時には、`Expiration`フィールドが省略されます。`PayChannel`オブジェクトの`Expiration`フィールドはさまざまな方法で更新できます。要約すると、Channelが最初の閉鎖試行操作の後、`SettleDelay`秒以上常に開いたままであれば、Channelの支払元アドレスはChannelの`Expiration`を自由に設定できます。
|
||||
|
||||
### 支払元アドレス
|
||||
|
||||
支払元アドレスは、PaymentChannelFundトランザクションタイプを使用して直接`Expiration`を設定できます。新しい値は、以下の早い方の値よりも前であってはなりません。
|
||||
|
||||
- 現在の`Expiration`値(設定されている場合)
|
||||
- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値
|
||||
|
||||
つまり、有効期限がすでに設定されている場合、支払元アドレスは常に`Expiration`を遅らせることができます。支払元は、設定する新しい値が`SettleDelay`の秒数以上の値である限り、`Expiration`を早い値にするか、または`Expiration`がまだ設定されていない場合にこれを設定することができます。支払元アドレスが無効な`Expiration`の日付を設定しようとすると、トランザクションはエラーコード`temBAD_EXPIRATION`で失敗します。
|
||||
|
||||
支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfClose`フラグを使用して`Expiration`を設定することもできます。このフラグが有効な場合、レジャーは自動的に`Expiration`を以下のいずれかの早い方の値に設定します。
|
||||
|
||||
- 現在の`Expiration`値(設定されている場合)
|
||||
- 前のレジャーの閉鎖時刻にChannelの`SettleDelay`を加算した値
|
||||
|
||||
支払元アドレスはPaymentChannelClaimトランザクションタイプの`tfRenew`フラグを使用して`Expiration`を削除できます。
|
||||
|
||||
### 宛先アドレス
|
||||
|
||||
宛先アドレスは `Expiration`フィールドを設定できません。ただし、宛先アドレスはPaymentChannelClaimの`tfClose`フラグを使用してChannelを即時に閉鎖できます。
|
||||
|
||||
### その他のアドレス
|
||||
|
||||
その他のアドレスが`Expiration`フィールドを設定しようとすると、トランザクションはエラーコード`tecNO_PERMISSION`で失敗します。ただし、Channelがすでに有効期限切れになっている場合、このトランザクションでChannelが閉鎖し、その結果は`tesSUCCESS`になります。
|
||||
|
||||
|
||||
## PayChannel IDのフォーマット
|
||||
|
||||
`PayChannel`オブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* PayChannelスペースキー(`0x0078`)
|
||||
* 支払元アカウントのAccountID
|
||||
* 宛先アカウントのAccountID
|
||||
* Channelを作成したトランザクションのシーケンス番号
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,116 +0,0 @@
|
||||
---
|
||||
html: ripplestate.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: 2つのアカウントをリンクし、それらのアカウント間の特定の通貨の残高を追跡します。トラストラインのコンセプトは、このオブジェクトタイプを抽象化することです。
|
||||
labels:
|
||||
- トークン
|
||||
---
|
||||
# RippleState
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/5d2d88209f1732a0f8d592012094e345cbe3e675/src/ripple/protocol/impl/LedgerFormats.cpp#L70 "Source")
|
||||
|
||||
`RippleState`オブジェクトタイプは、1つの通貨で2つのアカウントを接続します。概念的には`RippleState`オブジェクトは、アカウント間の2つの _トラストライン_ を表し、各アカウント側から1つずつ確立されます。各アカウントの`RippleState`オブジェクト設定は、各アカウント側で変更できますが、残高については単一の値を両アカウント間で共有します。完全にデフォルト状態のトラストラインは、存在しないトラストラインと同様に見なされます。このため`rippled` は、プロパティがすべてデフォルトである`RippleState`オブジェクトを削除します。
|
||||
|
||||
XRP Ledgerではどのアカウントにも権限がないため、`RippleState`オブジェクトはアカウントアドレスを数値順にソートし、正規の形式になるようにします。数値順の低いアドレスは「低位アカウント」と見なされ、数値順の高いアドレスは「高位アカウント」と見なされます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Balance": {
|
||||
"currency": "USD",
|
||||
"issuer": "rrrrrrrrrrrrrrrrrrrrBZbvji",
|
||||
"value": "-10"
|
||||
},
|
||||
"Flags": 393216,
|
||||
"HighLimit": {
|
||||
"currency": "USD",
|
||||
"issuer": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"value": "110"
|
||||
},
|
||||
"HighNode": "0000000000000000",
|
||||
"LedgerEntryType": "RippleState",
|
||||
"LowLimit": {
|
||||
"currency": "USD",
|
||||
"issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"value": "0"
|
||||
},
|
||||
"LowNode": "0000000000000000",
|
||||
"PreviousTxnID": "E3FE6EA3D48F0C2B639448020EA4F03D4F4F8FFDB243A852A0F59177921B4879",
|
||||
"PreviousTxnLgrSeq": 14090896,
|
||||
"index": "9CA88CDEDFF9252B3DE183CE35B038F57282BC9503CDFA1923EF9A95DF0D6F7B"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`RippleState`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | 内部の型 | 説明 |
|
||||
|-----------------|-----------|---------------|-------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値`0x0072`が文字列`RippleState`にマッピングされている場合は、このオブジェクトがRippleStateオブジェクトであることを示します。 |
|
||||
| `Flags` | 数値 | UInt32 | このオブジェクトに対して有効になっているブールオプションのビットマップ。 |
|
||||
| `Balance` | オブジェクト | Amount | 低位アカウントからみたトラストラインの残高。残高がマイナスの場合、低位アカウントから高位アカウントに対して通貨が発行されています。この場合のイシュアーは常に中立値[ACCOUNT_ONE](addresses.html#特別なアドレス)に設定されます。 |
|
||||
| `LowLimit` | オブジェクト | Amount | 低位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した低位アカウントのアドレスです。 |
|
||||
| `HighLimit` | オブジェクト | Amount | 高位アカウントがトラストラインに設定した限度額。`issuer`は、この限度額を設定した高位アカウントのアドレスです。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
| `LowNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)低位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
|
||||
| `HighNode` | 文字列 | UInt64 | (一部の履歴レジャーでは省略されます)高位アカウントの所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
|
||||
| `LowQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityIn:1,000,000,000)で整数として低位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 |
|
||||
| `LowQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(LowQualityOut:1,000,000,000)で整数として低位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 |
|
||||
| `HighQualityIn` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityIn:1,000,000,000)で整数として高位アカウントにより設定された着信品質。値が0の場合は10億または額面価格と同等です。 |
|
||||
| `HighQualityOut` | 数値 | UInt32 | (省略可)暗黙の比率(HighQualityOut:1,000,000,000)で整数として高位アカウントにより設定された発信品質。値が0の場合は10億または額面価格と同等です。 |
|
||||
|
||||
## RippleStateのフラグ
|
||||
|
||||
トラストラインに対して有効化または無効化できる各種オプションがあります。これらのオプションを変更するには、[TrustSetトランザクション][]を使用します。レジャーではフラグはバイナリ値として表され、これらのバイナリ値はビットOR演算と組み合わせることができます。レジャーでのフラグのビット値は、トランザクションでこれらのフラグを有効または無効にするために使用する値とは異なります。レジャーのフラグには、 _lsf_ で始まる名前が付いています。
|
||||
|
||||
RippleStateオブジェクトには以下のフラグ値を指定できます。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 説明 | 対応する[TrustSetフラグ](trustset.html#trustsetのフラグ) |
|
||||
|-----------|-----------|---------------|-------------|------------------------|
|
||||
| lsfLowReserve | 0x00010000 | 65536 | このRippleStateオブジェクトは[低位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) |
|
||||
| lsfHighReserve | 0x00020000 |131072 | このRippleStateオブジェクトは[高位アカウント所有者の準備金に資金を供給します](#所有者の準備金への資金供給)。 | (なし) |
|
||||
| lsfLowAuth | 0x00040000 | 262144 | 低位アカウントにより、高位アカウントが低位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth |
|
||||
| lsfHighAuth | 0x00080000 | 524288 | 高位アカウントにより、低位アカウントが高位アカウントのイシュアンスを保有することが承認されています。 | tfSetAuth |
|
||||
| lsfLowNoRipple | 0x00100000 | 1048576 | 低位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple |
|
||||
| lsfHighNoRipple | 0x00200000 | 2097152 | 高位アカウントで、このトラストラインから、同じアカウントのNoRippleフラグが設定されている他のトラストラインへの[Ripplingが無効化されています](rippling.html)。 | tfSetNoRipple |
|
||||
| lsfLowFreeze | 0x00400000 | 4194304 | 低位アカウントがトラストラインを凍結しており、高位アカウントから資産を移動できません。 | tfSetFreeze |
|
||||
| lsfHighFreeze | 0x00800000 | 8388608 | 高位アカウントがトラストラインを凍結しており、低位アカウントから資産を移動できません。 | tfSetFreeze |
|
||||
|
||||
## 所有者の準備金への資金供給
|
||||
|
||||
アカウントがトラストラインをデフォルト以外の状態に変更した場合、そのトラストラインはアカウントの[所有者準備金](reserves.html#所有者準備金)に反映されます。RippleStateオブジェクトの`lsfLowReserve`フラグと`lsfHighReserve`フラグは、いずれのアカウントが所有者準備金に責任があるかを示します。`rippled`サーバーは、トラストラインの変更時にこれらのフラグを自動的に設定します。
|
||||
|
||||
トラストラインのデフォルト以外の状態に反映される値は以下の通りです。
|
||||
|
||||
| 高位アカウントに責任がある場合の条件 | 低位アカウントに責任がある場合の条件 |
|
||||
|-----------------------|----------------------|
|
||||
| `Balance` がマイナスである(高位アカウントが通貨を保有している) | `Balance` がプラスである(低位アカウントが通貨を保有している) |
|
||||
| `HighLimit` が `0` ではない | `LowLimit` が `0` ではない |
|
||||
| `LowQualityIn` が`0`でも `1000000000` でもない | `HighQualityIn` が`0`でも `1000000000` でもない |
|
||||
| `LowQualityOut` が`0`でも `1000000000` でもない | `HighQualityOut` が`0`でも `1000000000` でもない |
|
||||
| **lsfHighNoRipple**フラグがデフォルト状態ではない | **lsfLowNoRipple**フラグがデフォルト状態ではない |
|
||||
| **lsfHighFreeze**フラグが有効である | **lsfLowFreeze**フラグが有効である |
|
||||
|
||||
**lsfLowAuth**フラグと**lsfHighAuth**フラグは無効にできないため、デフォルト状態に不利に作用することはありません。
|
||||
|
||||
2つのNoRippleフラグのデフォルト状態は、対応するAccountRootオブジェクトの[lsfDefaultRippleフラグ](accountroot.html#accountrootのフラグ)の状態によって異なります。DefaultRippleが無効の場合(デフォルト)、アカウントのすべてのトラストラインのlsfNoRippleフラグはデフォルトで _有効_ となります。アカウントがDefaultRippleを有効にすると、アカウントのトラストラインのlsfNoRippleフラグはデフォルトで _無効_ となります(Ripplingが有効になります)。
|
||||
|
||||
**注記:** `rippled`バージョン0.27.3(2015年3月10日)にてDefaultRippleフラグが導入される前は、すべてのトラストラインはデフォルトで両方のNoRippleフラグが無効になっていました(Ripplingは有効)。
|
||||
|
||||
`rippled`は遅延評価を使用して所有者準備金を計算しています。つまり、アカウントがDefaultRippleフラグを変更してそのすべてのトラストラインのデフォルト状態を変更しても、変更後しばらくの間はアカウントの準備金が同じ状態で維持されます。アカウントがトラストラインを変更すると、`rippled`は個々のトラストラインがデフォルト状態にあるか否かや、所有者準備金への資金供給の必要性を再評価します。
|
||||
|
||||
## RippleState IDのフォーマット
|
||||
|
||||
RippleStateオブジェクトのIDは、以下の値がこの順序で連結されている[SHA-512ハーフ][]です。
|
||||
|
||||
* RippleStateスペースキー(`0x0072`)
|
||||
* 低位アカウントのAccountID
|
||||
* 高位アカウントのAccountID
|
||||
* トラストラインの160ビットの通貨コード
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,111 +0,0 @@
|
||||
---
|
||||
html: signerlist.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: マルチシグトランザクションのアドレスのリストです。
|
||||
labels:
|
||||
- セキュリティ
|
||||
---
|
||||
# SignerList
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/6d2e3da30696bd10e3bb11a5ff6d45d2c4dae90f/src/ripple/protocol/impl/LedgerFormats.cpp#L127 "Source")
|
||||
|
||||
_([MultiSign Amendment][]が必要です。)_
|
||||
|
||||
`SignerList`オブジェクトタイプは、個別アカウントの代わりにグループとしてトランザクション署名をすることが承認されている署名者のリストです。[SignerListSetトランザクション][]を使用して、SignerListを作成、置き換え、または削除できます。
|
||||
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Flags": 0,
|
||||
"LedgerEntryType": "SignerList",
|
||||
"OwnerNode": "0000000000000000",
|
||||
"PreviousTxnID": "5904C0DC72C58A83AEFED2FFC5386356AA83FCA6A88C89D00646E51E687CDBE4",
|
||||
"PreviousTxnLgrSeq": 16061435,
|
||||
"SignerEntries": [
|
||||
{
|
||||
"SignerEntry": {
|
||||
"Account": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"SignerWeight": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"SignerEntry": {
|
||||
"Account": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
|
||||
"SignerWeight": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"SignerEntry": {
|
||||
"Account": "rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v",
|
||||
"SignerWeight": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"SignerListID": 0,
|
||||
"SignerQuorum": 3,
|
||||
"index": "A9C28A28B85CD533217F5C0A0C7767666B093FA58A0F2D80026FCC4CD932DDC7"
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}のフィールド
|
||||
|
||||
`SignerList`オブジェクトのフィールドを次に示します。
|
||||
|
||||
| 名前 | JSONの型 | 内部の型 | 説明 |
|
||||
|:--------------------|:----------|:--------------|:---------------------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 値が`0x0053`(文字列`SignerList`にマッピング)の場合は、これがSignerListオブジェクトであることを示します。 |
|
||||
| `Flags` | 数値 | UInt32 | このSignerListに対して有効になっているブール値フラグのビットマップ。詳細は、[SignerListのフラグ](#signerlistのフラグ)を参照してください。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更したトランザクションの識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションが記録された[レジャーインデックス][]。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 所有者ディレクトリーが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。 |
|
||||
| `SignerEntries` | 配列 | 配列 | この署名者リストに記載されている署名者を表すSignerEntryオブジェクトの配列。 |
|
||||
| `SignerListID` | 数値 | UInt32 | この署名者リストのID。現時点では常に`0`に設定されます。今後の[Amendment](amendments.html)によってアカウントに複数の署名者リストを使用できるようになる場合は、変更される可能性があります。 |
|
||||
| `SignerQuorum` | 数値 | UInt32 | 署名者の重みのターゲット数。署名者がこのSignerListの所有者に代わって有効な署名を生成するには、重みの合計がこの数値以上である有効な署名を提出する必要があります。 |
|
||||
|
||||
`SignerEntries`は、secp256k1キーまたはed25519キーを使用する資金供給のあるアドレスと資金供給のないアドレスの自由な組み合わせです。
|
||||
|
||||
### SignerEntryオブジェクト
|
||||
|
||||
`SignerEntries`フィールドの各メンバーは、リストの署名者を記述するオブジェクトです。SignerEntryのフィールドは次のとおりです。
|
||||
|
||||
| 名前 | JSONの型 | 内部の型 | 説明 |
|
||||
|:---------------|:----------|:--------------|:--------------------------------|
|
||||
| `Account` | 文字列 | AccountID | 署名がマルチシグに提供されるXRP Ledgerアドレス。レジャーの資金供給のあるアドレスである必要はありません。 |
|
||||
| `SignerWeight` | 数値 | UInt16 | この署名者による署名の重み。マルチシグは、付与された署名の重みの合計がSignerListの`SignerQuorum`値を超えている場合にのみ有効となります。 |
|
||||
| `WalletLocator` | 文字列 | Hash256 | (省略可)任意の16進数データ。これは署名者を識別するため、または他の関連する目的のために使用することができます。[ExpandedSignerList amendment][]により追加されました。 |
|
||||
|
||||
マルチシグトランザクションを処理する際に、サーバーはトランザクション実行時にレジャーに関する`Account`値を間接参照します。アドレスが資金供給のある[AccountRootオブジェクト](accountroot.html)に対応して _いない_ 場合、そのアドレスに関連付けられているマスターシークレットによってのみ有効な署名を生成できます。アカウントがレジャーに _確かに_ 存在している場合は、アカウントの状態により異なります。アカウントにレギュラーキーが設定されている場合はレギュラーキーを使用できます。アカウントのマスターキーが無効化されていない場合に限り、アカウントのマスターキーを使用できます。マルチシグを別のマルチシグの一部として使用することはできません。
|
||||
|
||||
## {{currentpage.name}}のフラグ
|
||||
|
||||
_([MultiSignReserve Amendment][]が必要です.)_
|
||||
|
||||
SignerListオブジェクトには以下のフラグ値を指定できます。
|
||||
|
||||
| フラグ名 | 16進値 | 10進値 | 説明 |
|
||||
|:-----------------|:-----------|:--------------|:-------------------------------|
|
||||
| lsfOneOwnerCount | 0x00010000 | 65536 | このフラグが有効な場合、SignerListは[所有者準備金](reserves.html#所有者準備金)の1アイテムとしてカウントされます。このフラグが無効な場合、このリストはN+2アイテムとしてカウントされます。このNは、リストに含まれている署名者の数です。[MultiSignReserve Amendment][]が有効になった後で署名者リストを追加または更新すると、このフラグが自動的に有効となります。 |
|
||||
|
||||
## SignerListと準備金
|
||||
|
||||
SignerListは、所有者の[必要準備金](reserves.html)の対象となります。
|
||||
|
||||
[MultiSignReserve Amendment][]が有効ではない場合、SignerList自体が2つのオブジェクトとしてカウントされ、リストの各メンバーが1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金の合計は、1つのトラストライン([RippleState](ripplestate.html))またはレジャーの[Offer](offer.html)オブジェクトで必要な準備金の3~10倍になります。
|
||||
|
||||
[MultiSignReserve Amendment][]が有効となれば、SignerListはそのメンバーの数に関わらず、1つのオブジェクトとしてカウントされます。その結果、SignerListに関連付けられている所有者準備金は、メンバーの数に関わらず5 XRPになります。
|
||||
|
||||
MultiSignReserve Amendmentよりも前に作成されたSignerListの必要準備金は変わりません。新しい準備金を利用するには、[SignerListSetトランザクション][]を送信してSignerListを更新してください。
|
||||
|
||||
## SignerList IDのフォーマット
|
||||
|
||||
SignerListオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです。
|
||||
|
||||
* RippleStateスペースキー(`0x0053`)
|
||||
* SignerListの所有者のAccountID
|
||||
* SignerListID(現時点では常に`0`)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
html: ticket.html
|
||||
parent: ledger-entry-types.html
|
||||
blurb: チケットは、将来使用するために確保されたアカウントのシーケンス番号を追跡します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# Ticket
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/76a6956138c4ecd156c5c408f136ed3d6ab7d0c1/src/ripple/protocol/impl/LedgerFormats.cpp#L155-L164)
|
||||
|
||||
_([TicketBatch amendment][]が必要です)_
|
||||
|
||||
`Ticket`オブジェクトタイプは、将来の使用のために確保されたアカウント[シーケンス番号](basic-data-types.html#アカウントシーケンス)を追跡する[Ticket](tickets.html)を表します。[TicketCreate トランザクション][]で新しいチケットを作成することができます。[New in: rippled 1.7.0][].
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de",
|
||||
"Flags" : 0,
|
||||
"LedgerEntryType" : "Ticket",
|
||||
"OwnerNode" : "0000000000000000",
|
||||
"PreviousTxnID" : "F19AD4577212D3BEACA0F75FE1BA1644F2E854D46E8D62E9C95D18E9708CBFB1",
|
||||
"PreviousTxnLgrSeq" : 4,
|
||||
"TicketSequence" : 3
|
||||
}
|
||||
```
|
||||
|
||||
## {{currentpage.name}}フィールド
|
||||
|
||||
`Ticket`オブジェクトのフィールドは次のとおりです。
|
||||
|
||||
| フィールド | JSONの型 | 内部の型 | 説明 |
|
||||
|:--------------------|:----------|:--------------|:---------------------------|
|
||||
| `LedgerEntryType` | 文字列 | UInt16 | 文字列 `Ticket` にマッピングされた値 `0x0054` は、このオブジェクトが {{currentpage.name}} オブジェクトであることを示しています。 |
|
||||
| `Account` | 文字列 | AccountID | このチケットを所有する[アカウント](accounts.html)です。 |
|
||||
| `Flags` | Number | UInt32 | ブール値フラグのビットマップ。Ticketにはフラグが定義されていないため、この値は常に0です。 |
|
||||
| `OwnerNode` | 文字列 | UInt64 | 送金元の所有者ディレクトリが複数ページで構成されている場合に、このオブジェクトにリンクしているページを示すヒントです。注記: このオブジェクトには、オブジェクトを含む所有者ディレクトリへの直接リンクは含まれていません。これは、その値を`Account`から取得できるためです。 |
|
||||
| `PreviousTxnID` | 文字列 | Hash256 | 最後にこのオブジェクトを変更した[トランザクション](transactions.html)の識別用ハッシュ。 |
|
||||
| `PreviousTxnLgrSeq` | 数値 | UInt32 | 最後にこのオブジェクトを変更したトランザクションを含む[レジャーインデックス][Ledger Index]。 |
|
||||
| `TicketSequence` | 数値 | UInt32 | 本チケットが設定する[シーケンス番号][]。 |
|
||||
|
||||
## {{currentpage.name}} IDのフォーマット
|
||||
|
||||
TicketオブジェクトのIDは、以下の値がこの順序で連結されているSHA-512ハーフです
|
||||
|
||||
* Ticketスペースキー (`0x0054`)
|
||||
* チケットの所有者のアカウントID
|
||||
* チケットの`TicketSequence`
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,48 +0,0 @@
|
||||
---
|
||||
html: ledger-header.html
|
||||
parent: ledger-data-formats.html
|
||||
blurb: レジャーバージョンの内容を記述する一意のヘッダーです。
|
||||
labels:
|
||||
- データ保持
|
||||
- ブロックチェーン
|
||||
---
|
||||
# レジャーヘッダー
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/ledger/ReadView.h#L71 "Source")
|
||||
|
||||
すべてのレジャーバージョンには、その内容を記述する一意のヘッダーが含まれています。[ledgerメソッド][]を使用してレジャーのヘッダー情報を検索できます。レジャーヘッダーの内容を以下に示します。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------------------|:----------|:------------------|:--------------|
|
||||
| `ledger_index` | 文字列 | UInt32 | レジャーの[レジャーインデックス][レジャーインデックス]。APIメソッドの中には、この番号を引用符で囲んだ整数として表示するメソッドと、ネイティブJSON数値として表示するメソッドがあります。 |
|
||||
| `ledger_hash` | 文字列 | Hash256 | このレジャーバージョンの[SHA-512ハーフ][]。これは、このレジャーとそのすべての内容の一意のIDとして機能します。 |
|
||||
| `account_hash` | 文字列 | Hash256 | このレジャーの状態ツリー情報の[SHA-512ハーフ][]。 |
|
||||
| `close_time` | 数値 | UInt32 | このレジャーバージョンが閉鎖されたおおよその時刻。Rippleエポック(2000-01-01 00:00:00)以降の経過秒数として示されます。この値は、`close_time_resolution`に基づいて丸められます。 |
|
||||
| `closed` | ブール値 | ブール値 | `true`の場合、このレジャーバージョンはこれ以上新しいトランザクションを受け入れません。(ただし、このレジャーバージョンが未検証の場合は、一連の異なるトランザクションが記録されている別のレジャーバージョンに置き換えられることがあります。) |
|
||||
| `parent_hash` | 文字列 | Hash256 | このバージョンの直前のレジャーバージョンの`ledger_hash`値。直前のレジャーインデックスの異なるバージョンが存在している場合、これはレジャーの生成元を示します。 |
|
||||
| `total_coins` | 文字列 | UInt64 | レジャーのアカウントが保有するXRPの[XRPのdrop数][]の合計。トランザクション手数料により消却されたXRPは除外されます。一部のアカウントは、そのキーを知っている人がいない「ブラックホール」アカウントであるため、流通している実際のXRPの量はこれよりも少なくなります。 |
|
||||
| `transaction_hash` | 文字列 | Hash256 | このレジャーに記録されているトランザクションの[SHA-512ハーフ][]。 |
|
||||
| `close_time_resolution` | 数値 | Uint8 | `close_time`を丸めるときの最大秒数を示す範囲[2,120]内の整数。 |
|
||||
| [`closeFlags`](#closeフラグ) | (省略) | UInt8 | このレジャーの閉鎖に関連するフラグのビットマップ。 |
|
||||
|
||||
|
||||
## レジャーインデックス
|
||||
{% include '_snippets/data_types/ledger_index.ja.md' %}
|
||||
<!--{#_ #}-->
|
||||
|
||||
|
||||
## closeフラグ
|
||||
|
||||
レジャーでは1つのフラグだけがcloseFlagsとして設定されています(**sLCF_NoConsensusTime**(値`1`))。このフラグが有効な場合、バリデータによってレジャーの閉鎖時刻が異なります。ただし、作成しているレジャーは同一のものであるため、バリデータは閉鎖時刻について「合意をしないことに合意する」とした上でコンセンサスを宣言しました。この場合、コンセンサスレジャーバージョンの`close_time`の値は直前のバージョンの1秒後です。(この場合、正式な閉鎖時刻がありませんが、実際の閉鎖時刻はおそらく指定されている`close_time`の3~6秒後です。)
|
||||
|
||||
`closeFlags`フィールドはレジャーのJSON表現には含まれていませんが、レジャーのバイナリ表現には含まれており、レジャーのハッシュを判別するフィールドの1つです。
|
||||
|
||||
|
||||
## 関連項目
|
||||
|
||||
レジャーの基本的な説明については、[レジャー](ledgers.html)を参照してください。
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,347 +0,0 @@
|
||||
---
|
||||
html: serialization.html
|
||||
parent: protocol-reference.html
|
||||
blurb: XRP Ledgerトランザクションやその他のオブジェクトの場合のJSONフォーマットと正規バイナリーフォーマットとの変換です。
|
||||
labels:
|
||||
- アカウント
|
||||
- トランザクション送信
|
||||
curated_anchors:
|
||||
- name: サンプルコード
|
||||
anchor: "#サンプルコード"
|
||||
- name: フィールドの正規順序
|
||||
anchor: "#フィールドの正規順序"
|
||||
- name: タイプリスト
|
||||
anchor: "#タイプリスト"
|
||||
---
|
||||
# シリアル化フォーマット
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp#L696-L718 "Source")
|
||||
|
||||
このページでは、XRP Ledgerのトランザクションとその他のデータの正規バイナリフォーマットについて説明します。このバイナリフォーマットは、トランザクションの内容のデジタル署名を作成および検証するために必要であり、[サーバー間のピアツーピア通信](peer-protocol.html)を含む他の用途にも使用されます。通常、[`rippled` API](http-websocket-apis.html)は、JSONを使用してクライアントアプリケーションと通信します。ただしJSONは、同じデータをさまざまな同等の方法で表現できるため、デジタル署名を付与するトランザクションをシリアル化するのに適したフォーマットではありません。
|
||||
|
||||
トランザクションをJSONまたはその他の表現から正規バイナリフォーマットへシリアル化するプロセスのステップを、以下にまとめます。
|
||||
|
||||
1. すべての必須フィールドが指定されていること(必須の[「自動入力可能」フィールド](transaction-common-fields.html#自動入力可能なフィールド)を含む)を確認します。
|
||||
|
||||
[トランザクションフォーマットリファレンス](transaction-formats.html)に、XRP Ledgerトランザクションの必須フィールドと省略可能なフィールドが定義されています。
|
||||
|
||||
**注記:** `SigningPubKey`もこのステップで指定する必要があります。署名の際に、署名用に指定された秘密鍵から[このキーを導出](cryptographic-keys.html#鍵導出)できます。
|
||||
|
||||
2. 各フィールドのデータを[「内部」バイナリフォーマット](#内部フォーマット)に変換します。
|
||||
|
||||
3. フィールドを[正規順序](#フィールドの正規順序)でソートします。
|
||||
|
||||
4. 各フィールドの前に[フィールドID](#フィールドid)を付加します。
|
||||
|
||||
5. フィールド(プレフィクスを含む)をソート順に連結します。
|
||||
|
||||
その結果、ECDSA(secp256k1楕円曲線を使用)やEd25519などの既知の署名アルゴリズムを使用して署名できるバイナリブロブが1つ作成されます。XRP Ledgerのために、適切なプレフィクス(シングル署名の場合は`0x53545800`、マルシグの場合は`0x534D5400`)を使用してデータを[ハッシュ化][ハッシュ]する必要があります。署名後に、指定されている`TxnSignature`フィールドを使用してトランザクションを再度シリアル化する必要があります。 <!--{# TODO: link docs on how to compute a transaction signature. #}-->
|
||||
|
||||
**注記:** XRP Ledgerでは、[レジャーオブジェクト](ledger-object-types.html)や処理済みのトランザクションなど他のタイプのデータを表す場合にも同じシリアル化フォーマットが使用されます。ただし、署名されるトランザクションに追加するのに適切なフィールドは限られています。(たとえば署名自体が指定されている`TxnSignature`フィールドは、署名するバイナリブロブに含まれていてはなりません。)このように、「署名」フィールドとされてオブジェクトに署名するときにオブジェクトに含まれるフィールドもあれば、「非署名」とされてオブジェクトに含まれないフィールドもあります。
|
||||
|
||||
### 例
|
||||
|
||||
署名済みトランザクションと未署名のトランザクションはいずれも、JSONフォーマットとバイナリフォーマットの両方で表すことができます。同じ署名済みトランザクションのJSONフォーマットとバイナリフォーマットの例を以下に示します。
|
||||
|
||||
**JSON:**
|
||||
|
||||
```json
|
||||
{% include '_code-samples/tx-serialization/py/test-cases/tx1.json' %}
|
||||
```
|
||||
|
||||
**バイナリ(16進数として表現):**
|
||||
|
||||
```text
|
||||
{% include '_code-samples/tx-serialization/py/test-cases/tx1-binary.txt' %}
|
||||
```
|
||||
|
||||
## サンプルコード
|
||||
|
||||
ここで説明するシリアル化プロセスは複数の場所にさまざまなプログラミング言語で実装されています。
|
||||
|
||||
- C++: [`rippled`コードベース](https://github.com/XRPLF/rippled/blob/develop/src/ripple/protocol/impl/STObject.cpp)
|
||||
- JavaScript: [`ripple-binary-codec`](https://github.com/ripple/ripple-binary-codec/)パッケージ
|
||||
- Python 3: [このリポジトリのコードサンプルセクション]({{target.github_forkurl}}/blob/{{target.github_branch}}/content/_code-samples/tx-serialization/)
|
||||
|
||||
これらのすべての実装には、一般利用が可能なオープンソースライセンスが提供されているので、学習のためにドキュメントと合わせて使用するだけでなく、必要に応じてコードをインポート、使用、または変更することができます。
|
||||
|
||||
|
||||
|
||||
## 内部フォーマット
|
||||
|
||||
各フィールドには「内部」バイナリフォーマットがあります。このフォーマットは、`rippled`ソースコードで署名時に(およびその他のほとんどの場合に)そのフィールドを表示するのに使用されます。すべてのフィールドの内部フォーマットは、[`SField.cpp`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/impl/SField.cpp)のソースコードに定義されています。(このフィールドには、トランザクションフィールド以外のフィールドも含まれています。)[トランザクションフォーマットリファレンス](transaction-formats.html)にも、すべてのトランザクションフィールドの内部フォーマットが記載されています。
|
||||
|
||||
たとえば`Flags`[共通トランザクションフィールド](transaction-common-fields.html)はUInt32(32ビット符号なし整数)になります。
|
||||
|
||||
### 定義ファイル
|
||||
|
||||
以下のJSONファイルには、XRP Ledgerデータをそのバイナリフォーマットにシリアル化し、バイナリからシリアル化解除するのに必要な重要な定数が定義されています。
|
||||
|
||||
**<https://github.com/ripple/ripple-binary-codec/blob/master/src/enums/definitions.json>**
|
||||
|
||||
この定義ファイルの最上位フィールドの定義を以下の表に示します。
|
||||
|
||||
| フィールド | 内容 |
|
||||
|:----------------------|:-----------------------------------------------------|
|
||||
| `TYPES` | フィールドIDの作成と正規順序でのフィールドのソートのためのデータタイプからその[「タイプコード」](#タイプコード)へのマップ。1未満のコードは実際のデータには含まれません。10000を超えるコードは、他のオブジェクト内部ではシリアル化できない「トランザクション」などの特殊な「上位」オブジェクトタイプを表します。各タイプのシリアル化方法についての詳細は、[タイプリスト](#タイプリスト)を参照してください。 |
|
||||
| `LEDGER_ENTRY_TYPES` | [レジャーオブジェクト](ledger-object-types.html)から対応するデータタイプへのマップ。これはレジャー状態データと、処理されたトランザクションの[メタデータ](transaction-metadata.html)の「affected nodes」セクションに含まれます。 |
|
||||
| `FIELDS` | トランザクション、レジャーオブジェクト、あるいはその他のデータに含まれる可能性があるすべてのフィールドを表すタプルからなるソート済み配列。各タプルの1番目のメンバーはフィールドの文字列名であり、2番目のメンバーはそのフィールドのプロパティーが含まれているオブジェクトです。(これらのフィールドの定義については、以下の「フィールドプロパティー」の表を参照してください。) |
|
||||
| `TRANSACTION_RESULTS` | [トランザクション結果コード](transaction-results.html)から対応する数値へのマップ。レジャーに含まれない結果タイプにはマイナスの値が含まれています。`tesSUCCESS`に数値0が含まれています。[`tec`クラスコード](tec-codes.html)は、レジャーに含まれている失敗を示しています。 |
|
||||
| `TRANSACTION_TYPES` | [トランザクションのタイプ](transaction-types.html)から対応する数値へのマップ。 |
|
||||
|
||||
署名と送信のためにトランザクションをシリアル化するという目的から、`FIELDS`、`TYPES`、および`TRANSACTION_TYPES`フィールドが必要です。
|
||||
|
||||
`FIELDS`配列のフィールド定義オブジェクトには以下のフィールドが含まれています。
|
||||
|
||||
| フィールド | 型 | 内容 |
|
||||
|:-----------------|:--------|:------------------------------------------------|
|
||||
| `nth` | 数値 | このフィールドの[フィールドコード](#フィールドコード)。このコードは、[フィールドID](#フィールドid)の作成時と、同一データタイプの他のフィールドとのソート時に使用されます。 |
|
||||
| `isVLEncoded` | ブール値 | `true`の場合、このフィールドには[長さプレフィクスが付加されています](#長さプレフィクスを付加する)。 |
|
||||
| `isSerialized` | ブール値 | `true`の場合、このフィールドはシリアル化バイナリデータにエンコードされる必要があります。このフィールドが`false`の場合、一般にフィールドは保管されず、オンデマンドで再作成されます。 |
|
||||
| `isSigningField` | ブール値 | `true`の場合、署名のためにトランザクションを準備する際にこのフィールドをシリアル化する必要があります。`false`の場合、このフィールドは署名対象データから省略する必要があります。(これはトランザクションに含まれていない可能性があります。) |
|
||||
| `type` | 文字列 | このフィールドの内部データタイプ。これは、このフィールドの[タイプコード](#タイプコード)を示す`TYPES`マップのキーにマップします。 |
|
||||
|
||||
### フィールドID
|
||||
|
||||
[[ソース - エンコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L117-L148 "Source")
|
||||
[[ソース - デコード]](https://github.com/seelabs/rippled/blob/cecc0ad75849a1d50cc573188ad301ca65519a5b/src/ripple/protocol/impl/Serializer.cpp#L484-L509 "Source")
|
||||
|
||||
フィールドのタイプコードとフィールドコードを結合すると、フィールドの一意のIDになります。このIDは、最終的なシリアル化ブロブでこのフィールドの前に付加されます。フィールドIDのサイズは、タイプコードとその結合対象のフィールドコードに応じて1~3バイトとなります。以下の表を参照してください。
|
||||
|
||||
| | タイプコード < 16 | タイプコード >= 16 |
|
||||
|:-----------------|:------------------------------------------------------------------------------|:--|
|
||||
| **フィールドコード < 16** |  |  |
|
||||
| **フィールドコード >= 16** | |  |
|
||||
|
||||
デコードの際には、**1番目のバイト**のどのビットがゼロであるかによって、フィールドIDのバイト数を把握できます。これは、上記の表の例に対応しています。
|
||||
|
||||
| | 上位4ビットがゼロ以外である | 上位4ビットがゼロである |
|
||||
|:-----------------|:------------------------------------------------------------------------------|:--|
|
||||
| **下位4ビットがゼロ以外である** | 1バイト: 上位4ビットがタイプを定義し、下位4ビットがフィールドを定義します。 | 2バイト: 1番目のバイトの下位4ビットがフィールドを定義し、次のバイトがタイプを定義します。 |
|
||||
| **下位4ビットがゼロである** | 2バイト: 1番目のバイトの上位4ビットがタイプを定義し、1番目のバイトの下位4ビットは0になります。次のバイトがフィールドを定義します。 | 3バイト: 1番目のバイトは0x00、2番目のバイトはタイプを定義します。3番目のバイトはフィールドを定義します。 |
|
||||
|
||||
**注意:** フィールドIDは、フィールドのソートに使用される2つの要素で構成されますが、シリアル化されたフィールドID自体に基づいてソートを実行しないでください。これは、フィールドIDのバイト構造によってソート順序が変わるためです。
|
||||
|
||||
### 長さプレフィクスを付加する
|
||||
|
||||
一部の可変長フィールドの前には、長さインディケーターが付加されています。`Blob`フィールド(任意のバイナリデータを含む)がこれに該当します。長さプレフィクスが付加されているタイプのリストについては、[タイプリスト](#タイプリスト)の表を参照してください。
|
||||
|
||||
**注記:** 一部のタイプの可変長フィールドには、長さプレフィクスが付加されません。このようなタイプでは、他の方法で内容の終わりが示されます。
|
||||
|
||||
長さプレフィクスはフィールドの長さを示す1~3バイトで構成され、タイププレフィクスと内容の間に挿入されます。
|
||||
|
||||
- フィールドに0~192バイトのデータが含まれている場合、1番目のバイトは内容の長さを示し、長さバイトの直後にそのバイト数のデータが続きます。
|
||||
|
||||
- フィールドに193~12480バイトのデータが含まれている場合、最初の2バイトは以下の式で算出されるフィールドの長さを示します。
|
||||
|
||||
193 + ((byte1 - 193) * 256) + byte2
|
||||
|
||||
- フィールドに12481~918744バイトのデータが含まれている場合、最初の3バイトは以下の式で算出されるフィールドの長さを示します。
|
||||
|
||||
12481 + ((byte1 - 241) * 65536) + (byte2 * 256) + byte3
|
||||
|
||||
- 長さプレフィクスが付加されているフィールドに格納できる最大データは918744バイトです。
|
||||
|
||||
デコード時に、1番目の長さバイトの値から、追加の長さバイト(0、1、または2)が存在するかどうかを把握できます。
|
||||
|
||||
- 1番目の長さバイトの値が192以下の場合、これは唯一の長さバイトであり、フィールドの内容の長さはこのバイトが示すバイト数です。
|
||||
- 1番目の長さバイトの値が193~240の場合、2つの長さバイトがあります。
|
||||
- 1番目の長さバイトの値が241~254の場合、3つの長さバイトがあります。
|
||||
|
||||
|
||||
## フィールドの正規順序
|
||||
|
||||
トランザクションのすべてのフィールドは、まずフィールドのタイプ(特に各タイプに割り当てられている数値の「タイプコード」)に基づいて特定の順序でソートされ、次にフィールド自体(「フィールドコード」)に基づいてソートされます。(たとえば、姓がフィールドのタイプ、名前がフィールド自体とすると、姓で最初にソートし、次に名でソートすることになります。)
|
||||
|
||||
### タイプコード
|
||||
|
||||
各フィールドタイプには任意のタイプコードが含まれており、番号が小さいコードから最初にソートされます。これらのコードは[`SField.h`](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/SField.h#L57-L74)で定義されています。
|
||||
|
||||
たとえば [UInt32のタイプコードが2である](https://github.com/XRPLF/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L59)ので、すべてのUInt32フィールドは、すべての[Amountフィールド(タイプコード6)](https://github.com/XRPLF/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/SField.h#L63)よりも前に位置します。
|
||||
|
||||
[定義ファイル](#定義ファイル)には、`TYPES`マップの各タイプのタイプコードがリストされています。
|
||||
|
||||
### フィールドコード
|
||||
|
||||
各フィールドにはフィールドコードが含まれています。フィールドコードは、同じタイプのフィールドをソートするときに使用され、番号が小さいコードが最初になるようにソートされます。これらのフィールドは[`SField.cpp`](https://github.com/XRPLF/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L72-L266)で定義されています。
|
||||
|
||||
たとえば[Paymentトランザクション][]の`Account`フィールドの[ソートコードが1である](https://github.com/XRPLF/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L219)場合、このフィールドは`Destination`フィールド([ソートコードが3である](https://github.com/XRPLF/rippled/blob/72e6005f562a8f0818bc94803d222ac9345e1e40/src/ripple/protocol/impl/SField.cpp#L221)フィールド)よりも前に位置します。
|
||||
|
||||
フィールドコードは異なるフィールドタイプのフィールドで再利用されますが、同じタイプのフィールドに同じフィールドコードが含まれることはありません。タイプコードとフィールドコードを組み合わせると、フィールドの一意の[フィールドID](#フィールドid)になります。
|
||||
|
||||
|
||||
|
||||
## タイプリスト
|
||||
|
||||
トランザクションの指示には、以下のタイプのフィールドを指定できます。
|
||||
|
||||
| タイプ名 | タイプコード | ビット長 | [長さプレフィクスを付加する]? | 説明 |
|
||||
|:--------------|:----------|:-----------|:-------------------|----------------|
|
||||
| [AccountID][] | 8 | 160 | はい | [アカウント](accounts.html)の一意のID。 |
|
||||
| [Amount][] | 6 | 64または384 | いいえ | XRPまたは発行済み通貨の額。フィールドの長さは、XRPの場合は64ビット、発行済み通貨の場合は384ビット(64+160+160)です。 |
|
||||
| [Blob][] | 7 | 可変 | はい | 任意のバイナリデータ。このようなフィールドの中で重要なフィールドとして、`TxnSignature`(トランザクションを承認する署名)があります。 |
|
||||
| [Hash128][] | 4 | 128 | いいえ | 128ビットの任意のバイナリ値。該当する唯一のフィールドは`EmailHash`です。これは、[Gravatar](https://www.gravatar.com/)を取得する目的でアカウント所有者のメールのMD-5ハッシュを保管するフィールドです。 |
|
||||
| [Hash160][] | 17 | 160 | いいえ | 160ビットの任意のバイナリ値。これにより通貨コードまたはイシュアーが定義されます。 |
|
||||
| [Hash256][] | 5 | 256 | いいえ | 256ビットの任意のバイナリ値。これは通常、トランザクション、レジャーバージョン、またはレジャーデータオブジェクトの「SHA-512ハーフ」ハッシュを表します。 |
|
||||
| [PathSet][] | 18 | 可変 | いいえ | [複数通貨間ペイメント](cross-currency-payments.html)の有効な[ペイメントパス](paths.html)のセット。 |
|
||||
| [STArray][] | 15 | 可変 | いいえ | 可変数のメンバーからなる配列。フィールドによってタイプが異なる場合があります。この例として、[memos](transaction-common-fields.html#memosフィールド)や[マルチ署名](multi-signing.html)で使用される署名者のリストがあります。 |
|
||||
| [STObject][] | 14 | 可変 | いいえ | 1つ以上のネストされたフィールドを含むオブジェクト。 |
|
||||
| [UInt8][] | 16 | 8 | いいえ | 8ビットの符号なし整数。 |
|
||||
| [UInt16][] | 1 | 16 | いいえ | 16ビットの符号なし整数。`TransactionType`は、このタイプの特殊なフィールドで、特定の文字列から整数値へのマッピングを含みます。 |
|
||||
| [UInt32][] | 2 | 32 | いいえ | 32ビットの符号なし整数。このタイプの例として、すべてのトランザクションの`Flags`フィールドと`Sequence`フィールドがあります。 |
|
||||
|
||||
<!-- | [STIssue][] | 24 | 320 | いいえ | :not_enabled: 数量を含まない、資産(XRPまたはトークン)を指定します。 | -->
|
||||
|
||||
[長さプレフィクスを付加する]: #長さプレフィクスを付加する
|
||||
|
||||
上記のフィールドタイプの他に、[レジャーオブジェクト](ledger-object-types.html)や[トランザクションメタデータ](transaction-metadata.html)などのコンテキストでは以下のタイプが含まれることがあります。
|
||||
|
||||
| タイプ名 | タイプコード | [長さプレフィクスを付加する]? | 説明 |
|
||||
|:------------|:----------|:-------------------|:------------------------------|
|
||||
| Transaction | 10001 | いいえ | [トランザクション](transaction-formats.html)全体を含む「上位」タイプ。 |
|
||||
| LedgerEntry | 10002 | いいえ | [レジャーオブジェクト](ledger-object-types.html)全体を含む「上位」タイプ。 |
|
||||
| Validation | 10003 | いいえ | ピアツーピア通信で[コンセンサスプロセス](consensus.html)の検証投票を表すために使用される「上位」タイプ。 |
|
||||
| Metadata | 10004 | いいえ | [1つのトランザクションのメタデータ](transaction-metadata.html)を含む「上位」タイプ。 |
|
||||
| [UInt64][] | 3 | いいえ | 64ビットの符号なし整数。このタイプはトランザクションの指示には含まれませんが、さまざまなレジャーオブジェクトでこのタイプのフィールドが使用されます。 |
|
||||
| Vector256 | 19 | はい | このタイプはトランザクションの指示には含まれませんが、[Amendmentレジャーオブジェクト](amendments-object.html)の`Amendments`フィールドでは、現在有効な[Amendment](amendments.html)を示すためにこのタイプが使用されます。 |
|
||||
|
||||
|
||||
### AccountIDフィールド
|
||||
[AccountID]: #accountidフィールド
|
||||
|
||||
このタイプのフィールドには、XRP Ledger[アカウント](accounts.html)の160ビットのIDが含まれています。JSONではこれらのフィールドは[base58][] XRP Ledger「アドレス」および追加のチェックサムデータとして表示されます。このため、スペルミスが有効なアドレスとなることがありません。(このエンコードは「Base58Check」とも呼ばれ、誤ったアドレスへの送金を防止します。)これらのフィールドのバイナリフォーマットにはチェックサムデータは含まれておらず、また[アドレスのbase58エンコード](addresses.html#アドレスのエンコード)で使用される`0x00`「タイププレフィクス」も含まれていません。(ただし、バイナリフォーマットは主に署名済みトランザクションに使用されるため、署名済みトランザクションを転記する際にスペルミスなどのエラーが発生すると署名が無効となり、送金できなくなります。)
|
||||
|
||||
スタンドアロンフィールドとして表示されるAccountID(`Account`や`Destination`など)の長さは固定長の160ビットですが、[長さプレフィクスが付加](#長さプレフィクスを付加する)されます。その結果、これらのフィールドの長さインディケーターは常に`0x14`バイトになります。特殊フィールドの子として示されるAccountID([Amount `issuer`][Amount]、[PathSet `account`][PathSet]など)では長さプレフィクスは付加 _されません_ 。
|
||||
|
||||
|
||||
### Amountフィールド
|
||||
[Amount]: #amountフィールド
|
||||
<!-- TODO: update translation based on the English version, which moves in content from the Currency Formats page -->
|
||||
|
||||
「Amount」タイプは、通貨(XRPまたは発行済み通貨)の額を表す特殊なフィールドタイプです。このタイプは2つのサブタイプで構成されます。
|
||||
|
||||
- **XRP**
|
||||
|
||||
XRPは64ビット符号なし整数(ビッグエンディアンオーダー)としてシリアル化されます。ただし、XRPであることを示すため最上位ビットが常に0であり、プラスの値であることを示す最上位から2番目のビットは`1`となります。XRPの最大額(10<sup>17</sup> drop)には57ビットが必要であるため、XRPのシリアル化フォーマットを計算するには、標準の64ビット符号なし整数をとり、`0x4000000000000000`のビットOR演算を行います。
|
||||
|
||||
- **発行済み通貨**
|
||||
|
||||
発行済み通貨は以下の3つのセグメントで構成され、セグメントの順序は以下のとおりです。
|
||||
|
||||
1. [内部通貨フォーマット](currency-formats.html#発行済み通貨の計算)の額を示す64ビット。1番目のビットは、これがXRPではないことを示す`1`です。
|
||||
2. [通貨コード](currency-formats.html#通貨コード)を示す160ビット。標準APIでは、[標準通貨コードフォーマット](currency-formats.html#標準通貨コード)を使用して「USD」などの3文字のコードが160ビットのコードに変換されますが、160ビットのカスタムコードも使用できます。
|
||||
3. イシュアーのアカウントIDを示す160ビット。(関連項目: [アカウントアドレスエンコード](addresses.html#アドレスのエンコード)
|
||||
|
||||
1番目のビットに基づいて2つのサブタイプのいずれに該当するかを確認できます。`0`の場合はXRP、`1`の場合は発行済み通貨です。
|
||||
|
||||
以下の図に、XRPの額と発行済み通貨の額のシリアル化フォーマットを示します。
|
||||
|
||||

|
||||
|
||||
|
||||
### 配列フィールド
|
||||
[STArray]: #配列フィールド
|
||||
|
||||
一部のトランザクションフィールド([SignerListSetトランザクション][]の`SignerEntries`や[`Memos`](transaction-common-fields.html#memosフィールド)など)はオブジェクトの配列です(「STArray」タイプと呼ばれます)。
|
||||
|
||||
配列には、さまざまな[オブジェクトフィールド](#オブジェクトフィールド)がそのネイティブバイナリフォーマットで特定の順序で含まれています。JSONでは、各配列メンバーが1つのフィールド(メンバーオブジェクトフィールドの名前)を含むJSON「ラッパー」オブジェクトです。そのフィールドの値は(「内部」)オブジェクト自体です。
|
||||
|
||||
バイナリフォーマットでは、配列の各メンバーにはフィールドIDプレフィクス(ラッパーオブジェクトの単一キーに基づく)と内容([オブジェクトとしてシリアル化された](#オブジェクトフィールド)内部オブジェクトからなる)が含まれています。配列の終わりをマークするため、アイテムにフィールドID `0xf1`(配列のタイプコードとフィールドコード1)を付加し、内容は指定しません。
|
||||
|
||||
以下の例は、配列のシリアル化フォーマットを示します(`SignerEntries`フィールド)。
|
||||
|
||||

|
||||
|
||||
|
||||
### ブロブフィールド
|
||||
[Blob]: #ブロブフィールド
|
||||
|
||||
ブロブタイプは、任意のデータを持つ[長さプレフィクスが付加されている](#長さプレフィクスを付加する)フィールドです。このタイプを使用する2種類の一般的なフィールドとして、`SigningPubKey`と`TxnSignature`があります。これらのフィールドにはそれぞれ、トランザクションの実行を承認する公開鍵と署名が含まれています。
|
||||
|
||||
両方のフィールドにはこれ以上の内容構造がないため、フィールドIDと長さプレフィクスの後に可変長エンコードで示される正確なバイト数で構成されます。
|
||||
|
||||
|
||||
### ハッシュフィールド
|
||||
[Hash128]: #ハッシュフィールド
|
||||
[Hash160]: #ハッシュフィールド
|
||||
[Hash256]: #ハッシュフィールド
|
||||
|
||||
XRP LedgerのハッシュタイプにはHash128、Hash160、Hash256があります。これらのフィールドには特定のビット数のバイナリデータが含まれており、それらのデータはハッシュ演算の結果を表す場合とそうでない場合があります。
|
||||
|
||||
これらのフィールドは、長さインディケーターを使用せずに、ビッグエンディアンバイトオーダーで特定数のビットとしてシリアル化されます。
|
||||
|
||||
<!--
|
||||
### Issueフィールド
|
||||
[STIssue]: #issueフィールド -->
|
||||
<!-- TODO: translate this section -->
|
||||
|
||||
<!--
|
||||
_(The "Issue" or "STIssue" type is part of multiple proposed extensions to the XRP Ledger protocol, including [XLS-30d: Automated Market Maker](https://github.com/XRPLF/XRPL-Standards/discussions/78) :not_enabled: and [Federated Sidechains](federated-sidechains.html) :not_enabled:)_
|
||||
-->
|
||||
|
||||
<!--
|
||||
Some fields specify a _type_ of asset, which could be XRP or a fungible [token](tokens.html), without an amount. These fields have consist of two 160-bit segments in order:
|
||||
|
||||
1. The first 160 bits are the [currency code](currency-formats.html#通貨コード) of the asset. For XRP, this is all 0's.
|
||||
2. The next 160 bits are the [AccountID of the token issuer](#accountidフィールド). For XRP, this is all 0's. -->
|
||||
|
||||
### オブジェクトフィールド
|
||||
[STObject]: #オブジェクトフィールド
|
||||
|
||||
トランザクションフィールドの一部([SignerListSetトランザクション][]の`SignerEntry`や`Memos`配列の`Memo`など)はオブジェクトです(「STObject」タイプと呼ばれます)。オブジェクトのシリアル化は配列のシリアル化に似ていますが、唯一異なる点としてオブジェクトフィールド内では**オブジェクトのメンバーを正規順序に従って配置する必要がある**点があげられます。配列フィールドではすでに順序が明示的に設定されています。
|
||||
|
||||
オブジェクトフィールドの[正規フィールド順序](#フィールドの正規順序)は、すべての最上位フィールドの正規フィールド順序と同じですが、オブジェクトのメンバーはオブジェクト内でソートする必要があります。最終メンバーの後には、「オブジェクトの終わり」を示すフィールドID(`0xe1`)があり、このフィールドには内容がありません。
|
||||
|
||||
以下の例は、オブジェクトのシリアル化フォーマットを示します(`Memos`配列内の1つの`Memo`オブジェクト)。
|
||||
|
||||

|
||||
|
||||
|
||||
### PathSetフィールド
|
||||
[PathSet]: #pathsetフィールド
|
||||
|
||||
複数通貨間[Paymentトランザクション][]の`Paths`フィールドは、JSONで配列からなる配列として表される「PathSet」です。使用されるパスについての詳細は、[パス](paths.html)を参照してください。
|
||||
|
||||
PathSetは、**1~6**の個別パスとして順序どおりにシリアル化されます[[ソース]](https://github.com/XRPLF/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L35-L36 "Source")。それぞれの完全なパスの後には、パスの後に続く内容を示すバイトが配置されます。
|
||||
|
||||
- `0xff`は別のパスが続くことを示します。
|
||||
- `0x00`はPathSetの終わりを示します。
|
||||
|
||||
各パスには**1~8**のパスステップがこの順序で含まれています[[ソース]](https://github.com/XRPLF/rippled/blob/4cff94f7a4a05302bdf1a248515379da99c5bcd4/src/ripple/app/tx/impl/Payment.h#L38-L39 "Source")。各ステップは**タイプ**を示すバイトで始まり、その後にパスステップを記述する1つ以上のフィールドが続きます。タイプは、ビット単位のフラグを使用してそのパスステップに含まれるフィールドを示します。(たとえば値が`0x30`の場合、通貨とイシュアーの両方が変更されます。)複数のフィールドが含まれている場合、フィールドは常に特定の順序で配置されます。
|
||||
|
||||
以下の表に、有効なフィールドと、タイプバイトでフィールドを示すために設定されるビット単位のフラグを示します。
|
||||
|
||||
| タイプフラグ | 含まれるフィールド | フィールドタイプ | ビットサイズ | 順序 |
|
||||
|:----------|:--------------|:------------------|:---------|:------|
|
||||
| `0x01` | `account` | [AccountID][] | 160ビット | 1番目 |
|
||||
| `0x10` | `currency` | [通貨コード][] | 160ビット | 2番目 |
|
||||
| `0x20` | `issuer` | [AccountID][] | 160ビット | 3番目 |
|
||||
|
||||
[通貨コード]: currency-formats.html#標準通貨コード
|
||||
|
||||
いくつかの組み合わせは無効です。詳細は、[パスの仕様](paths.html#パスの仕様)を参照してください。
|
||||
|
||||
`account`フィールドと`issuer`フィールドのAccountIDには、長さプレフィクスは付加 _されていません_ 。`currency`がXRPの場合、通貨コードは160ビットのゼロとして表されます。
|
||||
|
||||
各ステップの直後にはパス上の次のステップが続きます。前述したように、パスの最終ステップの後には`0xff`(別のパスが続く場合)または`0x00`(これが最終パスの終わりの場合)が続きます。
|
||||
|
||||
以下の例は、PathSetのシリアル化フォーマットを示します。
|
||||
|
||||

|
||||
|
||||
|
||||
### UIntフィールド
|
||||
[UInt8]: #uintフィールド
|
||||
[UInt16]: #uintフィールド
|
||||
[UInt32]: #uintフィールド
|
||||
[UInt64]: #uintフィールド
|
||||
|
||||
XRP Ledgerには符号なし整数タイプUInt8、UInt16、UInt32、UInt64があります。これらのタイプはすべて、指定されたビット数の標準ビッグエンディアンバイナリー符号なし整数です。
|
||||
|
||||
JSONオブジェクトにこれらのフィールドが含まれている場合、ほとんどはデフォルトでJSONの数値として表されます。例外として、UInt64は文字列として表されます。これは、一部のJSONデコーダーがこれらの整数を64ビットの「倍精度」浮動小数点数として表現しようとするためです。64ビットの「倍精度」浮動小数点数では、すべてのUInt64値を完全な精度で表現することができません。
|
||||
|
||||
もう1つの特殊なケースとして`TransactionType`フィールドがあります。JSONではこのフィールドは便宜上、トランザクションタイプの名前の文字列として表現されますが、バイナリではこのフィールドはUInt16です。[定義ファイル](#定義ファイル)内の`TRANSACTION_TYPES`オブジェクトにより、これらの文字列が特定の数値にマップされます。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
html: enableamendment.html
|
||||
parent: pseudo-transaction-types.html
|
||||
blurb: トランザクション処理を変更するAmendmentプロセスの進行状況を追跡します。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# EnableAmendment
|
||||
|
||||
トランザクション処理を変更する[Amendmentプロセス](amendments.html#amendmentプロセス)の進行状況を追跡します。この疑似トランザクションは、提案されたAmendmentが多数の承認を獲得したか否かや、Amendmentの有効化の状況を示します。
|
||||
|
||||
**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:---------------|:----------|:------------------|:----------------------------|
|
||||
| Amendment | 文字列 | Hash256 | Amendmentの一意のID。人間が読み取れる形式の名前ではありません。既知のAmendmentのリストについては、[Amendment](amendments.html)を参照してください。 |
|
||||
| LedgerSequence | 数値 | UInt32 | Amendmentが含まれているレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 |
|
||||
|
||||
## EnableAmendment Flags
|
||||
|
||||
EnableAmendment疑似トランザクションの`Flags`の値は、この疑似トランザクションが記録されているレジャーでのAmendmentのステータスを示します。
|
||||
|
||||
`Flags`の値が`0`(フラグなし)の場合、Amendmentは有効化されており、これ以降のすべてのレジャーに適用されます。`Flags`のその他の値を以下に示します。
|
||||
|
||||
| フラグ名 | 16進値 | 10進値 | 説明 |
|
||||
|:---------------|:-----------|:--------------|:-------------------------------|
|
||||
| tfGotMajority | 0x00010000 | 65536 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率は80%以上に増加しました。 |
|
||||
| tfLostMajority | 0x00020000 | 131072 | このレジャーバージョン以降、信頼できるバリデータのAmendment支持率が80%未満に減少しました。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
html: pseudo-transaction-types.html
|
||||
parent: transaction-formats.html
|
||||
blurb: バリデータがXRP Ledgerに適用する場合がある疑似トランザクションのフォーマットです。
|
||||
template: pagetype-category.html.jinja
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# 疑似トランザクション
|
||||
|
||||
疑似トランザクションはユーザーにより送信されることがなく、またネットワークで伝搬されません。その代わりに、サーバーは提案されたレジャーに疑似トランザクションを直接挿入することを選択できます。十分な数のサーバーがこの疑似トランザクションを挿入し、疑似トランザクションがコンセンサスを通過すると、この疑似トランザクションはレジャーに記録され、それ以降レジャーデータに表示されます。
|
||||
|
||||
通常のトランザクションの必須フィールドの中には、疑似トランザクションには不適切なものがあります。このような場合、疑似トランザクションのデフォルト値は以下のようになります。
|
||||
|
||||
| フィールド | デフォルト値 |
|
||||
|:--------------|:---------------------------------------------------------|
|
||||
| Account | [ACCOUNT_ZERO](addresses.html#特別なアドレス) |
|
||||
| Sequence | 0 |
|
||||
| Fee | 0 |
|
||||
| SigningPubKey | "" |
|
||||
| Signature | "" |
|
||||
@@ -1,44 +0,0 @@
|
||||
---
|
||||
html: setfee.html
|
||||
parent: pseudo-transaction-types.html
|
||||
blurb: 手数料投票の結果としてトランザクションコストまたはアカウント準備金の要件が変更されます。
|
||||
labels:
|
||||
- 手数料
|
||||
---
|
||||
# SetFee
|
||||
|
||||
[手数料投票](fee-voting.html)の結果として[トランザクションコスト](transaction-cost.html)または[アカウント準備金](reserves.html)の要件が変更されます。
|
||||
|
||||
**注記:** 疑似トランザクションは送信できませんが、レジャーの処理時に疑似トランザクションが見つかることがあります。
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp",
|
||||
"BaseFee": "000000000000000A",
|
||||
"Fee": "0",
|
||||
"ReferenceFeeUnits": 10,
|
||||
"ReserveBase": 20000000,
|
||||
"ReserveIncrement": 5000000,
|
||||
"Sequence": 0,
|
||||
"SigningPubKey": "",
|
||||
"TransactionType": "SetFee",
|
||||
"date": 439578860,
|
||||
"hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B",
|
||||
"ledger_index": 3721729,
|
||||
}
|
||||
```
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------------|:-----------------|:------------------|:------------------|
|
||||
| BaseFee | 文字列 | UInt64 | リファレンストランザクションの手数料(XRPのdrop数、16進数)。(これは、負荷スケーリング前の[トランザクションコスト](transaction-cost.html)です。) |
|
||||
| ReferenceFeeUnits | 符号なし整数 | UInt32 | リファレンストランザクションのコスト(手数料単位) |
|
||||
| ReserveBase | 符号なし整数 | UInt32 | 基本準備金(drop数) |
|
||||
| ReserveIncrement | 符号なし整数 | UInt32 | 増分準備金(drop数) |
|
||||
| LedgerSequence | 数値 | UInt32 | _(過去に発生した`SetFee`疑似トランザクションの場合は省略)_ この擬似トランザクションが表示されるレジャーバージョンのインデックス。これにより、この疑似トランザクションと別途発生する同様の変更が区別されます。 |
|
||||
|
||||
{% include '_snippets/setfee_uniqueness_note.ja.md' %}
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,45 +0,0 @@
|
||||
---
|
||||
html: unlmodify.html
|
||||
parent: pseudo-transaction-types.html
|
||||
blurb: 現在オフラインとみなされている信頼できるバリデーターのリストを変更します。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# UNLModify
|
||||
|
||||
_([NegativeUNL amendment][]により追加されました)_
|
||||
|
||||
`UNLModify`[疑似トランザクション](pseudo-transaction-types.html)は[Negative UNL](negative-unl.html)の変更を示し、信頼できるバリデータがオフラインになったかオンラインに戻ってきたことを示します。
|
||||
|
||||
**注記:** 擬似トランザクションを送信することはできませんが、台帳を処理する際に擬似トランザクションを発見することがあります。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "",
|
||||
"Fee": "0",
|
||||
"LedgerSequence": 1600000,
|
||||
"Sequence": 0,
|
||||
"SigningPubKey": "",
|
||||
"TransactionType": "UNLModify",
|
||||
"UNLModifyDisabling": 1,
|
||||
"UNLModifyValidator": "ED6629D456285AE3613B285F65BBFF168D695BA3921F309949AFCD2CA7AFEC16FE",
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/pseudo-tx-fields-intro.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| 名前 | JSONの型 | [内部の型][] | 説明 |
|
||||
|:---------------------|:--------|:------------------|:----------------------|
|
||||
| `TransactionType` | 文字列 | UInt16 | `0x0066`は文字列`UNLModify`にマッピングされ、このオブジェクトが`UNLModify`擬似トランザクションであることを表します。 |
|
||||
| `LedgerSequence` | 数値 | UInt32 | この擬似トランザクションが出現する[レジャーインデックス][]です。これは、この擬似トランザクションを、同じ変更の他の出現と区別するものです。 |
|
||||
| `UNLModifyDisabling` | 数値 | UInt8 | `1`の場合、この変更はネガティブUNLにバリデーターを追加することを意味します。0` の場合、この変更はネガティブ UNL からバリデータを削除することを意味します。(これらの値以外は使用できません) |
|
||||
| `UNLModifyValidator` | 文字列 | Blob | 追加または削除するバリデータであり、そのマスター公開鍵で識別されます。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,149 +0,0 @@
|
||||
---
|
||||
html: transaction-common-fields.html
|
||||
parent: transaction-formats.html
|
||||
blurb: どのトランザクションについても、共通する一連のフィールドがあります。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# トランザクションの共通フィールド
|
||||
|
||||
どのトランザクションについても、共通する一連のフィールドに加え、[トランザクションのタイプ](transaction-types.html)に応じた追加のフィールドがあります。フィールドの名前では、大文字と小文字が区別されます。すべてのトランザクションに共通するフィールドは、以下のとおりです。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------------|:-----------------|:------------------|:-----------------|
|
||||
| Account | 文字列 | AccountID | _(必須)_ トランザクションを開始した[アカウント](accounts.html)の一意アドレス。 |
|
||||
| TransactionType | 文字列 | UInt16 | _(必須)_ トランザクションのタイプ。有効なタイプは、`Payment`、`OfferCreate`、`OfferCancel`、`TrustSet`、`AccountSet`、`SetRegularKey`、`SignerListSet`、`EscrowCreate`、`EscrowFinish`、`EscrowCancel`、`PaymentChannelCreate`、`PaymentChannelFund`、`PaymentChannelClaim`、`DepositPreauth`です。 |
|
||||
| Fee | 文字列 | Amount | _(必須。[自動入力可能][])_ 整数で表したXRPの額(drop単位)。このトランザクションをネットワークに送信するためのコストとして消却されます。トランザクションのタイプによっては、最小要件が異なります。詳細は、[トランザクションコスト][]を参照してください。 |
|
||||
| Sequence | 符号なし整数 | UInt32 | _(必須。[自動入力可能][])_ トランザクションを開始したアカウントに関連付けられた、トランザクションのシーケンス番号。トランザクションが有効とみなされるのは、その`Sequence`番号が、同一のアカウントの直前トランザクションよりも1大きい場合のみです。保留中のトランザクションを`Sequence`番号を使用して無効にする方法については、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。 |
|
||||
| [AccountTxnID][] | 文字列 | Hash256 | _(省略可)_ 別のトランザクションを識別するためのハッシュ値。このハッシュがある場合、このトランザクションが有効になるのは、送信側のアカウントの直前送信トランザクションがこのハッシュと一致しているときのみです。 |
|
||||
| [Flags][] | 符号なし整数 | UInt32 | _(省略可)_ このトランザクションのビットフラグのセット。 |
|
||||
| LastLedgerSequence | 数値 | UInt32 | _(省略可。使用を強く推奨)_ このトランザクションを登録できるレジャーインデックスの最大値。このフィールドを指定することにより、トランザクションが検証または拒否されるのを待たなければならない期間の上限を設定することができます。詳細は、[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。 |
|
||||
| [Memos][] | オブジェクトの配列 | 配列 | _(省略可)_ このトランザクションの識別に使用される任意の追加情報。 |
|
||||
| [Signers][] | 配列 | 配列 | _(省略可)_ このトランザクションを承認するための[マルチシグ](multi-signing.html)を表すオブジェクトの配列。 |
|
||||
| SourceTag | 符号なし整数 | UInt32 | _(省略可)_ この支払いの理由、またはこのトランザクションの実行元である送信者を識別するために使用される任意の整数。一般的に、返金については、最初の支払いの`SourceTag`を返金の`DestinationTag`として指定する必要があります。 |
|
||||
| SigningPubKey | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションへの署名に使用される秘密鍵に対応する公開鍵の16進表現。空文字列の場合は、代わりに`Signers`フィールドにマルチシグが保持されていることを示します。 |
|
||||
| TxnSignature | 文字列 | Blob | _(署名時に自動追加)_ このトランザクションが、発信元であると主張しているアカウントから発信されたものであることを検証するための署名。 |
|
||||
|
||||
[自動入力可能]: #自動入力可能なフィールド
|
||||
[AccountTxnID]: #accounttxnid
|
||||
[Flags]: #flagsフィールド
|
||||
[Memos]: #memosフィールド
|
||||
[Signers]: #signersフィールド
|
||||
|
||||
[削除: rippled 0.28.0][]: トランザクションの`PreviousTxnID`フィールドは、[AccountTxnID][]フィールドに置き換えられました。この文字列/Hash256フィールドは、過去に発生したトランザクションの一部に記述されています。このフィールドは、一部の[レジャーオブジェクト](ledger-data-formats.html)にある`PreviousTxnID`という同じ名前のフィールドとは無関係です。
|
||||
|
||||
|
||||
## AccountTxnID
|
||||
|
||||
`AccountTxnID`フィールドにより、直前のトランザクション(シーケンス番号で識別)も有効で、かつ期待するトランザクションに一致しない限り、現在のトランザクションが有効にならないよう、トランザクションどうしをチェーンにすることができます。
|
||||
|
||||
このフィールドが有用になるのは、例えば、トランザクション送信用のプライマリーシステムと受動的なバックアップシステムを運用している場合です。受動的なバックアップシステムがプライマーリから切断されたものの、プライマリが完全に稼働停止となったわけではなく、両システムが同時に稼働を開始した場合は、トランザクションが2回送信される、あるいはまったく送信されないなど、深刻な問題が発生するおそれがあります。`AccountTxnID`を使用してトランザクションどうしをチェーンにすると、両方のシステムがアクティブになったときも、有効なトランザクションを送信できるのはいずれか一方のみとなります。
|
||||
|
||||
AccountTxnIDを使用するには、アカウントの1つ前のトランザクションのIDがレジャーで追跡されるよう、最初に[asfAccountTxnID](accountset.html#accountsetのフラグ)フラグを設定する必要があります。
|
||||
|
||||
|
||||
## 自動入力可能なフィールド
|
||||
## Auto-fillable Fields {.invisible}
|
||||
|
||||
一部のフィールドについては、トランザクションの署名前に、`rippled`サーバーによって、または署名に使用される[ripple-lib][]などのライブラリーによって値を自動入力できます。値を自動入力するには、最新の状態を取得するためのXRP Ledgerへのアクティブな接続が必要です。したがって、オフラインでは実行できません。[ripple-lib][]と`rippled`のどちらも、以下の値を自動的に提供できます。
|
||||
|
||||
* `Fee` - ネットワークに基づいて[トランザクションコスト][]を自動的に入力します。
|
||||
|
||||
**注記:**`rippled`の[signメソッド][]を使用するときは、`fee_mult_max`パラメーターと`fee_div_max`パラメーターを使用して、自動入力値の上限を設定できます。
|
||||
|
||||
* `Sequence` - トランザクションを送信する側のアカウントの次のシーケンス番号を自動的に使用します。
|
||||
|
||||
本番システムについては、これらのフィールドの値がサーバーによって入力される状態に _しない_ ことをお勧めします。例えば、ネットワークの負荷が一時的に急上昇したためにトランザクションコストが高騰した場合、トランザクションによっては、一時的な高額のコストを支払うよりも、必要に応じて待機し、コストが低下してから送信したほうが好ましいことがあります。
|
||||
|
||||
[Paymentトランザクション][]タイプの[`Paths`フィールド](payment.html#パス)についても、値を自動入力できます。
|
||||
|
||||
|
||||
## Flagsフィールド
|
||||
|
||||
`Flags`フィールドには、トランザクションの行動を調整する各種のオプションを設定できます。オプションは、ビット単位のOR操作と組み合わせることで複数のフラグを同時に設定できるバイナリー値として表現します。
|
||||
|
||||
トランザクションで所定のフラグが有効になっているかどうかを確認するには、ビット単位のAND演算子をフラグの値と`Flags`フィールドで使用します。結果が0の場合は無効になっていることを示し、結果がフラグ値と等しい場合は有効になっていることを示します(その他の結果の場合は、実行した操作に誤りがあることを示します)。
|
||||
|
||||
ほとんどのフラグは、特定のタイプのトランザクションに対してのみ効果があります。複数のタイプのトランザクションに対して、同一のビット単位値をフラグに再利用できるため、フラグの設定と読み取りでは`TransactionType`フィールドに留意することが重要です。
|
||||
|
||||
フラグとして定義しないビットは、0にする必要があります([fix1543 Amendment][]では、一部のタイプのトランザクションについて、このルールが適用されます。デフォルトでは、ほとんどのタイプのトランザクションでこのルールが強制されます)。
|
||||
|
||||
### グローバルフラグ
|
||||
|
||||
すべてのトランザクションにグローバルに適用される唯一のフラグは、以下のとおりです。
|
||||
|
||||
| フラグの名前 | 16進値 | 10進値 | 説明 |
|
||||
|:--------------------|:-----------|:--------------|:--------------------------|
|
||||
| tfFullyCanonicalSig | 0x80000000 | 2147483648 | _(使用を強く推奨)_ 完全に正規である署名を要求します。 |
|
||||
|
||||
[signメソッド][](または「署名と送信」モードの[submitメソッド][])を使用すると、`rippled`は、`Flags`フィールドがすでに存在している場合を除き、`tfFullyCanonicalSig`フラグを有効にした状態で`Flags`フィールドを追加します。`tfFullyCanonicalSig`フラグは、`Flags`が明示的に指定されている場合、自動的には有効に***なりません***。また、[sign_forメソッド][]を使用してマルチシグトランザクションに署名を追加する場合も、自動的には有効に***なりません***。
|
||||
|
||||
**警告:** `tfFullyCanonicalSig`を有効にしない場合は、不正使用者がトランザクションの署名を改変して、期待されるものとは別のハッシュを使用してトランザクションを成功させることが理論上可能になります。最悪の場合、同一の支払を何回も送信するようシステムに仕掛けられるおそれがあります。この問題を回避するには、署名するすべてのトランザクションで`tfFullyCanonicalSig`フラグを有効にします。
|
||||
|
||||
### フラグの範囲
|
||||
|
||||
トランザクションの`Flags`フィールドでは、さまざまなレベルや状況に適用されるフラグを設定できます。個々の状況に関するフラグは、以下の範囲に限定されます。
|
||||
|
||||
| 範囲の名前 | ビットマスク | 説明 |
|
||||
|:-----------------|:-------------|:-------------------------------------------|
|
||||
| ユニバーサルフラグ | `0xff000000` | すべてのタイプのトランザクションに対して一様に適用されるフラグ。 |
|
||||
| タイプに基づくフラグ | `0x00ff0000` | フラグを使用する[トランザクションのタイプ](transaction-types.html)に応じて意味が異なるフラグ。 |
|
||||
| 予約済みのフラグ | `0x0000ffff` | 現時点では定義されていないフラグ。トランザクションが有効になるのは、これらのフラグが無効になっている場合のみです。 |
|
||||
|
||||
**注記:** [AccountSetトランザクション][]タイプには、タイプに基づくフラグと似た目的を果たす[ビット単位ではない独自のフラグ](accountset.html#accountsetのフラグ)があります。[レジャーオブジェクト](ledger-object-types.html)にも、さまざまなビット単位のフラグが定義される`Flags`フィールドがあります。
|
||||
|
||||
|
||||
## Memosフィールド
|
||||
|
||||
`Memos`フィールドは、トランザクションに関する任意のメッセージデータを保持します。このフィールドは、オブジェクトの配列として表現します。各オブジェクトには唯一のフィールド`Memo`があり、このフィールドは、以下のフィールドを*1つ以上*持つ別のオブジェクトを保持しています。
|
||||
|
||||
| フィールド | 型 | [内部の型][] | 説明 |
|
||||
|:-----------|:-------|:------------------|:-----------------------------------|
|
||||
| MemoData | 文字列 | Blob | 通例、メモの内容を保持する任意の16進値。 |
|
||||
| MemoFormat | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、メモのエンコード方法に関する情報を保持しています([MIMEタイプ](http://www.iana.org/assignments/media-types/media-types.xhtml)など)。 |
|
||||
| MemoType | 文字列 | Blob | URLで使用できる文字を表現する16進値。通例、このメモのフォーマットを定義する一意の関係([RFC 5988](http://tools.ietf.org/html/rfc5988#section-4)に準拠)。 |
|
||||
|
||||
MemoTypeフィールドとMemoFormatフィールドには、以下の文字のみを使用できます。 `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=%`
|
||||
|
||||
`Memos`フィールドのサイズの上限は1KBです(バイナリーフォーマットでシリアル化されている場合)。
|
||||
|
||||
以下に、Memosフィールドが定義されているトランザクションの例を示します。
|
||||
|
||||
```
|
||||
{
|
||||
"TransactionType": "Payment",
|
||||
"Account": "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx",
|
||||
"Destination": "r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
|
||||
"Memos": [
|
||||
{
|
||||
"Memo": {
|
||||
"MemoType": "687474703a2f2f6578616d706c652e636f6d2f6d656d6f2f67656e65726963",
|
||||
"MemoData": "72656e74"
|
||||
}
|
||||
}
|
||||
],
|
||||
"Amount": "1"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Signersフィールド
|
||||
|
||||
`Signers`フィールドには、最大8つのキーペアから取得された署名を保持し、トランザクションを承認するための[マルチシグ](multi-signing.html)が含まれています。`Signers`リストはオブジェクトの配列であり、各オブジェクトが1つの`Signer`フィールドを保持しています。`Signer`フィールドには、以下の入れ子フィールドがあります。
|
||||
|
||||
| フィールド | 型 | [内部の型][] | 説明 |
|
||||
|:--------------|:-------|:------------------|:--------------------------------|
|
||||
| Account | 文字列 | AccountID | SignerListに記述され、この署名に関連付けられているアドレス。 |
|
||||
| TxnSignature | 文字列 | Blob | `SigningPubKey`を使用して検証できる、このトランザクションの署名。 |
|
||||
| SigningPubKey | 文字列 | Blob | この署名の作成に使用される公開鍵。 |
|
||||
|
||||
`SigningPubKey`は、`Account`アドレスに関連付けられているキーでなければなりません。参照されている`Account`が、レジャーにあり資金供給済みアカウントである場合、SigningPubKeyには、そのアカウントの現在のレギュラーキー(設定されている場合)を指定できます。また、[lsfDisableMaster](accountroot.html#accountrootのフラグ)フラグが有効になっている場合を除き、そのアカウントのマスターキーを指定することもできます。参照されている`Account`アドレスが、レジャーの資金供給済みのアカウントではない場合、`SigningPubKey`は、そのアドレスに関連付けられているマスターキーでなければなりません。
|
||||
|
||||
署名の検証は大量の演算能力を消費するタスクであるため、マルチシグトランザクションをネットワークに中継するには、追加のXRPがコストとしてかかります。マルチシグに含まれている署名ごとに、トランザクションに必要な[トランザクションコスト][]が増加します。例えば、トランザクションをネットワークに中継するための現在の最小トランザクションコストが`10000`dropである場合、`Signers`配列に3つのエントリーが含まれているマルチシグトランザクションを中継するには、`Fee`の値を少なくとも`40000`dropにする必要があります。
|
||||
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
html: transaction-formats.html
|
||||
parent: protocol-reference.html
|
||||
blurb: トランザクションは、XRP Ledgerを変更する唯一の方法です。
|
||||
template: pagetype-category.html.jinja
|
||||
---
|
||||
# トランザクションのフォーマット
|
||||
|
||||
_トランザクション_ は、XRP Ledgerを変更する唯一の方法です。[コンセンサスプロセス](consensus.html)に従って署名され、送信され、検証済みのレジャーバージョンに承認された場合にのみ、トランザクションは最終的なものになります。レジャーのルールによっては、 _[疑似トランザクション](pseudo-transaction-types.html)_ も生成されます。このトランザクションは署名も送信もされませんが、コンセンサスによって承認されなければならないことは同様です。失敗したトランザクションも、スパム対策の[トランザクションコスト][]を支払うためにXRPの残高が変更されることから、レジャーに含まれます。
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,34 +0,0 @@
|
||||
---
|
||||
html: transaction-metadata.html
|
||||
parent: transaction-formats.html
|
||||
blurb: トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# トランザクションのメタデータ
|
||||
|
||||
トランザクションのメタデータは、トランザクションの処理後にトランザクションに追加されるひとまとまりのデータです。レジャーに記録されるトランザクションは、トランザクションが成功するかどうかにかかわらず、メタデータを保持しています。トランザクションのメタデータには、トランザクションの結果の詳細が含まれます。
|
||||
|
||||
**警告:** トランザクションのメタデータに示された変更が最終的なものになるのは、トランザクションが検証済みバージョンのレジャーに記録された場合のみです。
|
||||
|
||||
以下に、トランザクションのメタデータに含まれる可能性があるフィールドをいくつか示します。
|
||||
|
||||
{% include '_snippets/tx-metadata-field-table.ja.md' %} <!--_ -->
|
||||
|
||||
## delivered_amount
|
||||
|
||||
[Paymentトランザクション][]の`Amount`。`Destination`に送金された金額を示し、トランザクションが成功すると、**[Partial Payments](partial-payments.html)であった場合を除いて、** 宛先は当該の金額を受取ります(Partial Paymentsの場合、`Amount`を上限とする正の金額が受取られます)。`Amount`フィールドを信頼するかどうかを選択するのではなく、メタデータの`delivered_amount`フィールドを使用して、宛先に実際に到達する金額を確認してください。
|
||||
|
||||
トランザクションのメタデータの`delivered_amount`フィールドは、成功したすべてのPaymentトランザクションが保持しており、フォーマットは通常の通貨額と同様です。ただし、送金額は、以下の両方の条件に該当するトランザクションについては使用できません。
|
||||
|
||||
* Partial Paymentsである
|
||||
* 2014-01-20よりも前の検証済みレジャーに含まれている
|
||||
|
||||
両方の条件に該当する場合、`delivered_amount`には、実際の金額ではなく文字列値`unavailable`が記述されます。この場合、トランザクションのメタデータにあるAffectedNodesを読み取ることが、実際に送金された金額を割り出せる唯一の手段になります。
|
||||
|
||||
関連項目: [Partial Payments](partial-payments.html)
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
html: tec-codes.html
|
||||
parent: transaction-results.html
|
||||
blurb: tecコードは、トランザクションは失敗したものの、トランザクションコストを適用するために、このトランザクションがレジャーに適用されたことを示します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# tecコード
|
||||
|
||||
これらのコードは、トランザクションは失敗したものの、[トランザクションコスト](transaction-cost.html)を適用するために、このトランザクションがレジャーに適用されたことを示します。100から199までの数値が含まれています。数値ではなくテキストコードの使用が推奨されます。
|
||||
|
||||
ほとんどの場合、`tec`コード付きのトランザクションは、[トランザクションコスト](transaction-cost.html)として支払われた分のXRPを消却する以外の操作は実行しませんが、いくつかの例外があります。例外として、`tecOVERSIZE`となったトランザクションは、一部の[資金供給のないオファー](offers.html#オファーのライフサイクル)を引き続きクリーンアップします。[トランザクションメタデータ](transaction-metadata.html)を常に確認し、トランザクションの実行内容を正確に把握してください。
|
||||
|
||||
**注意:** 暫定的に`tec`コードで失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。検証済みレジャーバージョンに記録される結果が最終結果となります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。
|
||||
|
||||
| コード | 値 | 説明 |
|
||||
|:---------------------------|:------|:----------------------------------------|
|
||||
| `tecCLAIM` | 100 | 不明なエラー。トランザクションコストは消却されました。 |
|
||||
| `tecCRYPTOCONDITION_ERROR` | 146 | この[EscrowCreate][]トランザクションまたは[EscrowFinish][]トランザクションに指定されるCrypto-conditionの形式が誤っているか、または一致しませんでした。 |
|
||||
| `tecDIR_FULL` | 121 | トランザクションがアカウントの所有者ディレクトリにオブジェクト(トラストライン、Check、Escrow、Payment Channelなど)を追加しようと試みましたが、このアカウントはレジャーにこれ以上のオブジェクトを所有できません。 |
|
||||
| `tecDUPLICATE` | 149 | トランザクションが、すでに存在するオブジェクト([DepositPreauth][]の承認など)を作成しようとしました。 |
|
||||
| `tecDST_TAG_NEEDED` | 143 | [Paymentトランザクション][]の宛先タグが省略されましたが、支払先アカウントでは`lsfRequireDestTag`フラグが有効になっています。[新規: rippled 0.28.0][] |
|
||||
| `tecEXPIRED` | 148 | トランザクションがオブジェクト(OfferやCheckなど)を作成しようとしましたが、そのオブジェクトで指定された有効期限がすでに経過しています。 |
|
||||
| `tecFAILED_PROCESSING` | 105 | トランザクションの処理中に不明なエラーが発生しました。 |
|
||||
| `tecFROZEN` | 137 | [OfferCreateトランザクション][]が失敗しました。関係する1つまたは両方の資産が[Global Freeze](freezes.html)の対象となっています。 |
|
||||
| `tecHAS_OBLIGATIONS ` | 151 | 削除するアカウントが削除できないオブジェクトを所有しているため、[AccountDeleteトランザクション][]が失敗しました。詳細は、[アカウントの削除](deleting-accounts.html)を参照してください。 |
|
||||
| `tecINSUF_RESERVE_LINE` | 122 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください)このエラーは、取引相手から同一通貨の送信側アカウントへのトラストラインがデフォルト以外の状態である場合に発生します。(その他のケースについては`tecNO_LINE_INSUF_RESERVE`を参照してください。) |
|
||||
| `tecINSUF_RESERVE_OFFER` | 123 | 送信側アカウントに、新しいオファーを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) |
|
||||
| `tecINSUFF_FEE` | 136 | 指定された[トランザクションコスト](transaction-cost.html)を支払うのに十分なXRPが送金元アカウントにないため、トランザクションが失敗しました。(この場合、送金元のXRPが指定されたトランザクションコストよりも低い場合でも、トランザクション処理によってすべて消却されます。)この結果は、このトランザクションがコンセンサスセットに含まれるのに十分なネットワークに配布された*後に*アカウントの残高が減少した場合にのみ発生します。そうでない場合、トランザクションは配布される前に[`terINSUF_FEE_B`](ter-codes.html)で失敗します。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | 141 | トランザクションによって[必要準備金](reserves.html)が増加し、送信側アカウントの残高を超える可能性があります。[SignerListSet][]、[PaymentChannelCreate][]、[PaymentChannelFund][]、および[EscrowCreate][]からこのエラーコードが返されることがあります。詳細は、[SignerListと準備金](signerlist.html#signerlistと準備金)を参照してください。 |
|
||||
| `tecINTERNAL` | 144 | 不明な内部エラーが発生し、トランザクションコストは適用されました。通常はこのエラーは返されません。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tecINVARIANT_FAILED` | 147 | このトランザクションを実行しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tecKILLED` | 150 | [OfferCreateトランザクション][]がtfFillOrKillフラグを指定しましたが、トランザクションを確定できなかったため、このトランザクションは取り消されました。_([fix1578 Amendment][]が必要です。)_ |
|
||||
| `tecNEED_MASTER_KEY` | 142 | このトランザクションはマスターキーを必要とする変更([マスターキーの無効化または残高凍結能力の放棄](accountset.html#accountsetのフラグ)など)を試みました。[新規: rippled 0.28.0][] |
|
||||
| `tecNO_ALTERNATIVE_KEY` | 130 | トランザクションが唯一の[トランザクション承認](transactions.html#トランザクションの承認)メソッドを削除しようとしました。これは、レギュラーキーを削除する[SetRegularKeyトランザクション][]、SignerListを削除する[SignerListSetトランザクション][]、またはマスターキーを無効にする[AccountSetトランザクション][]である可能性があります。(`rippled` 0.30.0より前のバージョンでは、このトランザクションは`tecMASTER_DISABLED`と呼ばれていました。) |
|
||||
| `tecNO_AUTH` | 134 | トランザクションはトラストラインの残高を、`lsfRequireAuth`フラグが有効になっているアカウントに追加する必要がありましたが、そのトラストラインが承認されていなかったため、失敗しました。トラストラインが存在しない場合は、代わりに`tecNO_LINE`が発生します。 |
|
||||
| `tecNO_DST` | 124 | トランザクションの受信側のアカウントが存在しません。これには、PaymentトランザクションタイプやTrustSetトランザクションタイプがあります。(XRPを十分に受信した場合に作成される可能性があります。) |
|
||||
| `tecNO_DST_INSUF_XRP` | 125 | トランザクションの受信側のアカウントが存在しません。トランザクションは、アカウントの作成に十分なXRPを送金していません。 |
|
||||
| `tecNO_ENTRY` | 140 | トランザクションは[Check](checks.html)か[Payment Channel](payment-channels.html)か[Deposit Preauth事前承認](depositpreauth-object.html)などの[レジャーオブジェクト](ledger-object-types.html)の変更を試みましたが、そのオブジェクトは存在しません。以前のトランザクションで削除されましたか、あるいはこのトランザクションに正しくないIDフィールド(`CheckID`か`Channel`か`Unauthorize`など)があります。 |
|
||||
| `tecNO_ISSUER` | 133 | 通貨額の`issuer`フィールドに指定されたアカウントが存在しません。 |
|
||||
| `tecNO_LINE` | 135 | [OfferCreateトランザクション][]の`TakerPays`フィールドに、`lsfRequireAuth`を有効にしているイシュアーの資産が指定されており、このオファーを行っているアカウントはその資産に関してトラストラインを確立していません。(通常、オファーを暗黙に行うと必要に応じてトラストラインが作成されますが、この場合は承認なしでは資産を保有できないので問題にはなりません。)トラストラインは存在しているが承認されていない場合は、代わりに`tecNO_AUTH`が発生します。 |
|
||||
| `tecNO_LINE_INSUF_RESERVE` | 126 | 送信側アカウントに、新しいトラストラインを作成するのに十分なXRPがないため、トランザクションが失敗しました。([準備金](reserves.html)を参照)このエラーは、取引相手がこのアカウントに対する同一通貨のトラストラインを持っていない場合に発生します。(その他のケースについては`tecINSUF_RESERVE_LINE`を参照してください。) |
|
||||
| `tecNO_LINE_REDUNDANT` | 127 | トランザクションはトラストラインをデフォルト状態に設定しようと試みましたが、トラストラインが存在していなかったため、失敗しました。 |
|
||||
| `tecNO_PERMISSION` | 139 | 送信者にはこの操作を実行する権限がありません。たとえば[EscrowFinishトランザクション][]が`FinishAfter`時刻に達する前に保留中の支払をリリースしようとしたか、送信者が所有していないChannelで誰かが[PaymentChannelFund][]を使用しようとしたか、または[Payment][]が「DepositAuth」フラグが有効になっているアカウントに資金の送金を試みました。 |
|
||||
| `tecNO_REGULAR_KEY` | 131 | [AccountSetトランザクション][]がマスターキーを無効にしようとしましたが、アカウントにはマスターキー以外で[トランザクションを承認する](transactions.html#トランザクションの承認)方法がありません。[マルチシグ](multi-signing.html)が有効な場合、このコードは廃止予定であり、代わりに`tecNO_ALTERNATIVE_KEY`が使用されます。 |
|
||||
| `tecNO_TARGET` | 138 | トランザクションが参照するEscrowレジャーオブジェクトまたはPayChannelレジャーオブジェクトが存在していません。これらのオブジェクトは、これまでに存在したことがないか、すでに削除されています。(たとえば、別の[EscrowFinishトランザクション][]で保留中の支払がすでに実行されている場合などです。)あるいは、支払先アカウントで`asfDisallowXRP`が設定されているため、このアカウントは[PaymentChannelCreate][]トランザクションまたは[EscrowCreate][]トランザクションの宛先に指定できません。 |
|
||||
| `tecOVERSIZE` | 145 | サーバーがこのトランザクションの適用時に大量のメタデータを作成したため、このトランザクションを処理できませんでした。[新規: rippled 0.29.0-hf1][] |
|
||||
| `tecOWNERS` | 132 | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 |
|
||||
| `tecPATH_DRY` | 128 | トランザクションが失敗しました。指定されたパスに、送信の実行に十分な流動性がありませんでした。つまり、支払元アカウントと支払先アカウントはトラストラインにより関連付けされていません。 |
|
||||
| `tecPATH_PARTIAL` | 101 | トランザクションが失敗しました。指定されたパスに、全額を送金するのに十分な流動性がありませんでした。 |
|
||||
| `tecTOO_SOON` | 152 | 削除するアカウントの`Sequence`番号が大きすぎるため、[AccountDeleteトランザクション][]が失敗しました。現行のレジャーインデックスは、アカウントのシーケンス番号より256以上大きくなければなりません。 |
|
||||
| `tecUNFUNDED` | 129 | トランザクションが失敗しました。アカウントがトランザクションの支払額に十分なXRPを保有しておらず、 _かつ_ このトランザクションを実行するのに追加で必要となる準備金が不足しています。([準備金](reserves.html)を参照してください。) |
|
||||
| `tecUNFUNDED_ADD` | 102 | **廃止予定。** |
|
||||
| `tecUNFUNDED_PAYMENT` | 104 | 送信側アカウントが準備金を考慮せずに、保有するXRPを超える額の送信を試みたため、トランザクションが失敗しました。([準備金](reserves.html)を参照してください。) |
|
||||
| `tecUNFUNDED_OFFER` | 103 | [OfferCreateトランザクション][]が失敗しました。オファーの作成元アカウントに`TakerGets`通貨がありません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,39 +0,0 @@
|
||||
---
|
||||
html: tef-codes.html
|
||||
parent: transaction-results.html
|
||||
blurb: tefコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# tefコード
|
||||
|
||||
これらのコードは、トランザクションが失敗してレジャーに記録されなかったが、一部の理論上のレジャーでは正常に完了できた可能性があることを示します。通常これは、このトランザクションが今後すべてのレジャーで正常に完了できないことを意味します。-199から-100までの数値が含まれています。特定のエラーを示すコードは変更される可能性があるので、コードを使用しないでください。
|
||||
|
||||
**注意:** `tef`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼できるトランザクションの送信](reliable-transaction-submission.html)を参照してください。
|
||||
|
||||
| コード | 説明 |
|
||||
|:-----------------------|:----------------------------------------------------|
|
||||
| `tefALREADY` | まったく同一のトランザクションがすでに適用されています。 |
|
||||
| `tefBAD_ADD_AUTH` | **廃止予定。** |
|
||||
| `tefBAD_AUTH` | このアカウントの署名に使用したキーには、このアカウントを変更する権限がありません。(このアカウントが[レギュラーキー](cryptographic-keys.html)として同じキーセットを持っている場合は変更が承認される可能性があります。) |
|
||||
| `tefBAD_AUTH_MASTER` | このトランザクションを承認するために指定された1つの署名がマスターキーと一致していませんが、このアドレスに関連付けられているレギュラーキーもありません。 |
|
||||
| `tefBAD_LEDGER` | トランザクションの処理中に、レジャーが予期しない状態にあることが検出されました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tefBAD_QUORUM` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、そこに含まれるすべての署名の重みの合計が定数を満たしていません。 |
|
||||
| `tefBAD_SIGNATURE` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、送信側アカウントに関連付けられているSignerListにないアドレスの署名が含まれていました。 |
|
||||
| `tefCREATED` | **廃止予定。** |
|
||||
| `tefEXCEPTION` | トランザクションの処理中に、サーバーが予期しない状態になりました。この状態は、予期しない入力(トランザクションのバイナリーデータの形式が大幅に誤っている場合など)が原因となった可能性があります。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tefFAILURE` | トランザクション適用中の不明な障害。 |
|
||||
| `tefINTERNAL` | トランザクションの適用を試みた際に、サーバーが予期しない状態になりました。このエラーを再現できる場合は、修正のため[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tefINVARIANT_FAILED` | [トランザクションコスト](transaction-cost.html)を請求しようとしたところ、不変性チェックが失敗しました。[EnforceInvariants Amendment][]が必要です。このエラーを再現できる場合は、[問題を報告](https://github.com/XRPLF/rippled/issues)してください。 |
|
||||
| `tefMASTER_DISABLED` | トランザクションはアカウントのマスターキーで署名されていましたが、アカウントに`lsfDisableMaster`フィールドが設定されていました。 |
|
||||
| `tefMAX_LEDGER` | トランザクションには[`LastLedgerSequence`](reliable-transaction-submission.html#lastledgersequence)パラメーターが指定されていましたが、現在のレジャーのシーケンス番号はすでに指定値を上回っています。 |
|
||||
| `tefNO_AUTH_REQUIRED` | [TrustSetトランザクション][]がトラストラインを承認済みとしてマークしようとしましたが、対応するアカウントに対して`lsfRequireAuth`フラグが有効になっていないため、承認は不要です。 |
|
||||
| `tefNOT_MULTI_SIGNING` | トランザクションは[マルチシグ](multi-signing.html)トランザクションでしたが、送信側アカウントでSignerListが定義されていません。 |
|
||||
| `tefPAST_SEQ` | トランザクションのシーケンス番号は、トランザクションの送信元アカウントの現在のシーケンス番号よりも小さい番号です。 |
|
||||
| `tefTOO_BIG` | レジャー内にある、トランザクションの影響を受けるオブジェクトが多過ぎます。例えば、これは[AccountDeleteトランザクション][]でしたが、削除されるアカウントのレジャーには1,000個を超えるオブジェクトがあります。 |
|
||||
| `tefWRONG_PRIOR` | トランザクションに`AccountTxnID`フィールド(または廃止予定の`PreviousTxnID`フィールド)が含まれていますが、このフィールドに指定されているトランザクションはアカウントの前のトランザクションに一致しません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
html: tel-codes.html
|
||||
parent: transaction-results.html
|
||||
blurb: telコードは、トランザクションを処理するローカルサーバーでのエラーを示します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# telコード
|
||||
|
||||
これらのコードは、トランザクションを処理するローカルサーバーでのエラーを示します。構成や負荷レベルが異なる別のサーバーでは同じトランザクションが正常に処理される場合があります。-399から-300までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。
|
||||
|
||||
**注意:** `tel`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。
|
||||
|
||||
| コード | 説明 |
|
||||
|:----------------------|:-----------------------------------------------------|
|
||||
| `telBAD_DOMAIN` | トランザクションで指定されたドメイン値([AccountSetトランザクション][]の`Domain`フィールドなど)は、レジャーに保管するには長すぎるために使用できません。 |
|
||||
| `telBAD_PATH_COUNT` | トランザクションに含まれているパスが多過ぎるため、ローカルサーバーが処理できません。 |
|
||||
| `telBAD_PUBLIC_KEY` | トランザクションで指定された公開鍵値([AccountSetトランザクション][]の`MessageKey`フィールドなど)は長すぎるために使用できません。 |
|
||||
| `telCAN_NOT_QUEUE` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしていませんが、[キュー制限](transaction-queue.html#キューの制約事項)を満たしていなかったため、サーバーはこのトランザクションをキューに入れませんでした。たとえば、送信者のキューにすでに10個のトランザクションが入っている場合には、トランザクションからこのコードが返されます。後で再試行するか、`Fee`フィールドに高いコストを指定して代わりのトランザクションに署名して送信することができます。 |
|
||||
| `telCAN_NOT_QUEUE_BALANCE` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またすでにキューに入っているトランザクションの予測XRPコストの合計が、アカウントの予想残高よりも大きいために、このトランザクションはトランザクションキューに追加されませんでした。後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] |
|
||||
| `telCAN_NOT_QUEUE_BLOCKS` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このトランザクションはキュー内の既存のトランザクションを置き換えることができませんでした。これは、認証メソッドを変更することで、すでにキューに入っている同じ送信者からのトランザクションがブロックされる可能性があるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] |
|
||||
| `telCAN_NOT_QUEUE_BLOCKED` | トランザクションが[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。これは、このトランザクションの前にキューに入れられた同じ送信者のトランザクションによってブロックされるためです。(これには[SetRegularKey][]トランザクションと[SignerListSet][]トランザクションのすべて、およびRequireAuth/OptionalAuth、DisableMaster、AccountTxnIDフラグを変更する[AccountSet][]トランザクションなどがあります。)後で再試行するか、別のサーバーへの送信を試みることができます。[新規: rippled 0.70.2][] |
|
||||
| `telCAN_NOT_QUEUE_FEE` | トランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、トランザクションキューにも追加されませんでした。このコードは、送信者とシーケンス番号が同じトランザクションがすでにキューに入れられており、新しいトランザクションが、既存のトランザクションを置き換えるのに十分なトランザクションコストを支払わない場合に発生します。キュー内のトランザクションを置き換えるには、新しいトランザクションの`Fee`値に25%以上の上乗せ([手数料レベル](transaction-cost.html#手数料レベル)で評価)が必要となります。`Fee`の値を大きくして再試行するか、大きな数字の`Sequence`番号でこのトランザクションを送信して既存のトランザクションを置き換えないようにするか、別のサーバーへ送信を試みることができます。[新規: rippled 0.70.2][] |
|
||||
| `telCAN_NOT_QUEUE_FULL` | このトランザクションは[オープンレジャーコスト](transaction-cost.html)を満たしておらず、またこのサーバーのトランザクションキューが一杯であるため、サーバーはこのトランザクションをキューに入れませんでした。`Fee`の値を大きくして再試行するか、後で試してみるか、別のサーバーへの送信を試みることができます。新しいトランザクションのトランザクションコスト([手数料レベル](transaction-cost.html#手数料レベル)で評価)は、キュー内でトランザクションコストが最も低いトランザクションよりも高くなければなりません。[新規: rippled 0.70.2][] |
|
||||
| `telFAILED_PROCESSING` | トランザクションの処理中に不明なエラーが発生しました。 |
|
||||
| `telINSUF_FEE_P` | トランザクションの`Fee`が、サーバーの負荷レベルに基づいて定められるサーバーの現在の[トランザクションコスト](transaction-cost.html)要件を満たすのに十分な値ではありあません。 |
|
||||
| `telLOCAL_ERROR` | 不明なローカルエラー。 |
|
||||
| `telNO_DST`_`PARTIAL` | トランザクションは、新しいアカウントに資金を供給するXRPの支払ですが、[tfPartialPaymentフラグ](partial-payments.html)が有効になっていました。これは許可されていません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,54 +0,0 @@
|
||||
---
|
||||
html: tem-codes.html
|
||||
parent: transaction-results.html
|
||||
blurb: temコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# temコード
|
||||
|
||||
これらのコードは、トランザクションの形式が正しくないため、XRP Ledgerプロトコルに基づきトランザクションが正常に完了しないことを示します。これらには-299から-200までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。
|
||||
|
||||
**ヒント:** `tem`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。有効なトランザクションに関するルールが変更されない限り、`tem`コードが最終的な結果となります。(例えば、[Amendment](amendments.html)の有効化前に当該のAmendmentの機能を使用すると`temDISABLED`になります。後日Amendmentが有効化されると、エラーになったトランザクションは有効となり、正常に処理される可能性があります。)
|
||||
|
||||
| コード | 説明 |
|
||||
|:-----------------------------|:----------------------------------------------|
|
||||
| `temBAD_AMOUNT` | トランザクションにより指定された額(宛先への[Payment][]の`Amount`または`SendMax`の金額など)が無効でした。マイナスの金額が指定された可能性があります。 |
|
||||
| `temBAD_AUTH_MASTER` | このトランザクションの署名に使用されたキーが、トランザクションの送信元アカウントのマスターキーと一致していません。また、アカウントに[レギュラーキー](cryptographic-keys.html)セットがありません。 |
|
||||
| `temBAD_CURRENCY` | トランザクションの通貨フィールドが誤って指定されています。正しいフォーマットについては、[通貨額の指定][通貨額]を参照してください。 |
|
||||
| `temBAD_EXPIRATION` | トランザクションの有効期限の値が誤って指定されています([OfferCreateトランザクション][]など)。あるいは、トランザクションに必須の有効期限値が指定されていません(例えば、[EscrowCreateトランザクション][]の作成過程などで)。 |
|
||||
| `temBAD_FEE` | トランザクションで`Fee`の値が誤って指定されています(例えば、XRP以外の通貨やマイナスの額のXRPを指定するなど)。 |
|
||||
| `temBAD_ISSUER` | 要求に指定されている通貨の`issuer`フィールドが、トランザクションにて誤って指定されています。 |
|
||||
| `temBAD_LIMIT` | [TrustSetトランザクション][]でトラストラインの`LimitAmount`値が誤って指定されています。 |
|
||||
| `temBAD_OFFER` | [OfferCreateトランザクション][]で無効なオファーが指定されています(XRPをXRP自身と取引するオファー、マイナスの額のオファーなど)。 |
|
||||
| `temBAD_PATH` | [Paymentトランザクション][]の1つ以上の[パス](paths.html)が誤って指定されています。例えば、XRPのイシュアーが含まれていたり、アカウントが異なる方法で指定されたりするなど。 |
|
||||
| `temBAD_PATH_LOOP` | [Paymentトランザクション][]で[パス](paths.html)の1つがループとしてマークされているため、限られた時間内に処理できません。 |
|
||||
| `temBAD_SEND_XRP_LIMIT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfLimitQuality](payment.html#クオリティの制限)フラグが使用されましたが、XRP間の支払いでは通貨の取引は行われません。 |
|
||||
| `temBAD_SEND_XRP_MAX` | [Paymentトランザクション][]で、XRP間の直接支払に`SendMax`フィールドが指定されていますが、XRPの送金ではSendMaxは不要です。(SendMaxでXRPが有効となるのは、宛先への`Amount`がXRPではない場合のみです。) |
|
||||
| `temBAD_SEND_XRP_NO_DIRECT` | [Paymentトランザクション][]で、XRP間の直接支払に[tfNoDirectRipple](payment.html#paymentのフラグ)フラグが使用されていますが、XRP間の支払いは常に直接行われます。 |
|
||||
| `temBAD_SEND_XRP_PARTIAL` | [Paymentトランザクション][]で、XRP間の直接支払に [tfPartialPayment](partial-payments.html)フラグが使用されていますが、XRP間の直接支払では常に全額が送金されます。 |
|
||||
| `temBAD_SEND_XRP_PATHS` | [Paymentトランザクション][]で、XRP送金時の`Paths`が指定されていますが、XRP間の支払いは常に直接行われます。 |
|
||||
| `temBAD_SEQUENCE` | トランザクションは、トランザクション自体の`Sequence`番号よりも大きいシーケンス番号を参照します。例えば、取り消したいオファーは、そのオファーを取り消すトランザクションよりも後に置く必要があります。 |
|
||||
| `temBAD_SIGNATURE` | このトランザクションを承認するための署名がないか、または署名の形式が適切ではありません。(適切な形式の署名がアカウントで承認されない場合は、[tecNO_PERMISSION](tec-codes.html)を参照してください。) |
|
||||
| `temBAD_SRC_ACCOUNT` | このトランザクションの送信元の`Account`(「支払元アカウント」)の[アカウント](accounts.html)アドレスは適切な形式ではありません。 |
|
||||
| `temBAD_TRANSFER_RATE` | [AccountSetトランザクションの`TransferRate`フィールド](accountset.html#transferrate)のフォーマットが適切ではないか、または許容範囲外です。 |
|
||||
| `temCANNOT_PREAUTH_SELF` | [DepositPreauthトランザクション][]の送信者は、事前承認対象のアカウントとしても指定されていました。自分自身を事前承認することはできません。 |
|
||||
| `temDST_IS_SRC` | トランザクションで宛先アドレスがトランザクションの送信元`Account`として誤って指定されていました。これにはトラストライン(支払先アドレスは`LimitAmount`の`issuer`フィールド)とPayment Channel(支払先アドレスは`Destination`フィールド)などがあります。 |
|
||||
| `temDST_NEEDED` | トランザクションで宛先が誤って省略されていました。これは、[Paymentトランザクション][]の`Destination`フィールド、または`TrustSet`トランザクションの`LimitAmount`フィールドの`issuer`サブフィールドで起こり得ます。 |
|
||||
| `temINVALID` | その他の理由により、トランザクションは無効です。例えば、トランザクションIDのフォーマットや署名の形式が正しくないなど、トランザクションを解釈する過程で何らかの誤った処理が発生した可能性があります。 |
|
||||
| `temINVALID_FLAG` | トランザクションに指定されている[フラグ](transaction-common-fields.html#flagsフィールド)が存在していないか、または矛盾するフラグの組み合わせが指定されています。 |
|
||||
| `temMALFORMED` | トランザクションのフォーマットで不明な問題が発生しました。 |
|
||||
| `temREDUNDANT` | トランザクションは処理を行いません。例えば、送信側アカウントに支払いを直接送金する場合や、同一イシュアーの同一通貨を売買するオファーを作成する場合などです。 |
|
||||
| `temREDUNDANT_SEND_MAX` | [削除: rippled 0.28.0][] |
|
||||
| `temRIPPLE_EMPTY` | [Paymentトランザクション][]に指定されている`Paths`フィールドが空ですが、この支払いを完了するにはパスが必要です。 |
|
||||
| `temBAD_WEIGHT` | [SignerListSetトランザクション][]に無効な`SignerWeight`が指定されています。例えば、0やマイナス値など。 |
|
||||
| `temBAD_SIGNER` | [SignerListSetトランザクション][]に指定されている署名者が無効です。例えば、重複するエントリが指定されている場合や、SignerListの所有者がメンバーでもある場合などです。 |
|
||||
| `temBAD_QUORUM` | [SignerListSetトランザクション][]に無効な`SignerQuorum`値が指定されています。この値が0以下であるか、またはリストのすべての署名者の合計数を超えています。 |
|
||||
| `temUNCERTAIN` | 内部使用のみ。通常はこのコードは返されません。 |
|
||||
| `temUNKNOWN` | 内部使用のみ。通常はこのコードは返されません。 |
|
||||
| `temDISABLED` | このトランザクションには、無効化されているロジックが必要です。通常これは、現行レジャー向けに有効化されていない[Amendment](amendments.html)を使用しようとしていることを意味します。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
html: ter-codes.html
|
||||
parent: transaction-results.html
|
||||
blurb: terコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# terコード
|
||||
|
||||
これらのコードは、トランザクションは失敗したけれども、将来そのトランザクションを正常に適用できる可能性があることを示します。通常は、他の仮定トランザクションが先に適用される場合など。これらには-99から-1までの数値が含まれています。実際のエラーに対して数値は変更される可能性がありますので、これに頼らないでください。
|
||||
|
||||
**注意:** `ter`コードが付いているトランザクションはレジャーには適用されません。またこのようなトランザクションが原因でXRP Ledgerの状態が変わることはありません。ただし、暫定的に失敗したトランザクションは、再適用後に成功するか、または別のコードで失敗する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)と[信頼性の高いトランザクション送信](reliable-transaction-submission.html)を参照してください。
|
||||
|
||||
| コード | 説明 |
|
||||
|:-----------------|:----------------------------------------------------------|
|
||||
| `terFUNDS_SPENT` | **廃止予定。** |
|
||||
| `terINSUF_FEE_B` | トランザクションの送信元アカウントに、トランザクションに指定されている`Fee`の支払いに十分なXRPがありません。 |
|
||||
| `terLAST` | 内部使用のみ。通常はこのコードは返されません。 |
|
||||
| `terNO_ACCOUNT` | レジャーのトランザクション送信元アドレスに(まだ)資金が供給されていません。 |
|
||||
| `terNO_AUTH` | トランザクションでは、`lsfRequireAuth`が有効であるアカウントが発行した通貨を未承認のトラストラインに追加する操作が行われます。たとえば、保有が許可されていない通貨を購入するオファーを出した場合などです。 |
|
||||
| `terNO_LINE` | 内部使用のみ。通常はこのコードは返されません。 |
|
||||
| `terNO_RIPPLE` | 内部使用のみ。通常はこのコードは返されません。 |
|
||||
| `terOWNERS` | トランザクションでは、トランザクションを送信するアカウントの「所有者カウント」はゼロ以外である必要があります。このためトランザクションを正常に完了できません。たとえば、トラストラインや使用可能なオファーがあるアカウントでは、[`lsfRequireAuth`](accountset.html#accountsetのフラグ)フラグを有効にできません。 |
|
||||
| `terPRE_SEQ` | 現在のトランザクションの`Sequence`番号が、トランザクションを送信するアカウントの現在のシーケンス番号よりも大きな番号です。 |
|
||||
| `terRETRY` | 再試行可能な不明なエラー。 |
|
||||
| `terQUEUED` | トランザクションは負荷スケーリングされた[トランザクションコスト](transaction-cost.html)の要件を満たしているが、オープンレジャーの要件を満たしていなかったため、トランザクションは将来のレジャーのキューに入れられました。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,19 +0,0 @@
|
||||
---
|
||||
html: tes-success.html
|
||||
parent: transaction-results.html
|
||||
blurb: tesSUCCESSコードは、トランザクションが成功したことを示す唯一のコードです。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# tes Success
|
||||
|
||||
`tesSUCCESS`コードは、トランザクションが成功したことを示す唯一のコードです。このコードは、必ずしも処理が期待どおりに終了したことを示すものではありません。(たとえば[OfferCancel][]は、キャンセルするオファーがない場合でも「正常に終了」できます。)`tesSUCCESS`の結果には数値0が使用されます。
|
||||
|
||||
| コード | 説明 |
|
||||
|:-----------|:----------------------------------------------------------------|
|
||||
| `tesSUCCESS` | トランザクションが適用され、他のサーバーに転送されました。検証済みレジャーにこのコードが記録されている場合は、トランザクションの成功が最終的な結果となります。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
html: transaction-results.html
|
||||
parent: transaction-formats.html
|
||||
blurb: rippledサーバーのトランザクション結果の解釈の仕方について説明します。
|
||||
labels:
|
||||
- トランザクション送信
|
||||
---
|
||||
# トランザクションの結果
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/protocol/TER.h "Source")
|
||||
|
||||
`rippled`サーバーは、トランザクション結果の要約を結果コードで示し、結果コードは`engine_result`や`meta.TransactionResult`などのフィールドに記述されます。これらのコードは、それぞれ異なるプレフィクスを付加した複数のカテゴリーに分類されます。
|
||||
|
||||
| カテゴリー | プレフィクス | 説明 |
|
||||
|:----------------------|:------------------------|:---------------------------|
|
||||
| コストの請求のみ | [tec](tec-codes.html) | トランザクションは意図された目的を果さず、[トランザクションコスト](transaction-cost.html)は消却されました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 |
|
||||
| 失敗 | [tef](tef-codes.html) | サーバーの現在の(進行中の)レジャーまたはその後のレジャーに対して、トランザクションを適用できません。すでに適用されているか、レジャーの状態が原因となって、将来の適用が不可能になっています。 |
|
||||
| ローカルエラー | [tel](tel-codes.html) | 負荷が高いなど、ローカルの状態が原因となって、`rippled`サーバーでエラーが発生しました。サーバーまたは時間を変えて再送信すると、別の応答を得られる可能性があります。 |
|
||||
| 形式が正しくないトランザクション | [tem](tem-codes.html) | 構文が誤っている、オプションが互いに矛盾している、署名が不正であるなどの原因で、トランザクションが無効になっています。 |
|
||||
| 再試行 | [ter](ter-codes.html) | トランザクションを適用できませんでしたが、後ほど適用できる可能性があります。 |
|
||||
| 成功 | [tes](tes-success.html) | (エラーではありません)トランザクションは成功しました。この結果が最終的なものになるのは、検証済みレジャーに記録された場合のみです。 |
|
||||
|
||||
**警告:** トランザクションの暫定的な結果コードは、最終的な結果とは異なるものになる場合があります。暫定的に成功とされたトランザクションが最終的に失敗する場合や、暫定的に失敗とされたトランザクションが最終的に成功する場合もあります。暫定的に失敗とされたトランザクションが、最終的に別のコードで失敗とされる場合もあります。トランザクションの結果が最終的なものとなるタイミングを判断する方法については、[結果のファイナリティー](finality-of-results.html)を参照してください。
|
||||
|
||||
ローカルエラー(`tel`)と形式が正しくないトランザクション(`tem`)の違いは、プロトコルレベルでのルールの問題です。例えば、トランザクションに含めることができるパスの最大数について、プロトコルでは上限が設定されていないとします。一方、サーバーでは、処理できるパスの数について上限を定義している場合があります。2つのサーバーがあり、設定がそれぞれ異なっている場合、一方はパスが多いという理由でトランザクションの`tel`エラーを返すのに対して、他方のサーバーではトランザクションが正常に処理されることもあります。コンセンサスを獲得したトランザクションを処理できるサーバーが十分にある場合、検証済みレジャーに含まれる可能性はあります。
|
||||
|
||||
これに対して、`tem`エラーは、設定にかかわらずトランザクションを適用できるサーバーが存在しないことを示唆しています。トランザクションがプロトコルのルールに違反しているか、許容限度を超えてあいまいであるか、完全に無意味なものになっています。形式が正しくないトランザクションが有効なものになる可能性があるのは、プロトコルに変更が生じた場合のみです。例えば、新しい機能が採用された場合、当該の機能を使用するトランザクションは、当該の機能がまだ採用されていない古いソフトウェアを実行しているサーバーによって、形式が正しくないと見なされる可能性があります。
|
||||
|
||||
|
||||
## 即時の応答
|
||||
|
||||
[submitメソッド][]から返される応答には、トランザクションのローカル処理中に発生した事項を示す、`rippled`サーバーからの暫定的な結果が含まれています。
|
||||
|
||||
`submit`からの応答に含まれているのは、以下のフィールドです。
|
||||
|
||||
| フィールド | 値 | 説明 |
|
||||
|:------------------------|:---------------|:----------------------------------|
|
||||
| `engine_result` | 文字列 | 結果を分類するコード。例: `tecPATH_DRY` |
|
||||
| `engine_result_code` | 符号付き整数 | `engine_result`に対応する数値。値そのものは変更される可能性があります。 |
|
||||
| `engine_result_message` | 文字列 | 発生した事項を説明する、人間が読める形式のメッセージ。このメッセージは、問題を診断する目的で開発者に利用されることを想定したものであり、通知なく変更される可能性があります。 |
|
||||
|
||||
トランザクションをローカルで送信して適用した時点で問題がない場合、応答は以下のような内容になります。
|
||||
|
||||
```js
|
||||
"engine_result": "tesSUCCESS",
|
||||
"engine_result_code": 0,
|
||||
"engine_result_message": "The transaction was applied.Only final in a validated ledger."
|
||||
```
|
||||
|
||||
**注記:** この段階で成功の結果が表示されたとしても、トランザクションが完全に成功したことを示すわけではありません。ローカルのサーバーに保持されている暫定バージョンのレジャーに対して、正常に適用されたにすぎません。この段階での失敗の結果も、暫定的なものであり変化する可能性があります。詳細は、[結果のファイナリティー](finality-of-results.html)を参照してください。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,58 +0,0 @@
|
||||
---
|
||||
html: accountdelete.html
|
||||
parent: transaction-types.html
|
||||
blurb: Delete an account.
|
||||
labels:
|
||||
- アカウント
|
||||
---
|
||||
# AccountDelete
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/DeleteAccount.cpp "Source")
|
||||
|
||||
_[DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が必要です_
|
||||
|
||||
AccountDeleteトランザクションは、XRP Ledgerで[アカウント](accountroot.html)と、アカウントが所有するオブジェクトを削除し、可能であれば、アカウントの残りのXRPを指定された送金先アカウントに送信します。アカウントを削除する要件については、[アカウントの削除](deleting-accounts.html)を参照してください。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "AccountDelete",
|
||||
"Account": "rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm",
|
||||
"Destination": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
|
||||
"DestinationTag": 13,
|
||||
"Fee": "5000000",
|
||||
"Sequence": 2470665,
|
||||
"Flags": 2147483648
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:-----------------|:------------------|:-------------------|
|
||||
| `Destination` | 文字列 - [アドレス][] | AccountID | 送金元アカウントを削除した後に残ったXRPを受信するアカウントのアドレス。レジャーの資金供給されたアカウントである必要があります。送金元アカウントにすることはできません。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ ホストされた受取人、または削除されたアカウントの残りのXRPの受取人に関するその他の情報を識別する任意の[宛先タグ](source-and-destination-tags.html)。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-----------|:------------|
|
||||
| `temDISABLED` | [DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が有効でない場合に発生します。 |
|
||||
| `temDST_IS_SRC` | `Destination`がトランザクションの送金元(`Account`フィールド)と一致している場合に発生します。 |
|
||||
| `tecDST_TAG_NEEDED` | `Destination`アカウントに[宛先タグ](source-and-destination-tags.html)が必要であるのに、`DestinationTag`フィールドが指定されていない場合に発生します。 |
|
||||
| `tecNO_DST` | `Destination`アカウントが、レジャーの資金供給のあるアカウントではない場合に発生します。 |
|
||||
| `tecNO_PERMISSION` | `Destination`アカウントに[Deposit Authorization](depositauth.html)が必要で、送金元が事前に承認されていない場合に発生します。 |
|
||||
| `tecTOO_SOON` | 送金元の`Sequence`番号が大きすぎる場合に発生します。トランザクションの`Sequence`番号に256を加えた値が、現行の[レジャーインデックス][]より小さい値でなければなりません。 |
|
||||
| `tecHAS_OBLIGATIONS` | 削除するアカウントが、レジャーの削除できないオブジェクトに接続されている場合に発生します。([escrow](escrow.html)など、他のアカウントによって作成されたオブジェクトが含まれます。) |
|
||||
| `tefTOO_BIG` | 送金元アカウントが、レジャーの1,000個を超えるオブジェクトにリンクされている場合に発生します。これらのオブジェクトの一部が先行して個別に削除された場合、トランザクションは再試行で成功する可能性があります。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,135 +0,0 @@
|
||||
---
|
||||
html: accountset.html
|
||||
parent: transaction-types.html
|
||||
blurb: XRP Ledgerのアカウントのプロパティーを修正します。
|
||||
labels:
|
||||
- アカウント
|
||||
---
|
||||
# AccountSet
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/f65cea66ef99b1de149c02c15f06de6c61abf360/src/ripple/app/transactors/SetAccount.cpp "ソース")
|
||||
|
||||
AccountSetトランザクションは、[XRP Ledgerのアカウント](accountroot.html)のプロパティーを修正します。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "AccountSet",
|
||||
"Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Fee": "12",
|
||||
"Sequence": 5,
|
||||
"Domain": "6578616D706C652E636F6D",
|
||||
"SetFlag": 5,
|
||||
"MessageKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:-----------------|:------------------|:-------------------|
|
||||
| [`ClearFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを無効にするためのフラグの一意識別子。 |
|
||||
| [`Domain`](#domain) | 文字列 | Blob | _(省略可)_ このアカウントを保有するドメインのASCII小文字を表現する16進文字列。[256バイトを超える長さは使用できません。](https://github.com/XRPLF/rippled/blob/55dc7a252e08a0b02cd5aa39e9b4777af3eafe77/src/ripple/app/tx/impl/SetAccount.h#L34) |
|
||||
| `EmailHash` | 文字列 | Hash128 | _(省略可)_ アバターイメージの生成に使用されるメールアドレスのハッシュ。一般的に、クライアントは[Gravatar](http://en.gravatar.com/site/implement/hash/)を使用してこのイメージを表示しています。 |
|
||||
| `MessageKey` | 文字列 | Blob | _(省略可)_ 暗号化されたメッセージをこのアカウントに送信するための公開鍵です。キーを設定するには、正確に33バイトである必要があり、最初のバイトはキーの種類を示します。secp256k1鍵の場合は`0x02`または`0x03`、Ed25519鍵の場合は`0xED`です。キーを削除するには、空の値を使用します。 |
|
||||
| `NFTokenMinter` | 文字列 | Blob | _(省略可)_ あなたのために[NFTokensをミントする](assign-an-authorized-minter-using-javascript.html)ことができる別のアカウント。 _([NonFungibleTokensV1_1 amendment][]により追加されました.)_ |
|
||||
| [`SetFlag`](#accountsetのフラグ) | 数値 | UInt32 | _(省略可)_ このアカウントについてオプションを有効にするための整数フラグ。 |
|
||||
| [`TransferRate`](#transferrate) | 符号なし整数 | UInt32 | _(省略可)_ ユーザーがこのアカウントの発行済み通貨を送金するときに請求される手数料。通貨単位の10億分の1で表現されます。手数料なしを意味する特殊なケースの`0`を除いて、`2000000000`より大きくしたり、`1000000000`より小さくしたりすることはできません。 |
|
||||
| [`TickSize`](ticksize.html) | 符号なし整数 | UInt8 | _(省略可)_このアドレスによって発行されている通貨が関係するオファーに使用する為替レートの呼値の単位。それらのオファーの為替レートは、この有効桁数へと丸められます。有効な値は`3`から`15`、または無効にするための`0`です_([TickSize Amendment][]により追加されました)。_ |
|
||||
| `WalletLocator` | 文字列 | Hash256 | _(省略可)_ 任意の256ビット値です。指定された場合、この値はアカウントの設定の一部として保存さ れますが、固有の定義や要件を持ちません。 |
|
||||
| `WalletSize` | 数値 | UInt32 | _(省略可)_ 使用されません。このフィールドはAccountSetトランザクションで有効ですが、何の機能もありません |
|
||||
|
||||
これらのオプションがいずれも指定されていない場合、AccountSetトランザクションは(取引コストの消却以外に)意味がありません。詳細は、[トランザクションのキャンセルまたはスキップ](cancel-or-skip-a-transaction.html)を参照してください。
|
||||
|
||||
## Domain
|
||||
|
||||
`Domain`フィールドは、ドメインのASCII小文字を表す16進文字列で表現します。例えば、ドメイン*example.com*は`"6578616D706C652E636F6D"`として表現します。
|
||||
|
||||
`Domain`フィールドをアカウントから削除するには、Domainを空文字列に設定してAccountSetを送信します。
|
||||
|
||||
アカウントの`Domain`フィールドには任意のドメインを挿入できます。アカウントとドメインが同一の人物または企業に属していることを証明するには、「双方向リンク」を確立することをお勧めします。
|
||||
|
||||
- 所有するアカウントに対して、所有するドメインを`Domain`フィールドで設定します。
|
||||
- そのドメインのWebサイトで、所有アカウントをリストするテキストファイルをホスティングし、必要に応じて、XRP Ledgerの用途に関するその他の情報も記述します。慣例上、このファイルの名前は[xrp-ledger.toml file](xrp-ledger-toml.html)とします。
|
||||
|
||||
## AccountSetのフラグ
|
||||
|
||||
アカウントについて、有効または無効にできる複数のオプションが用意されています。アカウントのオプションは、状況に応じてさまざまなタイプのフラグで表現します。
|
||||
|
||||
* `AccountSet`タイプのトランザクションについては、`SetFlag`パラメーターとして渡すことでオプションを有効にしたり、`ClearFlag`パラメーターとして渡すことでオプションを無効にしたりできる複数の「AccountSetフラグ」が用意されています(プレフィクスは**asf**)。
|
||||
* `AccountSet`タイプのトランザクションについては、`Flags`パラメーターとして渡すことでアカウントの特定のオプションを有効または無効にできる複数のトランザクションフラグが用意されています(プレフィクスは**tf**)。このタイプの利用はお勧めしません。新しいアカウントオプションには、対応するトランザクションフラグ(tf)が存在しません。
|
||||
* `AccountRoot`レジャーオブジェクトタイプには、レジャー固有のフラグが用意されています(プレフィクスは**lsf**)。これらのフラグは、特定のレジャーに含まれている特定のアカウントオプションの状態を表します。これらの設定は、トランザクションによって変更されるまで適用されます。
|
||||
|
||||
アカウントのフラグを有効または無効にする手段としてお勧めするのは、AccountSetトランザクションの`SetFlag`パラメーターと`ClearFlag`パラメーターを使用する方法です。AccountSetのフラグは、名前が**asf**で始まります。
|
||||
|
||||
どのフラグも、デフォルトでは無効になっています。
|
||||
|
||||
使用できるAccountSetのフラグは、以下のとおりです。
|
||||
|
||||
| フラグの名前 | 10進値 | 対応するレジャーフラグ | 説明 |
|
||||
|:----------------------------------|:------|:----------------------------------|:--------------|
|
||||
| `asfAccountTxnID` | 5 | (なし) | このアカウントの直近のトランザクションのIDを追跡します。[AccountTxnID](transaction-common-fields.html#accounttxnid)については必須です。 |
|
||||
| `asfAuthorizedNFTokenMinter` | 10 | (なし) | このアカウントの代わりに、別のアカウントが非代替性トークン(NFToken)をミントすることを許可するために使用します。認可されたアカウントを[AccountRoot](accountroot.html)オブジェクトの`NFTokenMinter`フィールドで指定します。認可されたアカウントを削除するには、このフラグを有効にして`NFTokenMinter`フィールドを省略します。 _([NonFungibleTokensV1_1 amendment][]により追加されました。)_ |
|
||||
| `asfDefaultRipple` | 8 | `lsfDefaultRipple` | このアカウントのトラストラインでの[リップリング](rippling.html)をデフォルトで有効にします。 |
|
||||
| `asfDepositAuth` | 9 | `lsfDepositAuth` | このアカウントに対して[Deposit Authorization](depositauth.html)を有効にします _([DepositAuth Amendment][]により追加されました)。_ |
|
||||
| `asfDisableMaster` | 4 | `lsfDisableMaster` | マスターキーペアの使用を禁止します。[レギュラーキー](cryptographic-keys.html)や[署名者リスト](multi-signing.html)など、トランザクションに署名するための別の手段がアカウントで設定されている場合のみ有効にできます。 |
|
||||
| `asfDisallowIncomingCheck` | 13 | `lsfDisallowIncomingCheck` | チェックの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です。)_ |
|
||||
| `asfDisallowIncomingNFTokenOffer` | 12 | `lsfDisallowIncomingNFTokenOffer` | NFTokenOffersの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 |
|
||||
| `asfDisallowIncomingPayChan` | 14 | `lsfDisallowIncomingPayChan` | ペイメントチャネルの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 |
|
||||
| `asfDisallowIncomingTrustline` | 15 | `lsfDisallowIncomingTrustline` | トラストラインの着信をブロックします。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。 |
|
||||
| `asfDisallowXRP` | 3 | `lsfDisallowXRP` | XRPがこのアカウントに送信されないようにします(勧告的なもので、XRP Ledgerのプロトコルでは強制されません)。 |
|
||||
| `asfGlobalFreeze` | 7 | `lsfGlobalFreeze` | このアカウントによって発行されたすべての資産を[凍結](freezes.html)します。 |
|
||||
| `asfNoFreeze` | 6 | `lsfNoFreeze` | [個々のトラストラインの凍結またはGlobal Freezeの無効化](freezes.html)の機能を永続的に放棄します。このフラグは、有効にした後は無効にできません。 |
|
||||
| `asfRequireAuth` | 2 | `lsfRequireAuth` | このアドレスによって発行された残高をユーザーが保持することについて、承認を要求します。アドレスにトラストラインが接続されていない場合のみ有効にできます。 |
|
||||
| `asfRequireDest` | 1 | `lsfRequireDestTag` | トランザクションをこのアカウントに送信するための宛先タグを要求します。 |
|
||||
|
||||
`asfDisableMaster`フラグまたは`asfNoFreeze`フラグを有効にするには、マスターキーペアで署名することによって[トランザクションを承認](transactions.html#トランザクションの承認)する必要があります。レギュラーキーペアやマルチ署名を使用することはできません。レギュラーキーペアまたはマルチ署名を使用すると、`asfDisableMaster`を無効にする(つまり、マスターキーペアを再び有効にする)ことができます。[新規: rippled 0.28.0][]
|
||||
|
||||
以下の[トランザクションフラグ](transaction-common-fields.html#flagsフィールド)はAccountSetタイプのトランザクションに固有のもので、同様の目的を果たしますが、使用することはお勧めしません。限られたスペースのため、いくつかの設定には関連する `tf` フラグがありません。また、新しい `tf` フラグは `AccountSet` トランザクションタイプには追加されていません。一つのトランザクションで複数の設定を有効にするには、`tf`フラグと`asf`フラグを組み合わせて使用することができます。
|
||||
|
||||
| フラグの名前 | 16進値 | 10進値 | 後継のAccountSetのフラグ |
|
||||
|:--------------------|:-------------|:--------------|:----------------------------|
|
||||
| `tfRequireDestTag` | `0x00010000` | 65536 | asfRequireDest(SetFlag) |
|
||||
| `tfOptionalDestTag` | `0x00020000` | 131072 | asfRequireDest(ClearFlag) |
|
||||
| `tfRequireAuth` | `0x00040000` | 262144 | asfRequireAuth(SetFlag) |
|
||||
| `tfOptionalAuth` | `0x00080000` | 524288 | asfRequireAuth(ClearFlag) |
|
||||
| `tfDisallowXRP` | `0x00100000` | 1048576 | asfDisallowXRP(SetFlag) |
|
||||
| `tfAllowXRP` | `0x00200000` | 2097152 | asfDisallowXRP(ClearFlag) |
|
||||
|
||||
**注意:** トランザクションに含まれている`tf`フラグと`asf`フラグの数値は、レジャーに含まれている静的なアカウントに設定された値と合致しません。レジャーに含まれているアカウントのフラグを読み取るには、[`AccountRoot`フラグ](accountroot.html#accountrootのフラグ)を参照してください。
|
||||
|
||||
|
||||
### 着信トランザクションのブロック
|
||||
|
||||
目的が不明確な着信トランザクションは、顧客による誤りを識別し、誤りに応じて、アカウントへの払い戻しや残高の調整を実施しなければならない場合がある金融機関にとって、不都合な存在です。`asfRequireDest`フラグと`asfDisallowXRP`フラグは、理由が不明確な状態で資金が誤って送金されることのないよう、ユーザーを保護することを目的としています。
|
||||
|
||||
例えば、宛先タグは通常、金融機関が支払いを受領したときに、保有しているどの残高に入金するのかを識別するために使用されます。宛先タグが省略されていると、入金先のアカウントが明確でない場合があり、払い戻しが必要になるなどの問題が発生します。`asfRequireDest`タグを使用すると、着信するすべての支払いに宛先タグが必ず設定され、他のユーザーから、宛先の不明な支払いが誤って送金される問題が発生しにくくなります。
|
||||
|
||||
XRP以外の通貨に関しては、それらの通貨のトラストラインを作成しないことで、無用な支払いの受入れを防止できます。XRPでは信頼が必須ではないことから、ユーザーによるアカウントへのXRPの送金を抑止するには、`asfDisallowXRP`フラグを使用します。ただし、このフラグによってアカウントが使用不可になる場合があるため、`rippled`では適用されません(このフラグを無効にしたトランザクションを送信するための十分なXRPがアカウントになかった場合、アカウントは完全に使用不可になります)。代わりに、クライアントアプリケーションでは、`asfDisallowXRP`フラグが有効なアカウントへのXRPの支払いを禁止または抑止します。
|
||||
|
||||
_すべての_ 支払いの着信をブロックしたい場合、[Deposit Authorization](depositauth.html)を有効にすることができます。これは、あなたのアカウントが[準備金要件](reserves.html)を下回らない限り、たとえXRPであっても、あらゆるトランザクションからの送金をブロックします。
|
||||
|
||||
[DisallowIncoming amendment][] :not_enabled: が有効化されている場合、着信するすべてのチェック、NFTokenOffer、ペイメントチャネル、およびトラストラインをブロックするオプションもあります。これらのオブジェクトを着信することは一般的に無害ですが、アカウントを削除することができなくなる場合があり、自分が作成したオブジェクトのリストに予期しないオブジェクトが混ざり混乱することがあります。オブジェクトの着信をブロックするには、次のアカウントフラグのいずれかを使用します。
|
||||
|
||||
- `asfDisallowIncomingCheck` - チェックオブジェクト用
|
||||
- `asfDisallowIncomingNFTOffer` - NFTokenOfferオブジェクト用
|
||||
- `asfDisallowIncomingPayChan` - PayChannelオブジェクト用
|
||||
- `asfDisallowIncomingTrustline` - RippleState(トラストライン)オブジェクト用
|
||||
|
||||
これらのレジャーエントリを作成するトランザクションが発生する場合、宛先アカウントに対応するフラグが有効になっている場合、トランザクションは`tecNO_PERMISSION`という結果コードで失敗します。Deposit Authorizationとは異なり、これらの設定は一般的に支払いを受け取ることを妨げません。また、この設定を有効にしても、自分自身がこれらのタイプのオブジェクトを作成することを妨げません(もちろん、トランザクションの宛先がこの設定を使用している場合を除きます)。
|
||||
|
||||
## TransferRate
|
||||
|
||||
TransferRateフィールドは、ユーザーの発行する通貨を相手方が送金するときに請求する手数料を指定します。
|
||||
|
||||
HTTPおよびWebSocketのAPIでは、TransferRate(相手方に10億単位の通貨を送金するのに必要な金額)は整数で表現します。例えば、送金手数料が20%である場合、値を`1200000000`と表現します。 値を1000000000未満にすることはできません(この値未満にした場合、トランザクションの送信について金銭の引き渡しが発生することになり、攻撃に利用されるおそれがあります)。`1000000000`の短縮形として、手数料なしを意味する`0`を指定できます。
|
||||
|
||||
詳細は、[送金手数料](transfer-fees.html)を参照してください。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,139 +0,0 @@
|
||||
---
|
||||
html: ammbid.html
|
||||
parent: transaction-types.html
|
||||
blurb: 自動マーケットメーカーのオークションスロットに入札することで、手数料の割引を受けることができます。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMBid
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMBid.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
[自動マーケットメーカー](automated-market-makers.html)のオークションスロットに入札することができます。落札されると、競り落とされるか24時間が経過するまで、割引料金でAMMと取引することができます。24時間が経過する前に競り落とされた場合、残り時間に応じて落札価格の一部が払い戻されます。
|
||||
|
||||
AMMのLPトークンを使って落札すると、落札に利用したLPトークンはAMMに返され、LPトークンの残高が減ります。
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Asset" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"AuthAccounts" : [
|
||||
{
|
||||
"AuthAccount" : {
|
||||
"Account" : "rMKXGCbJ5d8LbrqthdG46q3f969MVK2Qeg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"AuthAccount" : {
|
||||
"Account" : "rBepJuTLFJt3WmtLXYAxSjtBWAeQxVbncv"
|
||||
}
|
||||
}
|
||||
],
|
||||
"BidMax" : {
|
||||
"currency" : "039C99CD9AB0B70B32ECDA51EAAE471625608EA2",
|
||||
"issuer" : "rE54zDvgnghAoPopCgvtiqWNq3dU5y836S",
|
||||
"value" : "100"
|
||||
},
|
||||
"Fee" : "10",
|
||||
"Flags" : 2147483648,
|
||||
"Sequence" : 9,
|
||||
"TransactionType" : "AMMBid"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:---------------|:-----------|:- ----------|:----- |:------------|
|
||||
| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つのアセットの定義です。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `BidMin` | [通貨額][] | Amount | いいえ | スロットに支払う最小の金額。この値を高く設定すると、他の人から競り落とされにくくなります。省略された場合は、落札に必要な最低額を支払います。 |
|
||||
| `BidMax` | [通貨額][] | Amount | いいえ | スロットに支払う最大の金額。落札するためのコストがこの金額より高い場合、取引は失敗します。省略された場合は、落札に必要な金額を支払います。 |
|
||||
| `AuthAccounts` | 配列 | STArray | いいえ | 割引料金で取引を許可する最大4つの追加のアカウントのリスト。これには、トランザクション送信者のアドレスは含めることはできません。これらのオブジェクトはそれぞれ[Auth Accountオブジェクト](#auth-accountオブジェクト)である必要があります。. |
|
||||
|
||||
`BidMin` と `BidMax` の両方を指定することはできません。
|
||||
|
||||
### Auth Accountオブジェクト
|
||||
|
||||
`AuthAccounts` 配列の各メンバーは、以下のフィールドを持つオブジェクトである必要があります。
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:---------------|:----------|:-------------|:-----|:------------|
|
||||
| `Account` | 文字列 | AccountID | はい | 認可するアカウントのアドレス。 |
|
||||
|
||||
配列に現れる他の「内部オブジェクト」と同様に、これらのオブジェクトのJSON表現は、オブジェクトタイプ`AuthAccount`のみをキーとするオブジェクトにラップされています。
|
||||
|
||||
## オークションスロットの価格
|
||||
|
||||
落札された場合、トランザクションは自動的に前のスロット所有者を競り落とし、送信者のLPトークンから落札価格が引き落とされます。落札価格は、72分ずつ20回に区切られた時間経過とともに減少します。もし送信者が落札するのに十分なLPトークンを持っていなかったり、入札価格がトランザクションの`BidMax`値より高い場合、トランザクションは`tecAMM_FAILED_BID`という結果で失敗します。
|
||||
|
||||
- オークションスロットが現在空であったり、期限切れ、または最後のインターバルである場合、**最低入札価格**は**AMMの総LPトークン残高の0.001%**です。
|
||||
|
||||
**注意:** この最小値は暫定値であり、AMM機能が最終的に完成する前に変更される可能性があります。
|
||||
|
||||
- それ以外の場合、現在の保有者に落札価格は、以下の式で計算されます。
|
||||
|
||||
P = B × 1.05 × (1 - t⁶⁰) + M
|
||||
|
||||
- `P`: 落札価格。単位はLPトークン。
|
||||
- `B`: 現在の入札価格。単位はLPトークン。
|
||||
- `t`: 現在の24時間枠で経過した時間の割合。0.05の倍数に切り捨てられる。
|
||||
- `M`: Mは上記で定義された**最低入札価格**。
|
||||
|
||||
落札コストには、2つの特殊なケースがあります。誰かが落札してから**最初の時間枠**では、その落札価格は、最低入札価格+既存の入札価格の5%アップとなります。
|
||||
|
||||
P = B × 1.05 + M
|
||||
|
||||
スロットの**最後の時間枠**では、落札コストは最低入札額のみです。
|
||||
|
||||
P = M
|
||||
|
||||
**注記:** レジャーを作成する際に、ネットワーク上のすべてのサーバーが同じ結果になるように、時間の計測は前回のレジャーの[正規の閉鎖時刻](ledger-close-times.html)に基づいており、これはおおよその目安の時間です。
|
||||
|
||||
## 払い戻し
|
||||
|
||||
有効なオークションスロットを落札した場合、AMMは以下の計算式で前ホルダーに価格の一部を払い戻します。
|
||||
|
||||
```text
|
||||
R = B × (1 - t)
|
||||
```
|
||||
|
||||
- `R`: は返金する金額。単位はLPトークン。
|
||||
- `B`: 払い戻しの対象となる前回の入札の価格。単位はLPトークン。
|
||||
- `t`: 現在の24時間枠で経過した時間の割合。0.05の倍数に切り捨てられる。
|
||||
|
||||
特殊なケースとして、オークションスロットの最終(20番目)区間では、払い戻し額は0となる。
|
||||
|
||||
**注記:** XRP Ledgerの時刻と同様に、トランザクション処理では _前回の_ レジャーの[正規の閉鎖時刻](ledger-close-times.html)を使用するため、実時間と最大で約10秒の差が生じる場合があります。
|
||||
|
||||
|
||||
## エラーケース
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:------------------------|:---------------------------------------------|
|
||||
| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 |
|
||||
| `tecAMM_FAILED` | このトランザクションでは、送信者が必要な入札額を支払うために十分なLPトークンを保有していないか、落札価格がトランザクションで指定された`BidMax`値より高いため、落札できませんでした。 |
|
||||
| `tecAMM_INVALID_TOKENS` | このトランザクションの送信者は、スロット価格に見合うだけのLPトークンを保有していません。 |
|
||||
| `temBAD_AMM_TOKENS` | 指定された`BidMin`または`BidMax`は、このAMMの正しいLPトークンではありません。 |
|
||||
| `temDISABLED` | このネットワークでは、AMM機能が有効ではありません。 |
|
||||
| `temMALFORMED` | トランザクションが無効なオプションを指定しました。例えば、`AuthAccounts`のリストが長すぎるなど。 |
|
||||
| `terNO_ACCOUNT` | このリクエストで指定されたアカウントのいずれかが存在しません。 |
|
||||
| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーのインスタンスが存在しません。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,73 +0,0 @@
|
||||
---
|
||||
html: ammcreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: 指定された資産ペアを取引するための新しい自動マーケットメーカーを作成します。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMCreate
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMCreate.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
資産([代替可能トークン](tokens.html)または[XRP](xrp.html))のペアを取引するための新しい[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを作成します。
|
||||
|
||||
AMMを表す[AMMエントリ][]と[特殊なAccountRootエントリ](accountroot.html#ammの特殊なaccountrootエントリ)を作成します。また、両資産の開始残高の所有権を送信者から、作成された`AccountRoot`に移し、初期残高の流動性プロバイダトークン(LPトークン)をAMMアカウントから送信者に発行します。
|
||||
|
||||
**注意:** AMMを作成する際には、各資産を(ほぼ)同額ずつ投入する必要があります。そうしないと、他のユーザがこのAMMを使った取引で利益を得ることができ、あなたがその損失を被ることとなります([アービトラージの実行](https://www.machow.ski/posts/an_introduction_to_automated_market_makers/#price-arbitrage)。流動性プロバイダが負う通貨リスクは、資産ペアのボラティリティ(不均衡の可能性)が高ければ高いほど、大きくなります。取引手数料が高いほど、このリスクを相殺することになりますので、資産ペアのボラティリティに応じて取引手数料を設定するとよいでしょう。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Amount" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd",
|
||||
"value" : "25"
|
||||
},
|
||||
"Amount2" : "250000000",
|
||||
"Fee" : "10",
|
||||
"Flags" : 2147483648,
|
||||
"Sequence" : 6,
|
||||
"TradingFee" : 500,
|
||||
"TransactionType" : "AMMCreate"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:-------------|:---- -----|:-----------|:------|:------------|
|
||||
| `Amount` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、1つ目の資産です。これは正数である必要があります。 |
|
||||
| `Amount2` | [通貨額][] | Amount | はい | このAMMの最初の資金となる2つの資産のうち、2つ目の資産です。これは正数である必要があります。 |
|
||||
| `TradingFee` | 数値 | UInt16 | はい | このAMMインスタンスに対する取引に課される手数料を1/100,000単位で指定します(値1は0.001%に相当)。最大値は`1000`で、1%の手数料を意味します。最小値は `0`です。 |
|
||||
|
||||
`Amount`と`Amount2`の一方または両方は[トークン](tokens.html)であり、最大でどちらか一方を[XRP](xrp.html)にすることが可能です。通貨コードと発行者が同じものは使用できません。AMMのLPトークンは、別のAMMの資産の1つとして使用することができます。トークンの発行者は[Default Ripple](rippling.html#defaultrippleフラグ)を有効にしていなければなりません。[Clawback Amendment][] :not_enabled: が有効になっている場合、それらの発行者はAllow Clawbackフラグを有効にしていてはいけません。AMMのLPトークンは、別のAMMの資産の一つとして使用することができます。
|
||||
|
||||
## 特殊なトランザクションコスト
|
||||
|
||||
各AMMインスタンスはAccountRootレジャーエントリ、AMMレジャーエントリ、プール内の各トークンのトラストラインを含むため、AMMCreateトランザクションは台帳スパムを抑止するために通常よりもはるかに高い[トランザクションコスト][]を必要とします。標準的な最低0.00001XRPの代わりに、AMMCreateは少なくとも所有者準備金の増分(現在は2XRP)を破棄しなければなりません。これは[AccountDeleteトランザクション][]と同じ特別なトランザクションコストです。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:--------------------|:---------------------------------------------|
|
||||
| `temDISABLED` | このネットワークでは、AMM機能 :not_enabled: は有効ではありません。 |
|
||||
| `temINVALID_FLAG` | トランザクションに無効な`Flags`値が指定されています。現在、このトランザクションタイプに定義されたフラグはないので、[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)のみが許可されます。 |
|
||||
| `temBAD_AMM_TOKENS` | `Amount`と`Amount2`値が正しくありません。例えば、両方とも同じトークンを参照している場合です。 |
|
||||
| `temBAD_FEE` | `TradingFee`の値が不正です。ゼロまたは正の整数でなければならず、1000を超えることはできません。 |
|
||||
| `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。|
|
||||
| `tecNO_AUTH` | 送信者は資産(`Amount`または`Amount2`)のいずれかを保有する権限がありません。 |
|
||||
| `tecNO_LINE` | 送信者は資産(`Amount`または`Amount2`)のうちいずれか1つに対するトラストラインを保有していません。 |
|
||||
| `tecFROZEN` | 資産(`Amount`または`Amount2`)の少なくとも1つが現在[凍結](freezes.html)されています。 |
|
||||
| `tecUNFUNDED_AMM` | 送信者は`Amount`と`Amount2`で指定された金額をAMMに入金するための十分な資金を保有していません。 |
|
||||
| `tecAMM_EXISTS` | この通貨ペアを扱っているAMMが既に存在しています。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,59 +0,0 @@
|
||||
---
|
||||
html: ammdelete.html
|
||||
parent: transaction-types.html
|
||||
blurb: 空のプールを持つ自動マーケットメーカーのインスタンスを削除します。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMDelete
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/AMMDelete.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled: が必要です)_
|
||||
|
||||
自動で削除しきれなかった空の[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスを削除します。
|
||||
|
||||
通常、[AMMWithdraw トランザクション][]は、AMMのプールからすべての資産を引き出すと、AMMと関連するすべてのレジャーエントリを自動的に削除します。ただし、AMMアカウントへのトラストラインが多すぎて1回のトランザクションで削除できない場合は、AMMの削除を行わない場合があります。しかしこの場合でも、AMMDeleteトランザクションは最大512のトラストラインを削除します。すべてのトラストラインとそのAMMを削除するには、数回のAMMDeleteトランザクションが必要な場合があります。いずれの場合も、AMMとAccountRootのレジャーエントリが削除されるのは、最後のトランザクションのみです。
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Asset" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"Fee" : "10",
|
||||
"Flags" : 0,
|
||||
"Sequence" : 9,
|
||||
"TransactionType" : "AMMDelete"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:---------|:-----------|:-----------|:------|:----|
|
||||
| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
AMMCreateトランザクションでは、すべてのトランザクションで発生する可能性のあるエラーの他に、以下の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:--------------------|:---------------------------------------------|
|
||||
| `tecAMM_NOT_EMPTY` | AMMが空でないため、削除することができません。AMMの流動性プロバイダーの一人である場合は、まず[AMMWithdraw][]を使用してください。 |
|
||||
| `tecINCOMPLETE` | 関連するレジャーエントリを可能な限り削除しましたが、AMM は完全には削除されませんでした。別の AMMDelete トランザクションを送信して、作業を続行し、完了させることができます。 |
|
||||
| `terNO_AMM` | 指定したAMMが存在しません。(すでに削除されているか、指定したAMMの資産が間違っている可能性があります)。|
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,144 +0,0 @@
|
||||
---
|
||||
html: ammdeposit.html
|
||||
parent: transaction-types.html
|
||||
blurb: 自動マーケットメーカーに資金を預け、LPTokenを受け取ります。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMDeposit
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMDeposit.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスに資金を預け、AMMの流動性プロバイダートークン( _LPトークン_ )を受け取ります。AMMのプールにある資産の一方または両方を預けることができます。
|
||||
|
||||
トランザクションが成功すると、LPトークンを保持するためにAMMアカウント(リミット0)に[トラストライン](trust-lines-and-issuing.html)が作成されます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Amount" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd",
|
||||
"value" : "2.5"
|
||||
},
|
||||
"Amount2" : "30000000",
|
||||
"Asset" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Fee" : "10",
|
||||
"Flags" : 1048576,
|
||||
"Sequence" : 7,
|
||||
"TransactionType" : "AMMDeposit"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:--------------|:-----------|:-----------|:------|:------------|
|
||||
| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Amount` | [通貨額][] | Amount | いいえ | AMMに預ける1つの資産の量を指定します。存在する場合、これはAMMのプールにある資産の一つ(トークンまたはXRP)と一致する必要があります。 |
|
||||
| `Amount2` | [通貨額][] | Amount | いいえ | AMMに追加する別の資産の量を指定します。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じ資産にすることはできません。 |
|
||||
| `EPrice` | [通貨額][] | Amount | いいえ | 受け取った各LPトークンに支払う、預け入れ資産の最大有効価格です。 |
|
||||
| `LPTokenOut` | [通貨額][] | Amount | いいえ | AMMのLPトークンの購入数量。 |
|
||||
|
||||
|
||||
### AMMDepositモード
|
||||
|
||||
このトランザクションには5つのモードがあり、どのフラグを指定するかで定義されます。それぞれのモードは、特定のフィールドの組み合わせを必要とし、次の2つのカテゴリに分類されます。
|
||||
|
||||
- **ダブルアセット入金**: AMMのプールにある両方(2つ)の資産を、既存の資産の残高に比例して預けます。この預け入れでは手数料は徴収されません。
|
||||
- **シングルアセット入金**: AMMの2つの資産のうち1つだけを預けます。AMMは、この預け入れによってプール内の資産残高がどれだけ変化したかによって、対価として支払われるLPトークンから差し引く手数料を設定します。
|
||||
|
||||
以下の項目の組み合わせは、**ダブルアセット入金**について示しています。
|
||||
|
||||
| フラグ名 | フラグ値 | 指定フィールド | 意味 |
|
||||
|--------------|--------------|------------------------|---------|
|
||||
| `tfLPToken` | `0x00010000` | `LPTokenOut`のみ | 指定された量のLPトークンを受け取るようにこのAMMの2つの資産を預けます。預ける金額は、AMMの保有する2つの資産の割合と等しくなります。 |
|
||||
| `tfTwoAsset` | `0x00100000` | `Amount`と`Amount2` | このAMMの両資産を指定した金額まで預けます。実際に預ける金額は、AMMがすでに保有している資産と同じ割合を維持する必要があるため、どちらか一方の預け入れ金額が指定金額より少なくてもかまいません。得られるLPトークンの金額は、預けた金額の合計から算出されます。 |
|
||||
| `tfTwoAssetIfEmpty` | `0x00800000` | `Amount`と`Amount2` | プールが空のAMMに、このAMMの資産を指定した金額預け入れます。得られるLPトークンの量は、預け入れた合計額から算出されます。 |
|
||||
|
||||
以下の項目の組み合わせは、**シングルアセット入金**について示しています。
|
||||
|
||||
| フラグ名 | フラグ値 | 指定フィールド | 意味 |
|
||||
|---------------------|--------------|------------------------|---------|
|
||||
| `tfSingleAsset` | `0x00080000` | `Amount`のみ | 指定の資産を指定の量だけ預け、その結果得られたプールのシェアに応じた量のLPトークンを受け取ります。(手数料を差し引いた金額) |
|
||||
| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenOut` | 1つの資産を指定された上限額まで預け、対価として指定金額分のLPトークンを受け取ります。(手数料を差し引いた金額) |
|
||||
| `tfLimitLPToken` | `0x00400000` | `Amount`と`EPrice` | 1つの資産を指定された金額まで預けますが、LPトークン1つにつき指定された有効価格(手数料差引後)を超えて預けることはありません。 |
|
||||
|
||||
これ以外のフィールドとフラグの組み合わせは無効です。
|
||||
|
||||
|
||||
### シングルアセット入金の手数料
|
||||
|
||||
シングルアセット入金の手数料は、AMMを使って預け入れ金額の一部を他の資産と交換し、結果的にダブルアセット入金を行った場合と同じになるように計算されます。AMMの取引手数料は、一部の資産の交換に必要な金額には適用されますが、残りの預け入れ金額には適用されません。 _例えば、AMMの資産プールがUSDとEURで完全に均等に分割されている場合、100USDを預けようとすると、受け取るLPトークンの量は、50EUR+50USDを預けた場合よりもわずかに少なくなります。_
|
||||
|
||||
ダブルアセット入金の場合、LPトークンを受け取る数は、以下の計算式で算出できます。
|
||||
|
||||
{{ include_svg("img/amm-single-asset-deposit-formula.svg", "L = T × ( (( 1 + (B - (F × (1 - W) × B)) ÷ P)^W) - 1)") }}
|
||||
<!-- TODO: improve graphic -->
|
||||
|
||||
|
||||
|
||||
- `L`: 受け取るLPトークンの量
|
||||
- `T`: 預け入れ前のLPトークンの残高合計
|
||||
- `B`: 預け入れ資産の額
|
||||
- `F`: 取引手数料
|
||||
- `W`: プール内の預金資産の重みです。これはすべてのAMMプールで0.5と定義されています(50/50の分割を意味します)ので、Wによる累乗は平方根を取ることと同一です。
|
||||
- `P`: 預け入れ前のプール内の預金資産の合計額
|
||||
|
||||
|
||||
### 空のAMMの場合の特殊なケース
|
||||
|
||||
場合によっては、プール内に資産がない状態で AMM が存在することがあります。このような状態の AMM には通常の入金を行うことができません。なぜなら資産間の比率が未定義 (0/0) だからです。その代わりに、フラグ `tfTwoAssetIfEmpty` と両方の資産の正確な金額を指定した“空AMM”への特殊な入金を行うことができます。これはAMMを作成する[AMMCreateトランザクション][]が行うのと同じように、資産間の比率を直接設定します。ダブルアセット入金と同様に、これは手数料を徴収されません。
|
||||
|
||||
AMMが空の場合のみ、「空のAMM」への特別な入金を行うことができます。
|
||||
|
||||
### AMMDepositのフラグ
|
||||
|
||||
AMMDepositトランザクションは、以下のような[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)の値をサポートしています。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 説明 |
|
||||
|:--------------------|:-------------|:--------------|:----------------------|
|
||||
| `tfLPToken` | `0x00010000` | 65536 | ダブルアセット入金を行い、指定された額のLPトークンを受け取ります。 |
|
||||
| `tfSingleAsset` | `0x00080000` | 524288 | 預け入れる資産を指定して、シングルアセット入金を行います。 |
|
||||
| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産を指定金額で預けるダブルアセット入金を行います。 |
|
||||
| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット入金を行い、指定された額のLPトークンを受け取ります。 |
|
||||
| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット入金を行います。 |
|
||||
| `tfTwoAssetIfEmpty` | `0x00800000` | 8388608 | 空のプールを持つAMMに特別なダブルアセット入金を行います。 |
|
||||
|
||||
これらのフラグのうちの**1つのみ**と、任意の[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)を指定する必要があります。
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:------------------------|:---------------------------------------------|
|
||||
| `tecAMM_EMPTY` | 現在、AMM は資産を保有していないため、通常の入金はできません。代わりに、空のAMMの場合の特殊な入金を行う必要があります。 |
|
||||
| `tecAMM_NOT_EMPTY` | The transaction specified `tfTwoAssetIfEmpty`, but the AMM was not empty. |
|
||||
| `tecAMM_FAILED` | 預け入れの条件が成立しませんでした。例えば、`EPrice`フィールドに指定された実効価格が低すぎる場合など。 |
|
||||
|| `tecFROZEN` | トランザクションは[凍結](freezes.html)されているトークンを預けようとしました。 |
|
||||
| `tecINSUF_RESERVE_LINE` | このトランザクションの送信者は、この処理による[準備金要件](reserves.html)の増加の対象であり、LPトークンを保持するための新しいトラストラインが必要で、そのための追加の所有者準備金分のXRPを保有していないためと思われます。 |
|
||||
| `tecUNFUNDED_AMM` | 送信者の残高が、指定された預け入れを行うのに十分な量ではありません。 |
|
||||
| `temBAD_AMOUNT` | トランザクションで指定された金額が無効です。例えば、金額がマイナスなど。 |
|
||||
| `temBAD_FEE` | トランザクションで指定された手数料の値が無効です。例えば、取引手数料が許容範囲外など。 |
|
||||
| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。詳細は、[AMMDepositモード](#ammdepositモード)を参照してください。 |
|
||||
| `terNO_ACCOUNT` | リクエストで参照されたいずれかのアカウントが存在しません。 |
|
||||
| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカーインスタンスが存在しません。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,60 +0,0 @@
|
||||
---
|
||||
html: ammvote.html
|
||||
parent: transaction-types.html
|
||||
blurb: 自動マーケットメーカーインスタンスの取引手数料へ投票する。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMVote
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMVote.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
[自動マーケットメーカー](automated-market-makers.html)インスタンスの取引手数料を投票します。最大8つのアカウントが、保有するAMMのLPトークンの量に比例して投票することができます。投票を行うごとには、投票の加重平均に基づいてAMMの取引手数料が再計算されます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Asset" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"Fee" : "10",
|
||||
"Flags" : 2147483648,
|
||||
"Sequence" : 8,
|
||||
"TradingFee" : 600,
|
||||
"TransactionType" : "AMMVote"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:-------------|:-----------|:-----------|:-----|:------------|
|
||||
| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。|
|
||||
| `TradingFee` | 数値 | UInt16 | はい | 投票に必要な手数料を1/100,000の単位で指定します。最大値は1000で、1%の手数料を表します。 |
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:------------------------|:---------------------------------------------|
|
||||
| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 |
|
||||
| `tecAMM_INVALID_TOKENS` | 送信者は、このAMMのLPトークンを保有していないため、投票することができません。 |
|
||||
| `tecAMM_FAILED_VOTE` | このトランザクションの送信者よりも多くのLPトークンを保有しているアカウントからの投票が既に8件存在しています。 |
|
||||
| `temBAD_FEE` | このトランザクションの`TradingFee`は正しくありません。 |
|
||||
| `terNO_AMM` | このトランザクションの資産ペアの自動マーケットメーカー インスタンスが存在しません。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,128 +0,0 @@
|
||||
---
|
||||
html: ammwithdraw.html
|
||||
parent: transaction-types.html
|
||||
blurb: LPトークを自動マーケットメーカーに返却し、プールが保有する資産の一部と引き換えマス。
|
||||
labels:
|
||||
- AMM
|
||||
status: not_enabled
|
||||
---
|
||||
# AMMWithdraw
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/AMMWithdraw.cpp "Source")
|
||||
|
||||
_([AMM amendment][] :not_enabled:が必要です。)_
|
||||
|
||||
AMMの流動性プロバイダトークン(LPトークン)を返却することで、[自動マーケットメーカー](automated-market-makers.html)(AMM)インスタンスから資産を引き出します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account" : "rJVUeRqDFNs2xqA7ncVE6ZoAhPUoaJJSQm",
|
||||
"Amount" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd",
|
||||
"value" : "5"
|
||||
},
|
||||
"Amount2" : "50000000",
|
||||
"Asset" : {
|
||||
"currency" : "TST",
|
||||
"issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd"
|
||||
},
|
||||
"Asset2" : {
|
||||
"currency" : "XRP"
|
||||
},
|
||||
"Fee" : "10",
|
||||
"Flags" : 1048576,
|
||||
"Sequence" : 10,
|
||||
"TransactionType" : "AMMWithdraw"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 必須? | 説明 |
|
||||
|:-------------|:-----------|:-----------|:------|:------------|
|
||||
| `Asset` | オブジェクト | STIssue | はい | AMMのプールにある資産の一つを定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトになります(XRPの場合は`issuer`を省略します)。 |
|
||||
| `Asset2` | オブジェクト | STIssue | はい | AMMのプールにあるもう一つの資産を定義します。JSONでは、`currency`と`issuer`フィールドを持つオブジェクトです(XRPの場合は`issuer`を省略)。|
|
||||
| `Amount` | [通貨額][] | Amount | いいえ | AMMから引き出す1つの資産の量。これは、AMMのプールにある資産の1つ(トークンまたはXRP)と一致する必要があります。 |
|
||||
| `Amount2` | [通貨額][] | Amount | いいえ | AMMから引き出す他の資産の量。存在する場合、これはAMMのプール内の他の資産と一致する必要があり、`Amount`と同じにすることはできません。 |
|
||||
| `EPrice` | [通貨額][] | Amount | いいえ | 引き出しに必要な、資産の1単位あたりに支払う最低有効価格(LPトークンの返却単位)。 |
|
||||
| `LPTokenIn` | [通貨額][] | Amount | いいえ | AMMのLPトークンの引き替え数。 |
|
||||
|
||||
**注記:** ダブルアセット出金の場合、`Asset1`と`Amount1`または`Amount2`が対応していれば、`Asset2`はもう一方に対応することが可能です。しかし、両者を一致させることをお勧めします(つまり、`Amount2`は`Asset2`で定義されたアセットの金額です)。その方が混乱を招きにくくなります。
|
||||
|
||||
### AMMWithdrawモード
|
||||
|
||||
このトランザクションには、指定するフラグによっていくつかのモードがあります。それぞれのモードは、特定のフィールドの組み合わせを必要とし、以下の2つのカテゴリに分類されます。
|
||||
|
||||
- **ダブルアセット出金**: AMMのプールから両方の資産をその残高と同じ割合で受け取ります。この出金には手数料はかかりません。
|
||||
- **シングルアセット出金**: AMMのプールから1つの資産を受け取ります。AMMは、出金によりプール内の資産残高がどれだけ変動するかによって手数料を算出します。出金のモードによって、手数料が支払われたLPトークンの量から差し引かれるか、出金する資産の量から差し引かれるか決まります。
|
||||
|
||||
以下の項目の組み合わせは、**ダブルアセット出金**について示しています。
|
||||
|
||||
| フラグ名 | フラグ値 | 指定フィール | 意味 |
|
||||
|-----------------|--------------|---------------- ----|---------|
|
||||
| `tfLPToken` | `0x00010000` | `LPTokenIn`のみ | 指定された量のLPトークンを返却し、LPトークンの発行総数に対する返却されたトークンの割合に基づく金額の両方の資産を受け取ります。 |
|
||||
| `tfWithdrawAll` | `0x00020000` | なし | LPトークンを _全て_ 返却し、AMMのプールにある両方の資産を最大限受け取ります。 |
|
||||
| `tfTwoAsset` | `0x00100000` | `Amount`と`Amount2` | 指定した金額を上限として、AMMの資産の両方を出金します。実際に受け取る金額は、AMMのプールの資産残高の割合と同じになります。 |
|
||||
|
||||
以下の項目の組み合わせは、**シングルアセット出金**について示しています。
|
||||
|
||||
| フラグ名 | フラグ値 | 指定フィールド | 意味 |
|
||||
|-------------------------|--------------|-----------------------|---------|
|
||||
| `tfSingleAsset` | `0x00080000` | `Amount`のみ | LPトークンを指定した数だけ返却し、1つの資産を指定した量だけ出金します。 |
|
||||
| `tfOneAssetWithdrawAll` | `0x00040000` | `Amount`のみ | LPトークンを全て返却することで、1つの資産を指定した金額以上出金します。指定された金額以上を受け取ることができない場合は失敗します。指定する金額は0でもかまいません。この場合、少しでも正の金額を出金できれば成功します。 |
|
||||
| `tfOneAssetLPToken` | `0x00200000` | `Amount`と`LPTokenIn` | 指定した量のLPトークンを返却することで、1つの資産を指定した量まで出金します。 |
|
||||
| `tfLimitLPToken` | `0x00400000` | `Amount`と`EPrice` | 指定した1つの資産の量を上限として出金しますが、受け取る資産の一単位あたりのLPトークンで指定した有効価格より高い金額を支払うことはありません。 |
|
||||
|
||||
これら以外のフィールドとフラグの組み合わせは無効です。
|
||||
|
||||
### シングルアセット出金手数料
|
||||
|
||||
シングルアセット出金にかかる手数料は、ダブルアセット出金を行い、AMMを使用して指定しない方の資産を全て交換する場合と同じになるように計算されます。取引手数料は、交換に必要な金額に適用されますが、残りの出金分には適用されません。
|
||||
|
||||
<!-- TODO: add a formula and example calculation(s) of single-asset withdrawal fees -->
|
||||
|
||||
### AMMの削除
|
||||
|
||||
トランザクションがAMMに存在する全ての資産を出金すると、AMMは関連するすべてのトラストラインとともに自動的に削除されます。ただし、1回のトランザクションで削除できるトラストラインの数には制限があります。トラストラインが多すぎる場合、AMMは空の状態でレジャーに残ります。これは[AMMDelete トランザクション][]で削除するか、「空のAMM」に対する特別なダブルアセット入金([AMMDeposit トランザクション][])で補充することができます。AMMが空の間は、そのAMMに対する他の操作は無効です。
|
||||
|
||||
### AMMWithdrawのフラグ
|
||||
|
||||
AMMWithdrawトランザクションは、以下のように[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)の値をサポートしています。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 説明 |
|
||||
|:------------------------|:-------------|:--------------|:----------------------|
|
||||
| `tfLPToken` | `0x00010000` | 65536 | 指定された額のLPトークンを返還する、ダブルアセット出金を行います。 |
|
||||
| `tfWithdrawAll` | `0x00020000` | 131072 | LPトークンをすべて返還する、ダブルアセット出金を行います。 |
|
||||
| `tfOneAssetWithdrawAll` | `0x00040000` | 262144 | 全てのLPトークンを返還する、シングルアセット出金を行います。 |
|
||||
| `tfSingleAsset` | `0x00080000` | 524288 | 引き出す資産を指定して、シングルアセット出金を行います。|
|
||||
| `tfTwoAsset` | `0x00100000` | 1048576 | 両資産の金額を指定して、ダブルアセット出金を行います。 |
|
||||
| `tfOneAssetLPToken` | `0x00200000` | 2097152 | シングルアセット出金を行い、指定された額のLPトークンを受け取ります。 |
|
||||
| `tfLimitLPToken` | `0x00400000` | 4194304 | 有効価格を指定して、シングルアセット出金を行います。 |
|
||||
|
||||
これらのフラグのうちの **1つのみ** と、任意の[グローバルフラグ](transaction-common-fields.html#グローバルフラグ)を指定する必要があります。
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------------|:---------------------------------------------|
|
||||
| `tecAMM_EMPTY` | AMMのプールに資産がありません。この状態では、AMMを削除するか、新しい入金を行い資金を供給することしかできません。 |
|
||||
| `tecAMM_BALANCE` | トランザクションによって、プールから1つの資産をすべて引き出そうとしている、もしくは`tfWithdrawAll`の場合に端数処理によって0以外の金額が残ってしまっています。 |
|
||||
| `tecAMM_FAILED` | 例えば、`EPrice`フィールドに指定された有効価格が低過ぎる場合など、出金に関する条件が成立しませんでした。 |
|
||||
| `tecAMM_INVALID_TOKENS` | トークンペアのAMMが存在しないか、計算の結果、引き出し額がゼロに丸められました。 |
|
||||
| `tecFROZEN` | トランザクションは[凍結](freezes.html)されたトークンを引き出そうとしました。 |
|
||||
| `tecINSUF_RESERVE_LINE` | トランザクションの送信者は、このトランザクションを処理するための[準備金要件](reserves.html)の増加に対応できません。おそらく、引き出される資産の1つを保持するために少なくとも1つの新しいトラストラインが必要ですが、新しいトラストラインのための追加の所有者準備金分のXRPを持っていないためでしょう。 |
|
||||
| `tecNO_AUTH` | 送信者は、引き出し資産のいずれかを保有する権限を有していません。 |
|
||||
| `temMALFORMED` | トランザクションで無効なフィールドの組み合わせが指定されました。[AMMWithdrawモード](#ammwithdrawモード)を参照してください。 |
|
||||
| `temBAD_AMM_TOKENS` | 例えば、`issuer`がAMMの関連するAccountRootアドレスでない、`currency`がこのAMMのLPトークンの通貨コードでない、またはトランザクションがこのAMMのLPトークンをAssetフィールドの1つに指定した、などです。 |
|
||||
| `terNO_AMM` | トランザクションで指定した資産ペアの自動マーケットメーカーインスタンスが存在しません。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
html: checkcancel.html
|
||||
parent: transaction-types.html
|
||||
blurb: 未清算のCheckを取り消し、送金を行わずにレジャーから削除します。
|
||||
labels:
|
||||
- Checks
|
||||
---
|
||||
# CheckCancel
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CancelCheck.cpp "Source")
|
||||
|
||||
_([Checks Amendment][]が必要です)_
|
||||
|
||||
未清算のCheckを取り消し、送金を行わずにレジャーから削除します。Checkの送金元または送金先は、いつでもこのトランザクションタイプを使用してCheckを取り消すことができます。有効期限切れのCheckはすべてのアドレスが取り消すことができます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
|
||||
"TransactionType": "CheckCancel",
|
||||
"CheckID": "49647F0D748DC3FE26BDACBC57F251AADEFFF391403EC9BF87C97F67E9977FB0",
|
||||
"Fee": "12"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------|:----------|:------------------|:-------------------------------|
|
||||
| `CheckID` | 文字列 | Hash256 | 取り消す[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 |
|
||||
|
||||
## エラーケース
|
||||
|
||||
- `CheckID`により識別されるオブジェクトが存在していないか、またはCheckではない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。
|
||||
- Checkが有効期限切れではなく、CheckCancelトランザクションの送信者がCheckの送金元または送金先ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
html: checkcash.html
|
||||
parent: transaction-types.html
|
||||
blurb: レジャーでCheckオブジェクトの清算を試みます。
|
||||
labels:
|
||||
- Checks
|
||||
---
|
||||
# CheckCash
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CashCheck.cpp "Source")
|
||||
|
||||
_([Checks Amendment][]が必要です)_
|
||||
|
||||
対応する[CheckCreateトランザクション][]で承認された額まで受領するため、レジャーでCheckオブジェクトの清算を試みます。CheckCashトランザクションでCheckを換金できるのは、Checkの`Destination`アドレスだけです。このCheckの換金方法は、送金先により開始される[Payment][]の実行に似ています。
|
||||
|
||||
Checkに相当する資金があるとは保証されないため、送金元に十分な残高がないか、または資金を送金できるだけの十分な流動性がないことが原因で、Checkの清算が失敗することがあります。このような状況が発生した場合、Checkはレジャーに残り、送金先は後でこのCheckの換金を再試行するか、または異なる額で換金を試みることができます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
|
||||
"TransactionType": "CheckCash",
|
||||
"Amount": "100000000",
|
||||
"CheckID": "838766BA2B995C00744175F69A1B11E32C3DBC40E64801A4056FCBD657F57334",
|
||||
"Fee": "12"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------|:--------------------|:------------------|:--------------------|
|
||||
| `CheckID` | 文字列 | Hash256 | 換金する[Checkレジャーオブジェクト](check.html)のID(64文字の16進文字列)。 |
|
||||
| `Amount` | [通貨額][] | Amount | _(省略可)_ 可能であればCheckを厳密にこの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`DeliverMin`のいずれかを指定する必要があります。 |
|
||||
| `DeliverMin` | [通貨額][] | Amount | _(省略可)_ Checkをこの額以上の可能な限りの額で清算します。通貨は対応するCheckCreateトランザクションの`SendMax`の通貨と一致している必要があります。このフィールドまたは`Amount`のいずれかを指定する必要があります。 |
|
||||
|
||||
`Amount`または`DeliverMin`のいずれかを指定する***必要があります***が、両方は指定しないでください。
|
||||
|
||||
## エラーケース
|
||||
|
||||
- CheckCashトランザクションの送信者がCheckの`Destination`ではない場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。
|
||||
- `CheckID`フィールドにより識別されるCheckが存在していない場合、トランザクションは結果コード`tecNO_ENTRY`で失敗します。
|
||||
- `CheckID`フィールドにより識別されるCheckが有効期限切れである場合、トランザクションは結果コード`tecEXPIRED`で失敗します。
|
||||
- Checkの送金先でRequireDestフラグが有効であるが、作成されるCheckには送金先タグが指定されていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。
|
||||
- トランザクションで`Amount`と`DeliverMin`の両方が指定または省略される場合、トランザクションは結果コード`temMALFORMED`で失敗します。
|
||||
- `Amount`または`DeliverMin` がCheckの通貨(およびXRP以外の通貨の場合はイシュアー)に一致しない場合、トランザクションは結果コード`temBAD_CURRENCY`で失敗します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
html: checkcreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: レジャーにCheckオブジェクトを作成します
|
||||
labels:
|
||||
- Checks
|
||||
---
|
||||
# CheckCreate
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CreateCheck.cpp "Source")
|
||||
|
||||
_([Checks Amendment][]が必要です)_
|
||||
|
||||
レジャーにCheckオブジェクトを作成します。これにより指定の送金先は後日換金することができます。このトランザクションの送信者はCheckの送金元です。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "CheckCreate",
|
||||
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
|
||||
"Destination": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
|
||||
"SendMax": "100000000",
|
||||
"Expiration": 570113521,
|
||||
"InvoiceID": "6F1DFD1D0FE8A32E40E1F2C05CF1C15545BAB56B617F9C6C2D63A6B704BEF59B",
|
||||
"DestinationTag": 1,
|
||||
"Fee": "12"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:--------------------|:------------------|:----------------|
|
||||
| `Destination` | 文字列 | AccountID | Checkを換金できる[アカウント](accounts.html)の一意アドレス。 |
|
||||
| `SendMax` | [通貨額][] | Amount | Checkで送金元から引き落とすことができる送金元通貨の最大額(XRP以外の通貨の[送金手数料](transfer-fees.html)を含む)。Checkは同一通貨の送金先にのみ入金可能です(XRP以外の通貨の場合は同一イシュアーから)。XRP以外の金額の場合、入れ子フィールドの名前にはアルファベットの小文字のみ使用してください。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Checkの理由を明確にする任意のタグ、または支払先となる、ホスティングされている受取人。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ Checkが無効になる時刻([Rippleエポック以降の経過秒数][])。 |
|
||||
| `InvoiceID` | 文字列 | Hash256 | _(省略可)_ このCheckの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
|
||||
|
||||
## エラーケース
|
||||
|
||||
- `Destination`アカウントがCheckの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION`で失敗します。 _([DisallowIncoming amendment][] :not_enabled: が必要です。)_
|
||||
- `Destination`がトランザクションの送信者である場合、トランザクションは結果コード`temREDUNDANT`で失敗します。
|
||||
- `Destination`[アカウント](accounts.html)がレジャーに存在していない場合、トランザクションは結果コード`tecNO_DST`で失敗します。
|
||||
- `Destination`アカウントでRequireDestフラグが有効であるが、トランザクションに`DestinationTag`フィールドが含まれていない場合、トランザクションは結果コード`tecDST_TAG_NEEDED`で失敗します。
|
||||
- `SendMax`に[凍結](freezes.html)されている発行済み通貨が指定されている場合、トランザクションは結果コード`tecFROZEN`で失敗します。
|
||||
- トランザクションの`Expiration`が過去の日時である場合、トランザクションは結果コード`tecEXPIRED`で失敗します。
|
||||
- Checkの追加後に送金元が[所有者準備金](reserves.html#所有者準備金)条件を満たすのに十分なXRPを保有していない場合、トランザクションは結果コード`tecINSUFFICIENT_RESERVE`で失敗します。
|
||||
- Checkの送金元または送金先のいずれかがレジャーでこれ以上のオブジェクトを所有できない場合、トランザクションは結果コード`tecDIR_FULL`で失敗します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
html: clawback.html
|
||||
parent: transaction-types.html
|
||||
blurb: 発行したトークンを取り戻します。
|
||||
labels:
|
||||
- トークン
|
||||
---
|
||||
# Clawback
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Clawback.cpp "ソース")
|
||||
|
||||
{% include '_snippets/clawback-disclaimer.ja.md' %}
|
||||
|
||||
あなたのアカウントが発行したトークンを回収します。
|
||||
|
||||
Clawback機能はデフォルトで無効になっています。使用するには、[AccountSetトランザクション][]を送信して**Allow Trust Line Clawback**設定を有効にする必要があります。既存のトークンを持つ発行者はClawback機能を有効にできません。つまり、トラストライン、オファー、エスクロー、ペイメントチャネル、チェック、または署名者リストを設定する前に行う必要があります。Clawback機能を有効にした後、元に戻すことはできません:アカウントは永久にトラストラインで発行された資産を回収する権限を得ます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "Clawback",
|
||||
"Account": "rp6abvbTbjoce8ZDJkT6snvxTZSYMBCC9S",
|
||||
"Amount": {
|
||||
"currency": "FOO",
|
||||
"issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"value": "314.159"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------------|:----------|:------------|:----------|
|
||||
| `Amount` | [通貨額][] | Amount | 回収する金額と、その金額を回収する相手を表します。`value`サブフィールドの回収する数量はゼロであってはなりません。これが現在の残高より多い場合、トランザクションは全残高を回収します。サブフィールド`Amount`内の`issuer`はトークン所有者のアカウントを表します。|
|
||||
|
||||
このトランザクションを実行するアカウントは、回収する資産の発行者でなければなりません。XRP Ledgerでは、トラストラインは双方向であり、設定によっては双方が資産の*発行者*とみなされることに注意してください。この仕様において、*発行者*という用語は、未払い残高がある(つまり、発行された資産に"債務がある")トラストラインの側が、その資産を回収することを意味します。
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-----------|:------------|
|
||||
| `temDISABLED` | [Clawback amendment](known-amendments.html#clawback)が有効ではありません。 |
|
||||
| `temBAD_AMOUNT` | 保有者の残高が0です。回収しようとする金額が保有者の残高を超えていてもエラーにはなりません。また、`Amount`に記載されている相手がこのトランザクションを発行している`Account`と同じ場合にもエラーが発生します。 |
|
||||
| `tecNO-LINE` | 取引相手とのトラストラインがない、またはトラストラインの残高が0です。 |
|
||||
| `tecNO-PERMISSION` | `lsfNoFreeze`が設定されているときに`lsfAllowTrustlineClawback`を設定、または`lsfAllowTrustLineClawback`が設定されているときに`lsfNoFreeze`を設定しようとしています。 |
|
||||
|
||||
<!-- {# common link defs #} -->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
html: depositpreauth.html
|
||||
parent: transaction-types.html
|
||||
blurb: DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。
|
||||
labels:
|
||||
- セキュリティ
|
||||
---
|
||||
# DepositPreauth
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source")
|
||||
|
||||
_[DepositPreauth Amendment][]が必要です。_
|
||||
|
||||
DepositPreauthトランザクションは別のアカウントに対し、このトランザクションの送信者に支払いを送金することを事前承認します。これは、このトランザクションの送信者が[Deposit Authorization](depositauth.html)を使用している(または使用する予定がある)場合にのみ有用です。
|
||||
|
||||
**ヒント:** このトランザクションを使用して、Deposit Authorizationを有効にする前に特定の取引相手を事前承認できます。これは、Deposit Authorizationの義務化への円滑な移行に役立ちます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType" : "DepositPreauth",
|
||||
"Account" : "rsUiUMpnrgxQp24dJYZDhmV4bE3aBtQyt8",
|
||||
"Authorize" : "rEhxGqkqPPSxQ3P25J66ft5TwpzV14k2de",
|
||||
"Fee" : "10",
|
||||
"Flags" : 2147483648,
|
||||
"Sequence" : 2
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:----------|:------------------|:-----|
|
||||
| `Authorize` | 文字列 | AccountID | _(省略可)_ 事前承認する送信者のXRP Ledgerアドレス。 |
|
||||
| `Unauthorize` | 文字列 | AccountID | _(省略可)_ 事前承認を取り消す必要がある送信者のXRP Ledgerアドレス。 |
|
||||
|
||||
`Authorize`または`Unauthorize`_のいずれか_ を指定する必要がありますが、両方は指定しないでください。
|
||||
|
||||
このトランザクションには以下の制限があります。
|
||||
|
||||
- アカウントはそのアカウント自体のアドレスを事前承認(または承認解除)できません。このような操作をすると、[`temCANNOT_PREAUTH_SELF`](tem-codes.html)で失敗します。
|
||||
- すでに事前承認済みのアカウントを事前承認しようとすると、[`tecDUPLICATE`](tec-codes.html)で失敗します。
|
||||
- 事前承認されていないアカウントを承認解除しようとすると、[`tecNO_ENTRY`](tec-codes.html)で失敗します。
|
||||
- レジャーで資金が供給されていないアドレスを事前承認しようとすると、[`tecNO_TARGET`](tec-codes.html)で失敗します。
|
||||
- 承認を追加すると[DepositPreauthオブジェクト](depositpreauth-object.html)がレジャーに追加されて、[所有者の必要準備金](reserves.html#所有者準備金)に反映されます。トランザクションの送信者に、増額された準備金の支払いに十分なXRPがない場合、トランザクションは[`tecINSUFFICIENT_RESERVE`](tec-codes.html)で失敗します。アカウントの送信者の所有オブジェクトが最大数に達している場合、トランザクションは[`tecDIR_FULL`](tec-codes.html)で失敗します。
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,44 +0,0 @@
|
||||
---
|
||||
html: escrowcancel.html
|
||||
parent: transaction-types.html
|
||||
blurb: Escrowに留保されているXRPを送金元に返金します。
|
||||
labels:
|
||||
- Escrow
|
||||
---
|
||||
# EscrowCancel
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
|
||||
|
||||
_[Escrow Amendment][]が必要です。_
|
||||
|
||||
Escrowに留保されているXRPを送金元に返金します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"TransactionType": "EscrowCancel",
|
||||
"Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"OfferSequence": 7,
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:----------------|:----------|:------------------|:---------------------------|
|
||||
| `Owner` | 文字列 | AccountID | Escrow経由の支払いに資金を供給した支払元アカウントのアドレス。 |
|
||||
| `OfferSequence` | 数値 | UInt32 | 取り消すEscrowを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 |
|
||||
|
||||
EscrowCancelトランザクションはどのアカウントからでも送信できます。
|
||||
|
||||
* 対応する[EscrowCreateトランザクション][]で`CancelAfter`時刻が指定されていない場合、EscrowCancelトランザクションは失敗します。
|
||||
* 指定されていても、`CancelAfter`時刻が最後に閉鎖されたレジャーの閉鎖時刻よりも後である場合は、EscrowCancelトランザクションが失敗します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
html: escrowcreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: Escrowプロセスが終了または取り消されるまでXRPを隔離します。
|
||||
labels:
|
||||
- Escrow
|
||||
---
|
||||
# EscrowCreate
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
|
||||
|
||||
_[Escrow Amendment][]が必要です。_
|
||||
|
||||
Escrowプロセスが終了または取り消されるまでXRPを隔離します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"TransactionType": "EscrowCreate",
|
||||
"Amount": "10000",
|
||||
"Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"CancelAfter": 533257958,
|
||||
"FinishAfter": 533171558,
|
||||
"Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100",
|
||||
"DestinationTag": 23480,
|
||||
"SourceTag": 11747
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:----------|:------------------|:--------------------------|
|
||||
| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてエスクローに留保する[XRP、drop単位][]の額。エスクローに留保されたXRPは`Destination`アドレスに送金されるか(`FinishAfter`時刻の経過後)、または送金元に戻されます(`CancelAfter`時刻の経過後)。 |
|
||||
| `Destination` | 文字列 | AccountID | エスクローに留保されたXRPを受領するアドレス。 |
|
||||
| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このEscrowの有効期限([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻の経過後にのみ資金を送金元に返金できます。 |
|
||||
| `FinishAfter` | 数値 | UInt32 | _(省略可)_ Escrowに留保されたXRPを受取人に対してリリースできる時刻([Rippleエポック以降の経過秒数][])。この値は変更できません。この時刻に達するまでは資金を移動できません。 |
|
||||
| `Condition` | 文字列 | Blob | _(省略可)_[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)を表す16進数値。この条件が満たされている場合にのみ、資金を受取人に送金できます。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ Escrowに留保されている支払いの宛先(宛先アドレスでホスティングされている受取人など) を詳しく指定するための任意のタグ。 |
|
||||
|
||||
`CancelAfter`と`FinishAfter`のいずれかを指定する必要があります。両方を指定する場合は、`FinishAfter`の時刻が`CancelAfter`の時刻よりも前でなければなりません。
|
||||
|
||||
[fix1571 Amendment][]が有効な場合は、`FinishAfter`、`Condition`のいずれかまたは両方を指定する必要があります。[新規: rippled 1.0.0][]
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
html: escrowfinish.html
|
||||
parent: transaction-types.html
|
||||
blurb: 保留中の支払いから受取人へXRPを送金します。
|
||||
labels:
|
||||
- Escrow
|
||||
---
|
||||
# EscrowFinish
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/Escrow.cpp "Source")
|
||||
|
||||
_[Escrow Amendment][]が必要です。_
|
||||
|
||||
保留中の支払いから受取人へXRPを送金します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"TransactionType": "EscrowFinish",
|
||||
"Owner": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"OfferSequence": 7,
|
||||
"Condition": "A0258020E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855810100",
|
||||
"Fulfillment": "A0028000"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:----------------|:-----------------|:------------------|:--------------------|
|
||||
| `Owner` | 文字列 | AccountID | 保留中の支払いに資金を供給した支払元アカウントのアドレス。 |
|
||||
| `OfferSequence` | 符号なし整数 | UInt32 | 終了する保留中の支払いを作成した[EscrowCreateトランザクション][]のトランザクションシーケンス。 |
|
||||
| `Condition` | 文字列 | Blob | _(省略可)_ 以前に指定された保留中の支払いの[PREIMAGE-SHA-256 Crypto-condition](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1)に一致する16進数値。 |
|
||||
| `Fulfillment` | 文字列 | Blob | _(省略可)_ 保留中の支払いの`Condition`に一致する[PREIMAGE-SHA-256 Crypto-condition fulfillment](https://tools.ietf.org/html/draft-thomas-crypto-conditions-02#section-8.1.4)の16進数値。 |
|
||||
|
||||
すべてのアカウントがEscrowFinishトランザクションを送信できます。
|
||||
|
||||
- 保留中の支払いに`FinishAfter`時刻が設定されている場合、この時刻よりも前にはこれを実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`FinishAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも後の場合、EscrowFinishトランザクションは失敗します。
|
||||
- 保留中の支払いに`Condition`が指定されている場合に、その条件に対応する`Fulfillment`を指定しないと、この支払いを実行できません。
|
||||
- 有効期限切れの保留中の支払いは実行できません。具体的には、対応する[EscrowCreateトランザクション][]で指定されている`CancelAfter`時刻が、最後に閉鎖されたレジャーの閉鎖時刻よりも前の場合、EscrowFinishトランザクションは失敗します。
|
||||
|
||||
**注記:** EscrowFinishトランザクションにフルフィルメントが含まれている場合、このトランザクションを送信するための最小[トランザクションコスト](transaction-cost.html)が増加します。トランザクションにフルフィルメントが含まれていない場合、トランザクションコストは標準の10 dropです。トランザクションにフルフィルメントが含まれている場合、トランザクションコストは330 [XRP drop][XRPのdrop数]に加えて、プリイメージサイズの16バイトごとに更に10 dropです。
|
||||
|
||||
[本番環境以外のネットワーク](parallel-networks.html)では、保留中のescrowの送金先アカウントを[削除](deleting-accounts.html)できる場合があります。この場合、 escrowを終了しようとしても結果`tecNO_TARGET`で失敗しますが、 escrowオブジェクトは通常期限切れになる場合を除き、維持されます。別の支払いで送金先アカウントが再作成された場合、 escrowは正常に終了できます。escrowの送金先アカウントは、[fix1523 Amendment](known-amendments.html#fix1523)が有効になる前にescrowが作成された場合にのみ削除できます。本番環境の XRP Ledgerにはそのようなescrowは存在しないため、本番環境のXRP Ledgerではこのようなエッジケースには対応できません。また、このエッジケースは、fix1523とescrowのAmendmentを同時に有効にするテストネットワークでも不可能です。これは、[新しいジェネシスレジャーを開始](start-a-new-genesis-ledger-in-stand-alone-mode.html)するときのデフォルトです。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,104 +0,0 @@
|
||||
---
|
||||
html: nftokenacceptoffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTokenの購入または売却のオファーを受け入れる。
|
||||
labels:
|
||||
- NFT, 非代替性トークン
|
||||
---
|
||||
# NFTokenAcceptOffer
|
||||
|
||||
`NFTokenAcceptOffer`トランザクションは`NFToken`の購入または売却のオファーを受け入れるために使用されます。トランザクションは次のいずれかになります。
|
||||
|
||||
* 1つのオファーを受け入れることを許可する。これは _ダイレクト_ モードと呼ばれます。
|
||||
* 2つの異なるオファー、1つは与えられた`NFToken`の購入を提案し、もう1つは同じ`NFToken`の売却を提案し、アトミックに受け入れられることを許可します。これは _ブローカー_ モードと呼ばれます。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
|
||||
## ブローカー vs. ダイレクト モード
|
||||
|
||||
トランザクションが動作するモードは、トランザクションの`NFTokenSellOffer`フィールドと`NFTokenBuyOffer`フィールドの存在によって決まります。
|
||||
|
||||
| `NFTokenSellOffer` | `NFTokenBuyOffer` | Mode |
|
||||
|:-------------------|:------------------|:---------|
|
||||
| ✔️ | ✔️ | ブローカー |
|
||||
| ✔️ | X | ダイレクト |
|
||||
| X | ✔️ | ダイレクト |
|
||||
|
||||
|
||||
もしこれらのフィールドがどちらも指定されていない場合、トランザクションは不正で、`tem`クラスのエラーを発生させます。
|
||||
|
||||
ブローカーモードの意味合いは、ダイレクト・モードのそれとは若干異なります。トランザクションを送信するアカウントはブローカーとして機能し、2つのオファーをまとめてマッチングさせますが、関係する`NFToken`の所有権を取得することはなく、トランザクションが成功すれば、販売者から購入者に直接転送されます。
|
||||
|
||||
|
||||
## 実行内容
|
||||
|
||||
|
||||
### ダイレクトモード
|
||||
|
||||
ダイレクトモードでは、以下の場合、`NFTokenAcceptOffer`トランザクションは失敗します。
|
||||
|
||||
* `NFTokenAcceptOffer`トランザクションの対象となる`NFTokenOffer`が`NFToken`の`購入`オファーであり、`NFTokenAcceptOffer`を送信したアカウントが、実行時に対応する`NFToken`を所有していない場合。
|
||||
* `NFTokenAcceptOffer`トランザクションの対象となる`NFTokenOffer`は`NFToken`の`売却`オファーであり、実行時に`NFToken`の所有者ではないアカウントが送信している場合。
|
||||
* `NFTokenAcceptOffer`トランザクションの対象となる`NFTokenOffer`は`NFToken`の`売却`オファーであり、実行時に`NFTokenOffer`内の受信者である`Account`以外のアカウントによって送信された場合(存在する場合)。
|
||||
* `NFTokenAcceptOffer`トランザクションの対象となる`NFTokenOffer`に`expiration`が設定されており、そのトランザクションが含まれる親レジャーのフィールドの終了時刻が既に経過している場合。
|
||||
* `NFTokenAcceptOffer`トランザクションの対象となる`NFTokenOffer`が、`NFTokenAcceptOffer`を実行するアカウントが所有し、`NFToken`の売買が行われる場合。
|
||||
|
||||
このような失敗の副作用として、`NFTokenOffer`オブジェクトが削除され、オファーがキャンセルされたかのように準備金が払い戻されることがあります。このため、適切な`tec`クラスのエラーを使用する必要があります。
|
||||
|
||||
トランザクションが正常に実行された場合
|
||||
|
||||
* 既存の`owner`の`NFTokenPage`からトークンが削除され、新しい`owner`の`NFTokenPage`に追加されます。
|
||||
* `NFTokenOffer`で指定された通り、購入者から販売者に資金が移動します。対応する`NFToken`のオファーに`TransferFee`が指定されている場合、`issuer`は指定されたパーセンテージを受け取り、残りは`NFToken`の販売者に送られます。
|
||||
|
||||
|
||||
### ブローカーモード
|
||||
|
||||
ブローカーモードでは、以下の場合、`NFTokenAcceptOffer`トランザクションは失敗します。
|
||||
|
||||
* `NFTokenAcceptOffer`トランザクションに対する`NFTokenOffer`の`購入`オファーがトランザクションを送信するアカウントによって所有されている場合。
|
||||
* `NFTokenAcceptOffer`トランザクションに対する`NFTokenOffer`の`売却`オファーが、トランザクションを送信するアカウントによって所有されている場合。
|
||||
* `NFToken`の売却オファーを出したアカウントが、その実行時に対応する`NFToken`の現在の所有者ではない場合。
|
||||
* いずれかのオファー(`購入`または`売却`)が`expiration`を指定しており、そのトランザクションが含まれる親レジャーのクローズ時間がすでに経過している場合。
|
||||
|
||||
|
||||
## フィールド
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------------|:--------------------|:------------------|:--------------|
|
||||
| `NFTokenSellOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken`の売却を提案する`NFTokenOffer`の識別情報です。 |
|
||||
| `NFTokenBuyOffer` | 文字列 | Hash256 | _(省略可)_ `NFToken`の購入を提案する`NFTokenOffer`の識別情報です。 |
|
||||
| `NFTokenBrokerFee` | [通貨額][] | Amount | _(省略可)_ このフィールドはブローカーモードでのみ有効であり、2つのオファーをまとめるための手数料としてブローカーが保持する金額を指定します。残りの金額は`NFToken`の販売者に送られます。指定する場合、発行者が課す送金手数料を考慮する前に、販売者が受け取る金額が少なくとも売却オファーで示された金額になるように手数料を設定しなければなりません。 |
|
||||
|
||||
ダイレクトモードでは、`NFTokenSellOffer`または`NFTokenBuyOffer`フィールドの**いずれか**を指定する必要があります。ブローカーモードでは、**両方**のフィールドを指定する必要があります。
|
||||
|
||||
この機能は、`NFToken`の所有者が第三者のブローカーにトークンの売却を提案し、ブローカーが`NFToken`を所有したり資金を預けることなく、より高額で`NFToken`を売却することを可能にするものです。
|
||||
|
||||
両方のオファーが同じ資産に対するものである場合、資金が転送される順序によって、本来成功するはずの取引が、資金不足のために失敗する可能性があります。決定論的なトランザクション実行を保証し、成功の可能性を最大化するために、`NFToken`を購入しようとするアカウントから先に資金が引き落とされます。ブローカーに支払われる資金は、販売者に入金される前に入金されます。
|
||||
|
||||
ブローカーモードでは、`NFTokenBuyOffer`と`NFTokenSellOffer`の両方が同じ`NFTokenID`を指定する必要があります。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-----------------------------------|:----------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temMALFORMED` | トランザクションのフォーマットが正しくありません。たとえば、`NFTokenSellOffer`と`NFTokenBuyOffer`のどちらも指定されていないか、`NFTokenBrokerFee`に負の値が指定されています。|
|
||||
| `tecCANT_ACCEPT_OWN_NFTOKEN_OFFER` | 購入者と販売者が同じアカウントになっています。 |
|
||||
| `tecEXPIRED` | トランザクションで指定されたオファーの有効期限が既に切れています。 |
|
||||
| `tecINSUFFICIENT_FUNDS` | 購入者が申し出た金額を全額持っていない。購入額がXRPで指定されている場合、[所有者準備金](reserves.html)が原因である可能性があります。購入額が発行済み通貨である場合、トークンが[凍結](freezes.html) されていることが原因と考えられます。 |
|
||||
| `tecINSUFFICIENT_PAYMENT` | ブローカーモードにおいて、提示された購入額は、`BrokerFee` _および_ `NFToken`の売却コストを支払うには十分な額ではありません。 |
|
||||
| `tecOBJECT_NOT_FOUND` | トランザクションで指定されたオファーがレジャーに存在しません。 |
|
||||
| `tecNFTOKEN_BUY_SELL_MISMATCH` | ブローカーモードにおいて、2つのオファーが有効なマッチングではありません。例えば、販売者が購入者の提示額よりも高い金額を提示している、購入と売却のオファーが異なる通貨で提示されている、販売者が購入者や ブローカーとは異なる販売先を指定している、などです。 |
|
||||
| `tecNFTOKEN_OFFER_TYPE_MISMATCH` | `NFTokenBuyOffer`で識別されるオブジェクトが実際には購入オファーでない、または`NFTokenSellOffer`で識別されるオブジェクトが実際には売却オファーでない場合です。|
|
||||
| `tecNO_PERMISSION` | 販売者が売却する`NFToken`を所有していません。または、マッチングオファーが、オファーを受け入れるアカウントとは異なる`Destination`アカウントを指定しています。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
html: nftokenburn.html
|
||||
parent: transaction-types.html
|
||||
blurb: TokenBurnを使用して、NFTを永久に破棄します。
|
||||
labels:
|
||||
- 非代替性トークン, NFT
|
||||
---
|
||||
# NFTokenBurn
|
||||
|
||||
NFTokenBurnトランザクションは、`NFToken`オブジェクトを保持している`NFTokenPage`内から削除し、トークンをレジャーから削除( _バーン_ )することになります。
|
||||
|
||||
このトランザクションの送信者は、`NFToken`の所有者でなければなりません。`NFToken`が`lsfBurnable`フラグを有効にしている場合、代わりに発行者または発行者の`NFTokenMinter`によって許可されているアカウントの場合があります。
|
||||
|
||||
この操作に成功すると、対応する`NFToken`が削除されます。この操作によって`NFToken`を保持している`NFTokenPage`が空になるか、統合されて`NFTokenPage`が削除されると、所有者準備金が1つ減ります。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenBurn",
|
||||
"Account": "rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2",
|
||||
"Owner": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||
"Fee": "10",
|
||||
"NFTokenID": "000B013A95F14B0044F78A264E41713C64B5F89242540EE208C3098E00000D65"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenID` | 文字列 | Hash256 | このトランザクションによって削除される`NFToken`を指定します。 |
|
||||
| `Owner` | 文字列 | AccountID | _(省略可)_ Burnする`NFToken`の所有者。所有者がこのトランザクションを送信するアカウントと異なる場合にのみ使用されます。発行者または許可された発行者は、`lsfBurnable`フラグが有効なNFTをBurnするために、このフィールドを使用することができます。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------|:--------------------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `tecNO_ENTRY` | 指定された `TokenID` が見つかりませんでした。 |
|
||||
| `tecNO_PERMISSION` | このアカウントにはトークンをBurnする権限がありません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,62 +0,0 @@
|
||||
---
|
||||
html: nftokencanceloffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTokenの売買のための既存のトークンへのオファーをキャンセルする。
|
||||
labels:
|
||||
- NFT, 非代替性トークン
|
||||
---
|
||||
# NFTokenCancelOffer
|
||||
|
||||
`NFTokenCancelOffer`トランザクションは、`NFTokenCreateOffer`を使用して作成した既存のトークンへのオファーをキャンセルするために使用できます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenCancelOffer",
|
||||
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"NFTokenOffers": [
|
||||
"9C92E061381C1EF37A8CDE0E8FC35188BFC30B1883825042A64309AC09F4C36D"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
|
||||
## アクセス権
|
||||
|
||||
`NFTokenOffer` オブジェクトで表される既存のオファーは、以下の方法でキャンセルすることができます。
|
||||
|
||||
* `NFTokenOffer`を最初に作成したアカウント
|
||||
* `NFTokenOffer`の`Destination`フィールドのアカウント(存在する場合)
|
||||
* `NFTokenOffer`が有効期限を指定しており、`NFTokenCancelOffer`が含まれる親レジャーのクローズ時刻が有効期限より大きい場合、任意のアカウントに設定することができます
|
||||
|
||||
このトランザクションは、リストアップされた`NFTokenOffer`オブジェクトがあればレジャーから削除し、それに応じて必要な準備金を調整します。`NFTokenOffer`が見つからなくてもエラーにはなりません。その場合、トランザクションは正常に完了するでしょう。
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------------|:----------|:------------------|:-------------------------|
|
||||
| `NFTokenOffers` | 配列 | VECTOR256 | キャンセルする`NFTokenOffer`オブジェクトのIDの配列(`NFToken`オブジェクトのIDではなく、`NFTokenOffer`オブジェクトのID)です。各エントリーは[NFTokenOffer](nftokenoffer.html)オブジェクトの異なる[オブジェクトID](ledger-object-ids.html)である必要があり、配列に重複した項目がある場合、トランザクションはエラーとなります。 |
|
||||
|
||||
`NFTokenOffers`フィールドのIDの1つ以上が、レジャーに現在存在するオブジェクトを参照していない場合でも、トランザクションは成功します(たとえば、それらのオファーはすでに削除されている可能性があります)。IDの1つが存在するオブジェクトを指していても、[NFTokenOffer](nftokenoffer.html)オブジェクトでない場合は、エラーでトランザクションが失敗します。
|
||||
|
||||
注意すべき点は、誤って`nft_offer_index`ではなく`nft_id`を指定してしまった場合、`tesSUCCESS`応答を受け取る可能性があることです。適切にフォーマットされたID値が見つからない場合、システムは`NFTokenOffer`が既に削除されたと判断するからです。
|
||||
|
||||
IDが[NFTokenOffer](nftokenoffer.html)オブジェクトでないオブジェクトを指している場合、トランザクションはエラーで失敗します。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------|:--------------------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temMALFORMED` | トランザクションが有効なフォーマットではありませんでした。たとえば、`NFTokenOffers`配列が空であるか、一度にキャンセルできるオファーの最大数を超える数を含んでいた場合です。 |
|
||||
| `tecNO_PERMISSION` | `NFTokenOffers`フィールドのIDのうち少なくとも1つが、キャンセルできないオブジェクトを参照しています。例えば、このトランザクションの送信者がオファーの所有者や`Destination`ではない場合や、オブジェクトが`NFTokenOffer`タイプのオブジェクトではなかった場合などです。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
html: nftokencreateoffer.html
|
||||
parent: transaction-types.html
|
||||
blurb: NFTの売買のオファーを作成する。
|
||||
labels:
|
||||
- 非代替性トークン, NFT
|
||||
---
|
||||
# NFTokenCreateOffer
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/NFTokenCreateOffer.cpp "ソース")
|
||||
|
||||
トランザクションを送信するアカウントが所有する`NFToken`に対する新しい _売却_ オファー、または別のアカウントが所有する`NFToken`に対する新しい _購入_ オファーを作成します。
|
||||
|
||||
成功した場合、トランザクションは[NFTokenOfferオブジェクト][]を作成します。各オファーは、オファーを提示したアカウントの[所有者準備金](reserves.html)に関連づけて1つのオブジェクトとしてカウントされます。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenCreateOffer",
|
||||
"Account": "rs8jBmmfpwgmrSPgwMsh7CvKRmRt1JTVSX",
|
||||
"NFTokenID": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007",
|
||||
"Amount": "1000000",
|
||||
"Flags": 1
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `Owner` | 文字列 | AccountID | _(省略可)_ 対応する`NFToken`の所有者を指定します。トークンの購入オファーである場合、このフィールドは必ず存在し、`Account`フィールドとは異なるものでなければなりません(すでに保有しているトークンの購入オファーは無意味)。トークンの売却オファーである場合、このフィールドは存在してはいけません。所有者は暗黙のうちに`Account`と同じになるからです(すでに保有していないトークンを売却するオファーは無意味)。 |
|
||||
| `NFTokenID` | 文字列 | Hash256 | オファーが参照する`NFToken`オブジェクトを指定します。 |
|
||||
| `Amount` | [通貨額][] | Amount | 対応する`NFToken`に対する売却希望額または売却提示額を表します。0を指定することは、トークンの現在の所有者が、誰でも、または`Destination`フィールドで指定されたアカウントに、トークンを無償で譲渡することを意味します。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ オファーが無効となる時間を指定します。値は[Rippleエポック以降の経過秒数][]です。 |
|
||||
| `Destination` | 文字列 | AccountID | _(省略可)_ 存在する場合、このオファーは指定されたアカウントによってのみ受け入れることが可能であることを示します。他のアカウントによってこのオファーを受け入れることはできません。 |
|
||||
|
||||
|
||||
## NFTokenCreateOfferフラグ
|
||||
|
||||
NFTokenCreateOfferタイプのトランザクションは、以下のように[`Flags`フィールド](transaction-common-fields.html#flags-field)に追加の値を設定することが可能です。
|
||||
|
||||
| フラグ名 | 16進数値 | 整数値 | 説明 |
|
||||
|:----------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfSellNFToken` | `0x00000001` | `1` | 有効な場合、オファーが売却オファーであることを示します。そうでない場合は、購入オファーであることを示します。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:---------------------------------|:------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temBAD_AMOUNT` | `Amount`フィールドが有効ではありません。例えば、購入オファーで金額がゼロであったり、金額は発行済み通貨であるが`NFToken`で[`lsfOnlyXRP`フラグ](nftoken.html#nftoken-フラグ)が有効になっている場合などです。 |
|
||||
| `temBAD_EXPIRATION` | 指定された`Expiration`は無効です(例:`0`)。 |
|
||||
| `tecDIR_FULL` | 送信者がレジャーにすでにあまりにも多くのオブジェクトを所有しているか、またはこのトークンの売買のオファーがあまりにも多く存在しています。 |
|
||||
| `tecEXPIRED` | 指定された`Expiration`の時間は既に経過しています。 |
|
||||
| `tecFROZEN` | `Amount`は発行済み通貨で、このオファーからトークンを受け取るトラストラインは[凍結](freezes.html)されています。これは売却者のトラストラインか、`NFToken`の発行者のトラストライン(`NFToken`に送金手数料がある場合)である可能性があります。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | 送信者はこのオファーを提示した後、[所有者準備金](reserves.html)を満たすのに十分なXRPを持っていません。 |
|
||||
| `tecNO_DST` | `Destination`に指定されたアカウントがレジャーに存在しません。 |
|
||||
| `tecNO_ENTRY` | `NFToken`フィールドで指定したアカウントは所有していません。 |
|
||||
| `tecNO_ISSUER` | `Amount`フィールドで指定した発行者が存在しません。 |
|
||||
| `tecNO_LINE` | `Amount`フィールドは発行済み通貨ですが、`NFToken`の発行者はそのトークンのトラストラインを持っておらず、`NFToken`は[`lsfTrustLine`フラグ](nftoken.html#nftoken-フラグ)が有効ではありません。 |
|
||||
| `tecNO_PERMISSION` | `Destination`アカウントが着信する NFTokenOffer をブロックします。 _([DisallowIncoming amendment][] :not_enabled: が必要です。)_
|
||||
| `tecUNFUNDED_OFFER` | 購入オファーの場合、送信者は`Amount`フィールドで指定された通貨を利用可能です。もし`Amount`がXRPである場合、これは準備不足によるものかもしれません。もし`Amount`が発行済み通貨である場合、これは[凍結](freezes.html)されている可能性があります。 |
|
||||
| `tefNFTOKEN_IS_NOT_TRANSFERABLE` | `NFToken`は[`lsfTransferable`フラグ](nftoken.html#nftoken-flags)が無効になっており、このトランザクションでは`NFToken`を発行者に転送したり発行者から転送したりすることはできません。 |
|
||||
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,122 +0,0 @@
|
||||
---
|
||||
html: nftokenmint.html
|
||||
parent: transaction-types.html
|
||||
blurb: TokenMintを使用して新規NFTを発行する。
|
||||
labels:
|
||||
- 非代替性トークン, NFT
|
||||
---
|
||||
# NFTokenMint
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/NFTokenMint.cpp "Source")
|
||||
|
||||
`NFTokenMint`トランザクションは非代替性トークンを作成し、`NFTokenMinter`に紐付く[NFTokenPageオブジェクト][]に[NFToken][]オブジェクトとして追加します。このトランザクションは`NFTokenMinter`にとって、不変と定義されているトークンフィールド(例えば`Flags`)を設定することができる唯一の方法です。
|
||||
|
||||
_([NonFungibleTokensV1_1 amendment][]により追加されました)_
|
||||
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenMint",
|
||||
"Account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||
"TransferFee": 314,
|
||||
"NFTokenTaxon": 0,
|
||||
"Flags": 8,
|
||||
"Fee": "10",
|
||||
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
|
||||
"Memos": [
|
||||
{
|
||||
"Memo": {
|
||||
"MemoType":
|
||||
"687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963",
|
||||
"MemoData": "72656E74"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
[トランザクションを取得してみる >](websocket-api-tool.html?server=wss%3A%2F%2Fs1.ripple.com%2F&req=%7B%22id%22%3A%22example_NFTokenMint%22%2C%22command%22%3A%22tx%22%2C%22transaction%22%3A%22B42C7A0C9C3061463C619999942D0F25E4AE5FB051EA0D7A4EE1A924DB6DFEE8%22%2C%22binary%22%3Afalse%7D)
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:--------------------|:------------------|:-------------------|
|
||||
| `NFTokenTaxon` | 数値 | UInt32 | トークンに関連する分類群。Taxonは通常、トークンの発行者が選択した値です。1つのTaxonは複数のトークンに使用することができます。`0xFFFFFFFF`より大きいTaxonの識別子は使用できません。 |
|
||||
| `Issuer` | 文字列 | AccountID | _(省略可)_ 送信元アカウントが他のアカウントの代理としてトークンを発行する場合における、トークンの発行者。トランザクションを送信するアカウントが `NFToken` の発行者である場合、このフィールドは指定してはいけません。指定される場合、発行者の[AccountRootオブジェクト][]には `NFTokenMinter` フィールドが、このトランザクションの送信者(このトランザクションの`Account`フィールド)に設定されていなければなりません。 |
|
||||
| `TransferFee` | 数値 | UInt16 | _(省略可)_ この値は、`NFToken`の二次販売が許可されている場合に、発行者が徴収する手数料を指定します。このフィールドの有効な値は0から50000の間で、0.001刻みで0.00%から50.00%の送金手数料を設定することができます。このフィールドが設定されている場合、トランザクションは[`tfTransferable`フラグ](#nftokenmintフラグ) を有効にしなければなりません。 |
|
||||
| `URI` | 文字列 | Blob | _(省略可)_ 最大256バイトの任意のデータ。JSONでは、16進数の文字列としてエンコードされる必要があります。URIを16進数に変換するために、[`xrpl.convertStringToHex`](https://js.xrpl.org/modules.html#convertStringToHex)ユーティリティを使用することができます。これは、NFTに関連するデータまたはメタデータを指し示すURIであることを想定しています。コンテンツは、HTTPまたはHTTPS URL、IPFS URI、マグネットリンク、[RFC2379 "data" URL](https://datatracker.ietf.org/doc/html/rfc2397) としてエンコードされた即値データ、あるいは発行者固有のエンコーディングにデコードされていることがあります。URIの有効性はチェックされません。 |
|
||||
|
||||
|
||||
|
||||
## NFTokenMintフラグ
|
||||
|
||||
NFTokenMint型のトランザクションでは、以下のように[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)に追加の値を設定することが可能です。
|
||||
|
||||
| フラグ名 | 16進数値 | 整数値 | 説明 |
|
||||
|:--------------|:-------------|:--------------|:------------------------------|
|
||||
| `tfBurnable` | `0x00000001` | 1 | 発行者(または発行者が許可した者)が`NFToken`を破棄できるようにします。(`NFToken`の所有者は常に破棄することができます)。 |
|
||||
| `tfOnlyXRP` | `0x00000002` | 2 | 発行された`NFToken`はXRPでのみ売買が可能です。これは、トークンに送金手数料がかかり、発行者がXRP以外の発行済み通貨で手数料を受け取りたくない場合に望ましいでしょう。 |
|
||||
| `tfTrustLine` | `0x00000004` | 4 | **非推奨** 発行者が、発行した`NFToken`を転送する際に受け取る手数料を保有するために、自動的に[トラストライン](trust-lines-and-issuing.html) を作成します。[fixRemoveNFTokenAutoTrustLineの修正][]により、このフラグの設定は無効となります。 |
|
||||
| `tfTransferable` | `0x00000008` | 8 | 発行された`NFToken`は他の人に譲渡することができます。このフラグが _有効でない_ 場合、トークンは _発行者から_ 、または _発行者へ_ のみ転送することができます。 |
|
||||
|
||||
|
||||
## 追加情報の埋め込み
|
||||
|
||||
発行時に追加情報を指定する必要がある場合(たとえば、特定の[区画](https://en.wikipedia.org/wiki/Plat)を参照して不動産を特定できる詳細情報、[車両識別番号](https://ja.wikipedia.org/wiki/%E8%BB%8A%E4%B8%A1%E8%AD%98%E5%88%A5%E7%95%AA%E5%8F%B7)を指定して車両を特定できる詳細情報、その他オブジェクト固有の説明)、[取引メモ](transaction-common-fields.html#memosフィールド)を使用することができます。メモは署名された取引の一部であり、履歴アーカイブから入手できますが、レジャーの状態データには保存されません。
|
||||
|
||||
## 他のアカウントの代わりとして発行する
|
||||
|
||||
別のアカウントでNFTを発行する場合、次の2つを実行する必要があります。*アカウント A*があなたのアカウントで、*アカウント B*がNFTokenを発行したいアカウントであるとします。
|
||||
|
||||
1. *アカウントB*の`NFTokenMinter`アカウント設定を、*アカウントA*に設定します。(これは、*アカウントB*が自分に代わってNFTを作成するために*アカウントA*を信頼することを意味します)。
|
||||
2. NFTokenを発行する際、`Issuer`フィールドをアカウントBに設定します。
|
||||
|
||||
### NFTokenMintと発行者の組み合わせ例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "NFTokenMint",
|
||||
"Account": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
|
||||
"Issuer": "rNCFjv8Ek5oDrNiMJ3pw6eLLFtMjZLJnf2",
|
||||
"TransferFee": 25000,
|
||||
"NFTokenTaxon": 0,
|
||||
"Flags": 8,
|
||||
"Fee": "10",
|
||||
"URI": "697066733A2F2F62616679626569676479727A74357366703775646D37687537367568377932366E6634646675796C71616266336F636C67747179353566627A6469",
|
||||
"Memos": [
|
||||
{
|
||||
"Memo": {
|
||||
"MemoType":
|
||||
"687474703A2F2F6578616D706C652E636F6D2F6D656D6F2F67656E65726963",
|
||||
"MemoData": "72656E74"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
このトランザクションは、発行者である`rNCFjv8Ek5oDrNiMJ3pw6eLFtMjZLJnf2`がその`AccountRoot`の`NFTokenMinter`フィールド `rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B`と設定して、そのアカウントが自身に代わってトークンを発行する権限を与えていると想定したものです。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:------------------------------|:---------------------------------------------|
|
||||
| `temDISABLED` | [NonFungibleTokensV1の修正][]は有効ではありません。 |
|
||||
| `temBAD_NFTOKEN_TRANSFER_FEE` | `TransferFee`が許容範囲外です。 |
|
||||
| `temINVALID_FLAG` | `Flags`値には、許可されていない、または有効なフラグでないビットが有効になっています。[fixRemoveNFTokenAutoTrustLine amendment][]が有効になっている場合、`tfTrustLine`フラグはこのエラーを発生させます。|
|
||||
| `temMALFORMED` | トランザクションが正しく指定されていません。例えば、`URI`フィールドが256バイトより長い場合です。 |
|
||||
| `tecNO_ISSUER` | `Issuer`は、レジャーに存在しないアカウントを指定しています。 |
|
||||
| `tecNO_PERMISSION` | `Issuer`フィールドで参照されるアカウントは、このトランザクションの送信者(`NFTokenMinter`設定を使用)が自身の代わりに発行することを承認していません。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | トークンを発行した後、オーナーは更新された[準備金要件](reserves.html)を満たせなくなります。新しい`NFToken`は、新しい[NFTokenPageオブジェクト][]を必要とする場合にのみ、オーナーの準備金を増加させることに注意する必要があり、それぞれ最大32NFTを格納することができます。|
|
||||
| `tecMAX_SEQUENCE_REACHED` | `Issuer`の`MintedNFTokens`フィールドはすでに最大値になっています。これは、発行者またはその代理人が合計で2<sup>32</sup>-1つの`NFToken`を発行した場合にのみ発生します。 |
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,43 +0,0 @@
|
||||
---
|
||||
html: offercancel.html
|
||||
parent: transaction-types.html
|
||||
blurb: XRP LedgerからOfferオブジェクトを削除します。
|
||||
labels:
|
||||
- 分散型取引所
|
||||
---
|
||||
# OfferCancel
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CancelOffer.cpp "Source")
|
||||
|
||||
OfferCancelトランザクションは、XRP LedgerからOfferオブジェクトを削除します。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType":"OfferCancel",
|
||||
"Account":"ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"Fee":"12",
|
||||
"Flags":0,
|
||||
"LastLedgerSequence":7108629,
|
||||
"OfferSequence":6,
|
||||
"Sequence":7
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:----------|:------------------|:-----------------------------|
|
||||
| OfferSequence | 数値 | UInt32 | 前のOfferCreateトランザクションのシーケンス番号。指定されている場合は、レジャーでそのトランザクションにより作成されたOfferオブジェクトがすべて取り消されます。指定されたオファーが存在しない場合はエラーと見なされません。 |
|
||||
|
||||
*ヒント:* 古いオファーを削除して新しいオファーに置き換えるには、OfferCancelとOfferCreateを使用する代わりに、`OfferSequence`パラメーターを指定した[OfferCreateトランザクション][]を使用できます。
|
||||
|
||||
OfferCancelメソッドは、一致するシーケンス番号が見つからない場合でも[tesSUCCESS](tes-success.html)を返します。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,79 +0,0 @@
|
||||
---
|
||||
html: offercreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: 通貨交換の注文を作成します。
|
||||
labels:
|
||||
- 分散型取引所
|
||||
---
|
||||
# OfferCreate
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/CreateOffer.cpp "ソース")
|
||||
|
||||
OfferCreateトランザクションは[分散型取引所](decentralized-exchange.html)で[注文](offers.html)を作成します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "OfferCreate",
|
||||
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"Fee": "12",
|
||||
"Flags": 0,
|
||||
"LastLedgerSequence": 7108682,
|
||||
"Sequence": 8,
|
||||
"TakerGets": "6000000",
|
||||
"TakerPays": {
|
||||
"currency": "GKO",
|
||||
"issuer": "ruazs5h1qEsqpke88pcqnaseXdm6od2xc",
|
||||
"value": "2"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:----------|:------------|:-----------|
|
||||
| [Expiration](offers.html#オファーの有効期限) | 数字 | UInt32 | _(省略可)_ オファーがアクティブでなくなるまでの時間([Rippleエポック以降の経過秒数][])。 |
|
||||
| `OfferSequence` | 数字 | UInt32 | _(省略可)_ 最初に削除されるオファー([OfferCancel][]と同様に指定されます)。 |
|
||||
| `TakerGets` | [通貨額][] | Amount | オファーの作成者によって作成される金額および通貨の種類。 |
|
||||
| `TakerPays` | [通貨額][] | Amount | オファーの作成者によって要求される金額および通貨の種類。 |
|
||||
|
||||
## OfferCreateフラグ
|
||||
|
||||
OfferCreate型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。
|
||||
|
||||
| フラグ名 | 16進数 | 10進数 | 説明 |
|
||||
|:----------------------|:-------------|:--------------|:-------------------|
|
||||
| `tfPassive` | `0x00010000` | 65536 | 有効な場合、オファーはオファーが完全に一致するオファーを消費せず、代わりにレジャーのOfferオブジェクトになります。それはまだクロスしたオファーを消費します。 |
|
||||
| `tfImmediateOrCancel` | `0x00020000` | 131072 | オファーを[IOC注文](http://en.wikipedia.org/wiki/Immediate_or_cancel)として扱います。有効な場合、オファーはレジャーオブジェクトにはなりません。レジャー内の既存のオファーと一致させようとするだけです。即時にオファーがどのオファーとも一致しない場合、どの通貨とも取引せずに「正常に」実行します。この場合、トランザクションは`tesSUCCESS`の[結果コード](transaction-results.html)を返しますが、レジャー内には、[Offerオブジェクト](offer.html)を作成しません。 |
|
||||
| `tfFillOrKill` | `0x00040000` | 262144 | オファーを[FOK注文](http://en.wikipedia.org/wiki/Fill_or_kill)として扱います。レジャー内の既存のオファーのみを一致私用とします。またこれは、全`TakerPays`の数量が取得できる場合に限られます。[fix1578 amendment][]が有効な場合でオファーを配置した時に実行できない場合、トランザクションは`tecKILLED`の[結果コード](transaction-results.html)を返します。そうでない場合は、トランザクションは、どの通貨とも取り引きせずにキャンセルされた場合でも`tesSUCCESS`の結果コードを返します。 |
|
||||
| `tfSell` | `0x00080000` | 524288 | 取引所で`TakerPays`Amountよりも多く取得することになっても、`TakerGets` Amountを交換します。 |
|
||||
|
||||
## エラーケース
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-------------------------|:--------------------------------------------------|
|
||||
| `temINVALID_FLAG` | トランザクションが`tfImmediateOrCancel`と`tfFillOrKill`両方を指定した場合に発生します。|
|
||||
| `tecEXPIRED` | トランザクションが指定した`Expiration`の時間が既に経過している場合に発生します。 |
|
||||
| `tecKILLED` | トランザクションが`tfFillOrKill`を指定し、全額を約定できない場合に発生します。_[ImmediateOfferKilled amendment][]_ が有効な場合、この結果コードは、トランザクションが`tfImmediateOrCancel`を指定して資金が移動せずに実行された場合にも発生します(これまでは、これは`tesSUCCESS`を返していました)。 |
|
||||
| `temBAD_EXPIRATION` | トランザクションの`Expiration`フィールドの値が無効なフォーマットの場合に発生します。 |
|
||||
| `temBAD_SEQUENCE` | トランザクションの`OfferSequence`フィールドの値が無効なフォーマットであるか、トランザクション自身の`Sequence`番号より大きい場合に発生します。 |
|
||||
| `temBAD_OFFER` | OfferがXRPとXRPを交換しようとした場合、またはトークンの無効な量やマイナスの量を交換しようとした場合に発生します。 |
|
||||
| `temREDUNDANT` | トランザクションが同じトークン(同じ発行者、通貨コード)を指定した場合に発生します。 |
|
||||
| `temBAD_CURRENCY` | トランザクションで通貨コードが"XRP"のトークンが指定された場合に発生します。 |
|
||||
| `temBAD_ISSUER` | トランザクションが無効な`issuer`値を持つトークンを指定した場合に発生します。 |
|
||||
| `tecNO_ISSUER` | トランザクションで、`issuer`の値が台帳の有効化されたアカウントでないトークンを指定した場合に発生します。|
|
||||
| `tecFROZEN` | [凍結](freezes.html)されたトラストライン(ローカルおよびグローバルの凍結を含む)上のトークンを含むトランザクションの場合に発生します。 |
|
||||
| `tecUNFUNDED_OFFER` | トランザクションの送信者が`TakerGets`の通貨を正の値で保有していない場合に発生する。(例外: `TakerGets`にトランザクションの送信者が発行するトークンを指定した場合、トランザクションは成功します)。 |
|
||||
| `tecNO_LINE` | 発行者が[Authorized Trust Lines](authorized-trust-lines.html)を使用しているトークンを含むトランザクションで、必要なトラストラインが存在しない場合に発生します。 |
|
||||
| `tecNO_AUTH` | 発行者が[Authorized Trust Lines](authorized-trust-lines.html)を使用しているトークンを含むトランザクションで、トークンを受け取るトラストラインが存在するが認証されていない場合に発生します。 |
|
||||
| `tecINSUF_RESERVE_OFFER` | 所有者が台帳に新しいOfferオブジェクトを追加するための準備要件を満たすのに十分なXRPを持っておらず、トランザクションがどの通貨も変換しなかった場合に発生します。(トランザクションが何らかの金額のトレードに成功した場合、トランザクションは結果コード`tesSUCCESS`で成功しますが、残りは台帳にOfferオブジェクトを作成しません)。 |
|
||||
| `tecDIR_FULL` | トランザクションの送信者が台帳で多くのアイテムを所有している場合、またはオーダーブックに同じ取引レートのオファーがすでに多く含まれている場合に発生します。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,136 +0,0 @@
|
||||
---
|
||||
html: payment.html
|
||||
parent: transaction-types.html
|
||||
blurb: アカウント間での価値の移動します。
|
||||
labels:
|
||||
- 支払い
|
||||
- XRP
|
||||
- 複数通貨間
|
||||
- トークン
|
||||
---
|
||||
# Payment
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/5425a90f160711e46b2c1f1c93d68e5941e4bfb6/src/ripple/app/transactors/Payment.cpp "ソース")
|
||||
|
||||
Paymentトランザクションは、アカウント間での価値の移動を表現するものです(通過するパスによっては、非可分的に発生する追加的な価値交換を伴うことがあります)。このトランザクションタイプはいくつかの[支払いの種類](#paymentの種類)に使用することがでできます。
|
||||
|
||||
Paymentは、[アカウントを作成](#アカウントの作成)する唯一の手段でもあります。
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType" : "Payment",
|
||||
"Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"Amount" : {
|
||||
"currency" : "USD",
|
||||
"value" : "1",
|
||||
"issuer" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn"
|
||||
},
|
||||
"Fee": "12",
|
||||
"Flags": 2147483648,
|
||||
"Sequence": 2,
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:---------------|:--------------|:------------------|:-----------------|
|
||||
| Amount | [通貨額][] | Amount | 送金する通貨額。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。[**tfPartialPayment**フラグ](#paymentのフラグ)が設定されている場合は、この金額を _上限_ とする金額を送金します。 |
|
||||
| Destination | 文字列 | AccountID | 支払いを受取るアカウントの一意アドレス。 |
|
||||
| DestinationTag | 数値 | UInt32 | _(省略可)_ 宛先(支払先となる、ホスティングされている受取人)への支払い理由を明確にするための任意のタグ。 |
|
||||
| InvoiceID | 文字列 | Hash256 | _(省略可)_ この支払いの具体的な理由または識別子を表現する任意の256ビットハッシュ。 |
|
||||
| Paths | パス配列の配列 | PathSet | (省略可。自動入力可能)このトランザクションに使用される[支払いパス](paths.html)の配列。XRP間のトランザクションでは省略する必要があります。 |
|
||||
| SendMax | [通貨額][] | Amount | _(省略可)_ [送金手数料](transfer-fees.html)、為替レート、[スリッページ](http://en.wikipedia.org/wiki/Slippage_%28finance%29)を含め、このトランザクションに関して支払い元通貨での負担を許容する上限額。[トランザクションの送信コストとして消却されるXRP](transaction-cost.html)は含めないでください。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。複数通貨間の支払いまたは複数の発行を伴う支払いについては、このフィールドを入力する必要があります。XRP間の支払いでは省略する必要があります。 |
|
||||
| DeliverMin | [通貨額][] | Amount | _(省略可)_ このトランザクションで送金する、宛先通貨での最少金額。[Partial Payments](partial-payments.html)の場合のみ有効になります。XRP以外の金額の場合、入れ子フィールドの名前では、アルファベットの小文字のみ使用してください。 |
|
||||
|
||||
## Paymentの種類
|
||||
|
||||
Paymentトランザクションタイプは、いくつかの異なるタイプの抽象的なアクションを表現することができる汎用ツールです。下の表で説明するように、トランザクションのフィールドに基づいてトランザクションタイプを識別することができます。
|
||||
|
||||
| Paymentの種類 | `Amount` | `SendMax` | `Paths` | `Address` = `Destination`? | 説明 |
|
||||
|:-------------|:----------|:-----------|:----------|:---------------------------|:--|
|
||||
| [XRP同士の直接支払い][] | String (XRP) | 省略 | 省略 | いいえ | アカウント間でへ直接XRPを送金します。常に正確な金額を送信します。基本的な[取引コスト](transaction-cost.html)以外の手数料は適用されません。 |
|
||||
| [発行通貨の作成・償還][] | Object | Object (任意) | 任意 | いいえ | XRP Ledgerに追跡されているXRP以外の通貨や資産の量を増減させます。[送金手数料](transfer-fees.html)と[凍結](freezes.html)は、直接送金・換金する際には適用されません。 |
|
||||
| [クロスカレンシー(通貨間)決済][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 通常は必須 | いいえ | 発行された通貨を保有者から別の保有者に送信します。`Amount`と`SendMax`の両方をXRPにすることはできません。これらの支払いは、発行者を介して[リップリング](rippling.html)し、トランザクションがパスセットを指定した場合、複数の仲介者を介してより長い[パス](paths.html)を取ることができます。トランザクション形式には、発行者が設定した[送金手数料](transfer-fees.html) が適用されます。これらのトランザクションは、異なる通貨間や、場合によっては同じ通貨コードで異なる発行者の通貨間を接続するために、[分散型取引所](decentralized-exchange.html)のオファーを利用します。 |
|
||||
| [Partial payment][] | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 通常は必須 | いいえ | 任意の通貨を特定の金額まで送ります。[`tfPartialPayment` フラグ](#paymentのフラグ)を使用します。トランザクションが成功するための最小値を指定する `DeliverMin` 値を含めることができます。トランザクションが `DeliverMin` を指定しない場合、_任意の正の値_ を指定して成功させることができる。 |
|
||||
| 通貨変換 | Object (non-XRP) / String (XRP) | Object (non-XRP) / String (XRP) | 必須 | はい | [分散型取引所](decentralized-exchange.html)のオファーを消費して、ある通貨を別の通貨に交換し、[裁定取引](https://ja.wikipedia.org/wiki/%E8%A3%81%E5%AE%9A%E5%8F%96%E5%BC%95)の機会を得ることが出来ます。`Amount`と `SendMax` の両方を XRP にすることはできません。[Data API](data-api.html) は、このタイプの取引を "payment" ではなく、"exchange" として追跡しています。 |
|
||||
|
||||
[XRP同士の直接支払い]: direct-xrp-payments.html
|
||||
[発行通貨の作成・償還]: tokens.html
|
||||
[クロスカレンシー(通貨間)決済]: cross-currency-payments.html
|
||||
[Partial payment]: partial-payments.html
|
||||
|
||||
## SendMaxおよびAmountで使用する特殊なissuerの値
|
||||
|
||||
ほとんどの場合、XRP以外の[通貨額][]の`issuer`フィールドは、金融機関の[発行アドレス](account-types.html)を示しています。ただし、支払いを記述するにあたって、支払いの`Amount`フィールドと`SendMax`フィールドにある`issuer`フィールドについては、特殊なルールが存在します。
|
||||
|
||||
* 2つのアドレス間で、同一の通貨に関して存在する残高は常に1つです。つまり、金額の`issuer`フィールドが実際に表しているのは、イシュアンスを作成したアドレスではなく、イシュアンスを換金する相手方であることがあります。
|
||||
* 宛先`Amount`フィールドの`issuer`フィールドが`Destination`アドレスと一致している場合、「宛先が受け入れるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のトラストラインで保持されている宛先によって作成されたイシュアンスに加え、宛先が当該アドレスまでトラストラインを延長しているすべてのアドレスが含まれます。
|
||||
* `SendMax`フィールドの`issuer`フィールドが送信元アカウントのアドレスと一致している場合、「送信元が使用できるあらゆるイシュアー」を意味する特殊なケースとして取り扱われます。これには、他のアカウントが送信元アカウントまで延長しているトラストラインで新しいイシュアンスを作成すること、送信元アカウントが保持しているイシュアンスを他のイシュアーから送信することが含まれます。
|
||||
|
||||
## アカウントの作成
|
||||
|
||||
Payment型のトランザクションでは、資金供給のないアドレスに対して十分なXRPを送金することで、XRP Ledgerに新規のアカウントを作成できます。資金供給のないアドレスに対するその他のトランザクションは、常に失敗します。
|
||||
|
||||
詳細は、[アカウント](accounts.html#アカウントの作成)を参照してください。
|
||||
|
||||
## パス
|
||||
|
||||
`Paths`フィールドが存在する場合、Pathフィールドには、 _パスセット_ (パス配列の配列)が記述されていなければなりません。個々のパスは、さまざまな仲介アカウントやオーダーブックを経由して、送信者から受信者へと価値が1つの方向へ流れることを表します。単一のトランザクションで、複数のパスを使用する可能性もあります。例えば、トランザクションで複数のオーダーブックを使用して、最も有利なレートで通貨を交換する場合です。
|
||||
|
||||
以下の場合を含め、直接の支払いでは`Paths`フィールドを省略する必要があります。
|
||||
|
||||
* XRP間の送金。
|
||||
* 送信者と受信者を接続するトラストライン上での直接送金。
|
||||
|
||||
`Paths`フィールドを指定すると、サーバーは、提供されたセットと _デフォルトパス_ の中から、使用するパス(指定されたアカウントに接続する上で、最も直行となる経路)をトランザクション処理時に判別します。このように決定された判別は、コストを最小化しようとするものですが、完璧であることは保証されません。
|
||||
|
||||
`Paths`フィールドを、空の配列としたり、メンバーがすべて空の配列あるような配列としたりすることはできません。
|
||||
|
||||
詳細は、[Paths](paths.html)を参照してください。
|
||||
|
||||
## Paymentのフラグ
|
||||
|
||||
Payment型のトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。
|
||||
|
||||
| フラグの名前 | 16進値 | 10進値 | 説明 |
|
||||
|:-----------------|:-----------|:--------------|:-----------------------------|
|
||||
| tfNoDirectRipple | 0x00010000 | 65536 | デフォルトパスを使用せず、`Paths`フィールドに含まれているパスのみ使用します。これによりトランザクションは強制的に裁定機会を活用することになります。ほとんどのクライアントでは、これは必要ありません。 |
|
||||
| tfPartialPayment | 0x00020000 | 131072 | `SendMax`を超えていないのに指定された`Amount`を送金できない場合、即座に失敗とするのではなく、受取られる額を減額します。詳細は、[Partial Payments](partial-payments.html)を参照してください。 |
|
||||
| tfLimitQuality | 0x00040000 | 262144 | すべての変換で、入力と出力との比率が`Amount`と`SendMax`との比率と同一であるか、さらに有利となるパスのみを採用します。詳細は、[クオリティの制限](#クオリティの制限)を参照してください。 |
|
||||
|
||||
## Partial Payments
|
||||
|
||||
Partial Paymentsを利用すると、受取られる金額を減額することによって、支払いを成功させることができます。Partial Paymentsが有用なのは、追加的なコストを発生させずに[支払いを返金](stablecoin-issuer.html#不明な入金の返金)する場合です。その一方で、成功したトランザクションの`Amount`フィールドに、送金された金額が常に正しく記述されていることを前提としている環境において、悪用されるおそれもあります。
|
||||
|
||||
Partial Paymentsとは、**tfPartialPayment**フラグが有効になっている[Paymentトランザクション][]です。Partial Paymentsは、`SendMax`値を超える金額を送金することなく、`DeliverMin`フィールド以上の正の金額(`DeliverMin`が指定されていない場合、任意の正の金額)を送金する場合に成功します。
|
||||
|
||||
支払いのメタデータにある[`delivered_amount`](transaction-metadata.html#delivered_amount)フィールドは、宛先アカウントが実際に受け取る通貨の金額を示しています。
|
||||
|
||||
詳細は、[Partial Payments](partial-payments.html)の全文を参照してください。
|
||||
|
||||
|
||||
## クオリティの制限
|
||||
|
||||
XRP Ledgerでは、ある通貨での入金額と別の通貨での出金額の比率として、通貨取引の「クオリティ」を定義します。例えば、2米ドルと引き換えに1イギリスポンドを受け取る場合、その交換の「クオリティ」は`0.5`です。
|
||||
|
||||
[*tfLimitQuality*フラグ](#paymentのフラグ)を使用すると、実行する変換のクオリティについて下限を設定できます。このクオリティの制限は、宛先の`Amount`を`SendMax`の金額(通貨にかかわらず金額のみ)で除算することによって定義します。設定した場合、支払い処理エンジンは、クオリティの制限よりもクオリティ(為替レート)が低い(数値が小さい)パスの使用を回避します。
|
||||
|
||||
tfLimitQualityフラグは、それ自体、トランザクションが成功する状況を減少させるものになります。具体的には、好ましくない変換が支払いの一部で使用されている場合、支払いにおける変換の*平均*的なクオリティが全体としてクオリティの制限と同一か、それ以上であっても、支払いが拒否されます。支払いがこの形で拒否される場合、[トランザクションの結果](transaction-results.html)は`tecPATH_DRY`です。
|
||||
|
||||
次の例を考えてみます。100人民元(`Amount` = 100人民元)を最大20米ドル(`SendMax` = 20米ドル)と引き換えに相手方に送金しようとする場合、クオリティの制限は`5`です。あるトレーダーが15米ドルと引き換えに95人民元をオファーしているものの(米ドルあたり約`6.3`人民元の比率)、市場の次善のオファーが2ドルに対して5人民元であるとします(米ドルあたり`2.5`人民元の比率)。両方のオファーを受諾して相手方に100人民元を送金する場合、送信元が負担するコストは17米ドルであり、平均のクオリティは約`5.9`です。
|
||||
|
||||
tfLimitQualityフラグが設定されていない場合、17米ドルというコストは指定された`SendMax`に収まっているため、このトランザクションは成功します。一方、tfLimitQualityフラグが有効になっている場合は失敗します。2番目のオファーを受諾するためのパスのクオリティは`2.5`であり、`5`というクオリティの制限よりも低いためです。
|
||||
|
||||
tfLimitQualityフラグが最も有用となるのは、[Partial Payments](partial-payments.html)と組み合わせる場合です。*tfPartialPayment*と*tfLimitQuality*の両方がトランザクションに対して設定されている場合、トランザクションでは、クオリティの制限よりも低い変換を使用することなく、送金可能な最大限の宛先`Amount`が送金されます。
|
||||
|
||||
95人民元/15米ドルのオファーと5人民元/2米ドルのオファーがある上の例で、トランザクションに関してtfPartialPaymentとtfLimitQualityの両方が有効になっている場合、状況は異なります。20米ドルの`SendMax`および100人民元の宛先`Amount`を維持する場合も、クオリティの制限は`5`です。ただし、実行しようとするのはPartial Paymentsであるため、宛先に対する送金の全額を一度で送金できない場合、トランザクションを失敗とするのではなく、送金可能な最大限の金額が送金されます。つまり、トランザクションでは、クオリティが約`6.3`である95人民元/15米ドルのオファーは受け入れますが、5人民元/2米ドルのオファーはクオリティが`2.5`であり、クオリティの制限の`5`より低いため、拒否します。最終的に、トランザクションで送金されるのは満額の100人民元ではなく95人民元になりますが、不利な為替レートで資金を浪費することを避けられます。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
html: paymentchannelclaim.html
|
||||
parent: transaction-types.html
|
||||
blurb: Payment Channelに対しXRPを請求します。
|
||||
labels:
|
||||
- Payment Channel
|
||||
---
|
||||
# PaymentChannelClaim
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source")
|
||||
|
||||
_[PayChan Amendment][]が必要です。_
|
||||
|
||||
Payment Channelに対しXRPを請求するか、Payment Channelの有効期限を調整するか、またはこの両方の操作を行います。このトランザクションは、指定されたChannelでのトランザクション送信者の役割に応じてさまざまに利用できます。
|
||||
|
||||
Channelの**支払元アドレス**は以下の操作を実行できます。
|
||||
|
||||
- 署名済みクレームの有 _無_ にかかわらずChannelから宛先へXRPを送金します。
|
||||
- Channelの`SettleDelay`が経過した時点で即時にChannelが有効期限切れになるように設定します。
|
||||
- 保留中の`Expiration`時刻をクリアします。
|
||||
- クレームを最初に処理するかどうかに関わらず、Channelを即時に閉鎖します。ChannelにXRPが残っている場合、支払元アドレスはそのChannelを即時に閉鎖できません。
|
||||
|
||||
Channelの**宛先アドレス**は以下の操作を実行できます。
|
||||
|
||||
- 署名済みクレームを使用してChannelからXRPを受領します。
|
||||
- クレームの処理が完了したらChannelを即時に閉鎖し、未請求のXRPをすべてChannelの支払元に返金します。
|
||||
|
||||
このトランザクションを送信する**すべてのアドレス**は以下の操作を実行できます。
|
||||
|
||||
- Channelの`Expiration`または`CancelAfter`の時刻が前のレジャーの閉鎖時刻よりも古い場合にはChannelが閉鎖します。有効な形式のPaymentChannelClaimトランザクションでは、トランザクションの内容に関わらず常にこの効果があります。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198",
|
||||
"Balance": "1000000",
|
||||
"Amount": "1000000",
|
||||
"Signature": "30440220718D264EF05CAED7C781FF6DE298DCAC68D002562C9BF3A07C1E721B420C0DAB02203A5A4779EF4D2CCC7BC3EF886676D803A9981B928D3B8ACA483B80ECA3CD7B9B",
|
||||
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A"
|
||||
}
|
||||
```
|
||||
|
||||
<!--{# TODO: replace the above example with one where the channel, pubkey, signature, and balance match #}-->
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:------------|:----------|:------------------|:-------------------------------|
|
||||
| `Channel` | 文字列 | Hash256 | Channelの一意のID(64文字の16進文字列)。 |
|
||||
| `Balance` | 文字列 | Amount | _(省略可)_ このクレームの処理後にこのChannelから送金される[XRP、drop単位][通貨額]。XRPを送金する場合に必須です。Channelからこれまでに送金された総額よりも大きく、署名済みクレームの`Amount`よりも少ない額である必要があります。Channelを閉鎖する場合を除き、指定する必要があります。 |
|
||||
| `Amount` | 文字列 | Amount | _(省略可)_ `Signature`により承認された[XRP、drop単位][通貨額]の額。これは、署名済みメッセージの額に一致している必要があります。これは、Channelが利用できるXRPの累計額であり、以前に精算されたXRPを含みます。 |
|
||||
| `Signature` | 文字列 | Blob | _(省略可)_ クレームの署名です(16進数)。署名付きメッセージには、Channel IDとクレームの額が含まれています。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。 |
|
||||
| `PublicKey` | 文字列 | Blob | _(省略可)_ 署名に使用する公開鍵(16進数)。公開鍵はレジャーに保管されているこのChannelの`PublicKey`と一致している必要があります。トランザクションの送信者がChannelの支払元アドレスでない場合には必須です。また`Signature`フィールドは省略されます。(`rippled`がトランザクションをレジャーに適用する前に署名の有効性をチェックできるように、トランザクションにPubKeyが指定されています。) |
|
||||
|
||||
[DeletableAccounts Amendment](known-amendments.html#deletableaccounts)が有効であり、 _かつ_ Payment Channelの作成時に[fixPayChanRecipientOwnerDir Amendment](known-amendments.html#fixpaychanrecipientownerdir)が有効でなかった場合は、Payment Channelの送金先が[削除](deleting-accounts.html)され、現在レジャーに存在しない可能性があります。宛先が削除されている場合、支払元アカウントはチャネルから宛先にXRPを送金できません。トランザクションは`tecNO_DST`で失敗します。(もちろん、削除されたアカウントがトランザクションを送信することはできません。)宛先アカウントが削除されている場合に、このトランザクションタイプを他の用途(チャネルの有効期限の調整、XRPのないチャネルのクローズ、有効期限を過ぎたチャネルの削除など)で使用しても影響はありません。
|
||||
|
||||
|
||||
## PaymentChannelClaimフラグ
|
||||
|
||||
PaymentChannelClaimタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 説明 |
|
||||
|:----------|:-----------|:--------------|:------------------------------------|
|
||||
| `tfRenew` | 0x00010000 | 65536 | Channelの`Expiration`時刻をクリアします。(`Expiration`は、Channelの変更できない`CancelAfter`時刻とは異なります。)このフラグは、Payment Channelの支払元アドレスだけが使用できます。 |
|
||||
| `tfClose` | 0x00020000 | 131072 | Channelの閉鎖を要求します。このフラグは、Channelの支払元アドレスと宛先アドレスだけが使用できます。このフラグにより、現在のクレームの処理後にChannelにこれ以上のXRPが割り当てられない場合、または宛先アドレスが使用している場合に、Channelが即時に閉鎖されます。XRPがまだChannelに保有されているときに、支払元アドレスがこのフラグを使用した場合、`SettleDelay`秒の経過後にChannelが閉鎖するようにスケジュールされます。(具体的には、Channelの`Expiration`は、前のレジャーの閉鎖時刻にChannelの`SettleDelay`の時間を加算した時刻に設定されます。ただし、Channelにこの時刻よりも早い`Expiration`時刻がすでに設定されている場合を除きます。)XRPがまだChannelに保有されているときに、宛先アドレスがこのフラグを使用した場合、クレーム処理後に残っているXRPはすべて支払元アドレスに返金されます。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,49 +0,0 @@
|
||||
---
|
||||
html: paymentchannelcreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: 新しいペイメントチャネルを作成します。
|
||||
labels:
|
||||
- Payment Channel
|
||||
---
|
||||
# PaymentChannelCreate
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "ソース")
|
||||
|
||||
_[PayChan Amendment][]が必要です。_
|
||||
|
||||
[ペイメントチャンネル](payment-channels.html)を作成し、XRPで資金を供給します。このトランザクションを送信するアドレスが、ペイメントチャネルの「送信元アドレス」となります。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"TransactionType": "PaymentChannelCreate",
|
||||
"Amount": "10000",
|
||||
"Destination": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"SettleDelay": 86400,
|
||||
"PublicKey": "32D2471DB72B27E3310F355BB33E339BF26F8392D5A93D3BC0FC3B566612DA0F0A",
|
||||
"CancelAfter": 533171558,
|
||||
"DestinationTag": 23480,
|
||||
"SourceTag": 11747
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:----------|:------------------|:--------------------------|
|
||||
| `Amount` | 文字列 | Amount | 送金元の残高から差し引いてこのChannelに留保する[XRP、drop単位][]の額。このChannelのオープン時には、XRPを`Destination`アドレスにのみ移動できます。Channelが閉鎖すると、未請求のXRPは支払元アドレスの残高に戻されます。 |
|
||||
| `Destination` | 文字列 | AccountID | このChannelに対するXRPクレームを受け取るアドレス。Channelの「宛先アドレス」とも呼ばれます。送金元(`Account`)と同一にはできません。 |
|
||||
| `SettleDelay` | 数値 | UInt32 | Channelに未請求のXRPがある場合に、支払元アドレスがそのChannelを閉鎖するまでに待機する時間。 |
|
||||
| `PublicKey` | 文字列 | Blob | 送信元がこのチャネルに対する請求に使用する鍵ペアの33バイトの公開鍵を16進数で指定します。これはsecp256k1またはEd25519の公開鍵であることができます。キーペアの詳細については、[鍵の導出](cryptographic-keys.html#鍵導出) を参照してください。 |
|
||||
| `CancelAfter` | 数値 | UInt32 | _(省略可)_ このChannelの有効期限([Rippleエポック以降の経過秒数][])。この時刻の経過後にトランザクションがこのChannelを変更しようとすると、このChannelは閉鎖し、Channelは変更されません。この値は変更できません。Channelはこの時刻よりも早い時点で閉鎖できますが、この時刻の経過後にもオープンしたままにすることはできません。 |
|
||||
| `DestinationTag` | 数値 | UInt32 | _(省略可)_ このPayment Channelの宛先(宛先アドレスのホスティングされている受取人など) を詳しく指定するための任意のタグ。 |
|
||||
|
||||
`Destination` アカウントがペイメントチャネルの着信をブロックしている場合、トランザクションは結果コード`tecNO_PERMISSION` 失敗します。_([DisallowIncoming amendment][] :not_enabled: が必要です)_。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
html: paymentchannelfund.html
|
||||
parent: transaction-types.html
|
||||
blurb: Payment ChannelにXRPを追加します。
|
||||
labels:
|
||||
- Payment Channel
|
||||
---
|
||||
# PaymentChannelFund
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/PayChan.cpp "Source")
|
||||
|
||||
_[PayChan Amendment][]が必要です。_
|
||||
|
||||
Payment ChannelにXRPを追加する、有効期限の更新も可能。このトランザクションは、Channelの支払元アドレスだけが使用できます。
|
||||
|
||||
PaymentChannelFundの例:
|
||||
|
||||
```json
|
||||
{
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"TransactionType": "PaymentChannelFund",
|
||||
"Channel": "C1AE6DDDEEC05CF2978C0BAD6FE302948E9533691DC749DCDD3B9E5992CA6198",
|
||||
"Amount": "200000",
|
||||
"Expiration": 543171558
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------|:----------|:------------------|:------------------------------|
|
||||
| `Channel` | 文字列 | Hash256 | 資金供給するChannelの一意のID(64文字の16進文字列)。 |
|
||||
| `Amount` | 文字列 | Amount | Channelに追加する[XRP、drop単位][通貨額]の正の額。 |
|
||||
| `Expiration` | 数値 | UInt32 | _(省略可)_ Channelに新たに設定する`Expiration`の時刻(Rippleエポック以降の経過秒数)。現行時刻にChannelの`SettleDelay`を加えた時刻よりも後であるか、またはChannelの既存の`Expiration`よりも後である必要があります。`Expiration`時刻の経過後には、トランザクションがそのChannelにアクセスするとChannelが閉鎖し、トランザクションの通常の処理は行われません。Channelの閉鎖時には未使用のXRPはすべて支払元アドレスに返金されます。(`Expiration`は、Channelの不変の`CancelAfter`時刻とは別のものです。)詳細は、[PayChannelレジャーオブジェクトタイプ](paychannel.html)を参照してください。 |
|
||||
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:-----------|:------------|
|
||||
| `tecINSUFFICIENT_RESERVE` | 支払元アカウントが[必要準備金](reserves.html)のXRPを持っていません。|
|
||||
| `tecNO_DST` | 送金先アカウントが削除されていました。 この可能性は、Payment Channelの作成時は[fixPayChanRecipientOwnerDir amendment](known-amendments.html#fixpaychanrecipientownerdir)が有効になった(2020-05-01)前の場合だけです。|
|
||||
| `tecNO_ENTRY` | `Channel`フィールドに指定されたPayment Channelがありません。 |
|
||||
| `tecNO_PERMISSION` | トランザクションの送金元アカウントはPayment Channelの支払元アカウントではありまっせん。|
|
||||
| `tecUNFUNDED` | 送金元アカウントは[必要準備金](reserves.html)以上に指定されたXRPを持っていません。|
|
||||
| `temBAD_AMOUNT` | トランザクションの`Amount`フィールドの指定が正しくない。負もゼロも無効です。|
|
||||
| `temBAD_EXPIRATION` | `Expiration`フィールドの指定が正しくない。|
|
||||
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
html: setregularkey.html
|
||||
parent: transaction-types.html
|
||||
blurb: アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。
|
||||
labels:
|
||||
- セキュリティ
|
||||
---
|
||||
# SetRegularKey
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/4239880acb5e559446d2067f00dabb31cf102a23/src/ripple/app/transactors/SetRegularKey.cpp "Source")
|
||||
|
||||
`SetRegularKey`トランザクションは、アカウントに関連付けられているレギュラーキーペアの割り当て、変更、削除を行います。
|
||||
|
||||
アカウントを保護するには、レギュラーキーペアをアカウントに割り当て、トランザクションに署名するときに、可能な場合には常にマスターキーペアの代わりにレギュラーキーペアを使用します。レギュラーキーペアが漏えいしても、マスターキーペアが漏えいしていない場合は、`SetRegularKey`トランザクションを使用してアカウントの制御を取り戻すことができます。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Flags": 0,
|
||||
"TransactionType": "SetRegularKey",
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Fee": "12",
|
||||
"RegularKey": "rAR8rR8sUkBoCZFawhkWzY4Y5YoyuznwD"
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------|:----------|:------------------|:------------------------------|
|
||||
| `RegularKey` | 文字列 | AccountID | _(省略可)_ アカウントに割り当てるレギュラーキーペアを示すbase-58エンコード[アドレス][]。省略されている場合は、アカウントから既存のレギュラーキーペアが削除されます。アドレスのマスターキーペアと一致してはなりません。 |
|
||||
|
||||
## 関連項目
|
||||
|
||||
レギュラーキーペアとマスターキーペアの詳細は、[暗号鍵](cryptographic-keys.html)を参照してください。
|
||||
|
||||
アカウントへのレギュラーキーペアの割り当てについてのチュートリアルは、[レギュラーキーペアの操作](assign-a-regular-key-pair.html)を参照してください。
|
||||
|
||||
セキュリティを強化するために[マルチシグ](multi-signing.html)を使用できますが、マルチシグを使用する場合には[トランザクションコスト][]および[準備金](reserves.html)に追加のXRPが必要となります。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,66 +0,0 @@
|
||||
---
|
||||
html: signerlistset.html
|
||||
parent: transaction-types.html
|
||||
blurb: トランザクションのマルチシグに使用できる署名者のリストを作成、置換、削除します。
|
||||
labels:
|
||||
- セキュリティ
|
||||
---
|
||||
# SignerListSet
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/ef511282709a6a0721b504c6b7703f9de3eecf38/src/ripple/app/tx/impl/SetSignerList.cpp "Source")
|
||||
|
||||
SignerListSetトランザクションは、トランザクションの[マルチシグ](multi-signing.html)に使用できる署名者のリストを作成、置換、削除します。このトランザクションタイプは[MultiSign Amendment][]により導入されました。[新規: rippled 0.31.0][]
|
||||
|
||||
## {{currentpage.name}}のJSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"Flags":0,
|
||||
"TransactionType":"SignerListSet",
|
||||
"Account":"rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Fee":"12",
|
||||
"SignerQuorum":3,
|
||||
"SignerEntries":[
|
||||
{
|
||||
"SignerEntry":{
|
||||
"Account":"rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
|
||||
"SignerWeight":2
|
||||
}
|
||||
},
|
||||
{
|
||||
"SignerEntry":{
|
||||
"Account":"rUpy3eEg8rqjqfUoLeBnZkscbKbFsKXC3v",
|
||||
"SignerWeight":1
|
||||
}
|
||||
},
|
||||
{
|
||||
"SignerEntry":{
|
||||
"Account":"raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
|
||||
"SignerWeight":1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:--------------|:----------|:------------------|:-----------------------------|
|
||||
| SignerQuorum | 数値 | UInt32 | 署名者の重みのターゲット数。このリストの署名者によるマルチシグは、付与された署名の重みの合計がこの値以上である場合に限り有効となります。SignerListを削除するには、`0`の値を使用します。 |
|
||||
| SignerEntries | 配列 | 配列 | (削除する場合は省略)このリストの署名者のアドレスと重みを示す[SignerEntryオブジェクト](signerlist.html#signerentryオブジェクト)の配列。SignerListには1~32人のメンバーが含まれている必要があります。リストに1つのアドレスが複数回表示されることはありません。また、トランザクションを送信する`Account`も表示されません。 |
|
||||
|
||||
アカウントは複数のSignerListを所有できません。既存のSignerListが存在する場合は、SignerListSetトランザクションが成功するとその既存のSignerListが置き換えられます。SignerListを削除するには、`SignerQuorum`を`0`に設定し、_かつ_`SignerEntries`フィールドを省略します。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。SignerListを削除するトランザクションは、削除するSignerListがない場合でも成功したとみなされます。
|
||||
|
||||
SignerQuorumを満たせない方法でSignerListを作成することはできません。SignerQuorumは0よりも大きく、リストの`SignerWeight`値の合計以下でなければなりません。このようにしないと、トランザクションは[temMALFORMED](tem-codes.html)エラーで失敗します。
|
||||
|
||||
トランザクションの署名にマスターキー、レギュラーキー、または現行のSignerListを使用できる場合は、これらを使用してSignerListを作成、更新、削除できます。
|
||||
|
||||
トランザクションに署名する最後の方法をアカウントから削除することはできません。アカウントのマスターキーが無効で([`lsfDisableMaster`フラグ](accountroot.html#accountrootのフラグ)が有効な場合)、アカウントで[レギュラーキー](cryptographic-keys.html)が設定されていない場合、アカウントからSignerListを削除できません。その代わりにトランザクションは[`tecNO_ALTERNATIVE_KEY`](tec-codes.html)エラーで失敗します。
|
||||
|
||||
[MultiSignReserve Amendment][]が有効な場合、SignerListを作成または置換すると、SignerListオブジェクトでlsfOneOwnerCountフラグが有効になります。このフラグが有効な場合、MultiSignReserve Amendmentに定められているとおり、XRP LedgerはSignerListの[`OwnerCount`](accountroot.html#accountrootフィールド)と[所有者準備金](reserves.html#所有者準備金)を減らせます。詳細は、[SignerListのフラグ](signerlist.html#signerlistのフラグ)を参照してください。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,52 +0,0 @@
|
||||
---
|
||||
html: ticketcreate.html
|
||||
parent: transaction-types.html
|
||||
blurb: チケットとして1つ以上のシーケンス番号を確保する。
|
||||
labels:
|
||||
- Transaction Sending
|
||||
---
|
||||
# TicketCreate
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/develop/src/ripple/app/tx/impl/CreateTicket.cpp "Source")
|
||||
|
||||
_([TicketBatch amendment][]が必要です)_
|
||||
|
||||
TicketCreateトランザクションは、1つまたは複数の[シーケンス番号](basic-data-types.html#アカウントシーケンス)を[Tickets](ticket.html)として確保します。
|
||||
|
||||
## {{currentpage.name}}JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "TicketCreate",
|
||||
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
|
||||
"Fee": "10",
|
||||
"Sequence": 381,
|
||||
"TicketCount": 10
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-----------------|:-----------------|:------------------|:-------------------|
|
||||
| `TicketCount` | 数値 | UInt32 | 作成するチケットの枚数。これは正の数でなければならず、このトランザクションの実行の結果、アカウントが250枚以上のチケットを所有することはできません。 |
|
||||
|
||||
トランザクションが要求されたチケット_全て_を作成できない場合(250チケットの制限または[所有者準備金](reserves.html)のいずれかが原因)、失敗してチケットは作成されません。アカウントが現在所有しているチケットの数を調べるには、[account_info メソッド][]を使用して、`account_data.TicketCount`フィールドを確認してください。
|
||||
|
||||
**ヒント:** このトランザクションは、送信アカウントの[シーケンス番号][Sequence Number]を1 _+_ 作成するチケットの数(`TicketCount`)だけ増加させます。この取引は、アカウントのシーケンス番号を1より多く増加させる唯一の取引です。
|
||||
|
||||
## エラーケース
|
||||
|
||||
すべてのトランザクションで発生する可能性のあるエラーに加えて、{{currentpage.name}}トランザクションでは、次の[トランザクション結果コード](transaction-results.html)が発生する可能性があります。
|
||||
|
||||
| エラーコード | 説明 |
|
||||
|:--------------------------|:-------------------------------------------------|
|
||||
| `temINVALID_COUNT` | TicketCount`フィールドが無効です。1から250までの整数でなければなりません。|
|
||||
| `tecDIR_FULL` | この取引により、アカウントが一度に所有するチケットの上限である250枚を超えたり、一般的なレジャーオブジェクトの上限数を超えたりすることになります。 |
|
||||
| `tecINSUFFICIENT_RESERVE` | 送信側のアカウントには、要求されたすべてのチケットの[所有者準備金](reserves.html)を満たすだけのXRPがありません。 |
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
html: transaction-types.html
|
||||
parent: transaction-formats.html
|
||||
blurb: トランザクションのタイプは、どういったタイプの操作を実行することが想定されているのかを示します。
|
||||
template: pagetype-category.html.jinja
|
||||
labels:
|
||||
- ブロックチェーン
|
||||
---
|
||||
# トランザクションのタイプ
|
||||
|
||||
トランザクションのタイプ(`TransactionType`フィールド)は、トランザクションに関する最も基本的な情報です。トランザクションで、どういったタイプの操作を実行することが想定されているのかを示します。
|
||||
|
||||
すべてのトランザクションに、特定の共通フィールドが含まれています。
|
||||
|
||||
* [共通フィールド](transaction-common-fields.html)
|
||||
|
||||
トランザクションのタイプごとに、実行される操作のタイプに関連した追加のフィールドが含まれています。
|
||||
@@ -1,65 +0,0 @@
|
||||
---
|
||||
html: trustset.html
|
||||
parent: transaction-types.html
|
||||
blurb: トラストラインを作成または変更します。
|
||||
labels:
|
||||
- トークン
|
||||
---
|
||||
# TrustSet
|
||||
|
||||
[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/app/tx/impl/SetTrust.cpp "Source")
|
||||
|
||||
2つのアカウントをリンクする[トラストライン](trust-lines-and-issuing.html)を作成または変更します。
|
||||
|
||||
## {{currentpage.name}} JSONの例
|
||||
|
||||
```json
|
||||
{
|
||||
"TransactionType": "TrustSet",
|
||||
"Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
|
||||
"Fee": "12",
|
||||
"Flags": 262144,
|
||||
"LastLedgerSequence": 8007750,
|
||||
"LimitAmount": {
|
||||
"currency": "USD",
|
||||
"issuer": "rsP3mgGb2tcYUrxiLFiHJiQXhsziegtwBc",
|
||||
"value": "100"
|
||||
},
|
||||
"Sequence": 12
|
||||
}
|
||||
```
|
||||
|
||||
{% include '_snippets/tx-fields-intro.ja.md' %}
|
||||
<!--{# fix md highlighting_ #}-->
|
||||
|
||||
| フィールド | JSONの型 | [内部の型][] | 説明 |
|
||||
|:-------------------------|:----------|:------------------|:------------------|
|
||||
| `LimitAmount` | オブジェクト | Amount | 作成または変更するトラストラインを定義する[通貨額][]フォーマットのオブジェクト。 |
|
||||
| `LimitAmount`.`currency` | 文字列 | (Amount.currency) | このトラストラインが適用される通貨。3文字の[ISO 4217通貨コード](https://www.xe.com/iso4217.php)または[通貨フォーマット](currency-formats.html)に基づく160ビットの16進数値です。「XRP」は無効です。 |
|
||||
| `LimitAmount`.`value` | 文字列 | (Amount.value) | このトラストラインに設定される限度を表す引用符で囲んだ10進数値。 |
|
||||
| `LimitAmount`.`issuer` | 文字列 | (Amount.issuer) | 信頼したいアカウントのアドレス。 |
|
||||
| `QualityIn` | 数値 | UInt32 | _(省略可)_ このトラストラインの受入額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 |
|
||||
| `QualityOut` | 数値 | UInt32 | _(省略可)_ このトラストラインの払出額を、1,000,000,000単位当たりのこの数値の割合で評価。値`0`は、残高を額面価格で扱うことを示す省略表現です。 |
|
||||
|
||||
`LimitAmount.issuer`で指定されたアカウントがトラストラインの着信をブロックしている場合、結果コード`tecNO_PERMISSION`でトランザクションが失敗します。 _([DisallowIncoming amendment][] :not_enabled: が必要です)_
|
||||
|
||||
## TrustSetのフラグ
|
||||
|
||||
TrustSetタイプのトランザクションについては、[`Flags`フィールド](transaction-common-fields.html#flagsフィールド)で以下の値が追加でサポートされます。
|
||||
|
||||
| フラグ名 | 16進数値 | 10進数値 | 説明 |
|
||||
|:------------------|:-------------|:--------------|:----------------------|
|
||||
| `tfSetfAuth` | `0x00010000` | 65536 | [このアカウントから発行された通貨](issued-currencies.html)を相手方に保有させることを許可します。([*asfRequireAuth* AccountSet フラグ](accountset.html#accountsetのフラグ)を使用しない場合は効果がありません。)設定を解除できません。 |
|
||||
| `tfSetNoRipple` | `0x00020000` | 131072 | 2つのトラストラインの両方でこのフラグが有効になっている場合、同じ通貨のトラストライン間の[リップリング](rippling.html)をブロックする No Ripple フラグを有効にします。 |
|
||||
| `tfClearNoRipple` | `0x00040000` | 262144 | No Rippleフラグを無効にし、このトラストラインで[リップリング](rippling.html)を許可します。 |
|
||||
| `tfSetFreeze` | `0x00100000` | 1048576 | トラストラインを[凍結](freezes.html)します。 |
|
||||
| `tfClearFreeze` | `0x00200000` | 2097152 | トラストラインを[凍結解除](freezes.html)します。 |
|
||||
|
||||
トランザクションがNo Rippleを有効にしようとしたができない場合、結果コード `tecNO_PERMISSION` で失敗します。[fix1578 amendment][]が有効になる前は、このようなトランザクションは代わりに`tesSUCCESS`(可能な限りの他の変更を行う)という結果になりました。
|
||||
|
||||
トラストラインのAuthフラグは、トラストラインがその所有者のXRP必要準備金に反映されるかどうかを左右しません。ただしAuthフラグを有効にすると、トラストラインがデフォルト状態になることがありません。承認されたトラストラインは削除できません。イシュアーは、トラストラインの限度と残高が0であっても、`tfSetfAuth`フラグだけを使用してトラストラインを事前承認できます。
|
||||
|
||||
<!--{# common link defs #}-->
|
||||
{% include '_snippets/rippled-api-links.md' %}
|
||||
{% include '_snippets/tx-type-links.md' %}
|
||||
{% include '_snippets/rippled_versions.md' %}
|
||||
Reference in New Issue
Block a user