|
| 1 | +--- |
| 2 | +html: get_aggregate_price.html |
| 3 | +parent: ledger-methods.html |
| 4 | +blurb: 指定されたOracleインスタンスの集計価格を計算します。 |
| 5 | +labels: |
| 6 | + - オラクル |
| 7 | +--- |
| 8 | +# get_aggregate_price |
| 9 | + |
| 10 | +_([PriceOracle amendment][])_ |
| 11 | + |
| 12 | +[[ソース]](https://github.com/XRPLF/rippled/blob/master/src/ripple/rpc/handlers/GetAggregatePrice.cpp "ソース") |
| 13 | + |
| 14 | + |
| 15 | +`get_aggregate_price`メソッドは、指定された`Oracle`オブジェクトの集計価格を取得し、平均値、中央値、整形された平均値の3つの価格情報を返します。 |
| 16 | + |
| 17 | + |
| 18 | +## リクエストフォーマット |
| 19 | + |
| 20 | +リクエストの例: |
| 21 | + |
| 22 | +{% tabs %} |
| 23 | + |
| 24 | +{% tab label="WebSocket" %} |
| 25 | +```json |
| 26 | +{ |
| 27 | + "command": "get_aggregate_price", |
| 28 | + "ledger_index": "current", |
| 29 | + "base_asset": "XRP", |
| 30 | + "quote_asset": "USD", |
| 31 | + "trim": 20, |
| 32 | + "oracles": [ |
| 33 | + { |
| 34 | + "account": "rp047ow9WcPmnNpVHMQV5A4BF6vaL9Abm6", |
| 35 | + "oracle_document_id": 34 |
| 36 | + }, |
| 37 | + { |
| 38 | + "account": "rp147ow9WcPmnNpVHMQV5A4BF6vaL9Abm7", |
| 39 | + "oracle_document_id": 56 |
| 40 | + }, |
| 41 | + { |
| 42 | + "account": "rp247ow9WcPmnNpVHMQV5A4BF6vaL9Abm8", |
| 43 | + "oracle_document_id": 2 |
| 44 | + }, |
| 45 | + { |
| 46 | + "account": "rp347ow9WcPmnNpVHMQV5A4BF6vaL9Abm9", |
| 47 | + "oracle_document_id": 7 |
| 48 | + }, |
| 49 | + { |
| 50 | + "account": "rp447ow9WcPmnNpVHMQV5A4BF6vaL9Abm0", |
| 51 | + "oracle_document_id": 109 |
| 52 | + } |
| 53 | + ] |
| 54 | +} |
| 55 | +``` |
| 56 | +{% /tab %} |
| 57 | + |
| 58 | +{% tab label="JSON-RPC" %} |
| 59 | +```json |
| 60 | +{ |
| 61 | + "method": "get_aggregate_price", |
| 62 | + "params": [ |
| 63 | + { |
| 64 | + "ledger_index": "current", |
| 65 | + "base_asset": "XRP", |
| 66 | + "quote_asset": "USD", |
| 67 | + "trim": 20, |
| 68 | + "oracles": [ |
| 69 | + { |
| 70 | + "account": "rNZ9m6AP9K7z3EVg6GhPMx36V4QmZKeWds", |
| 71 | + "oracle_document_id": 34 |
| 72 | + }, |
| 73 | + { |
| 74 | + "account": "rMVKq8zrVsJZQFEiTARyC6WfZznhhLMcNi", |
| 75 | + "oracle_document_id": 100 |
| 76 | + }, |
| 77 | + { |
| 78 | + "account": "r92kJTnUbUUq15t2BBZYGYxY79RnNc7rLQ", |
| 79 | + "oracle_document_id": 2 |
| 80 | + } |
| 81 | + ] |
| 82 | + } |
| 83 | + ] |
| 84 | +} |
| 85 | +``` |
| 86 | +{% /tab %} |
| 87 | + |
| 88 | +{% /tabs %} |
| 89 | + |
| 90 | + |
| 91 | +[試してみる >](/resources/dev-tools/websocket-api-tool?server=wss%3A%2F%2Fs.devnet.rippletest.net%3A51233%2F#get_aggregate_price) |
| 92 | + |
| 93 | + |
| 94 | +リクエストには以下のパラメータが含まれています: |
| 95 | + |
| 96 | +| フィールド | 型 | 必須? | 説明 | |
| 97 | +| ---------------- | ------ | ------ | ---- | |
| 98 | +| `base_asset` | 文字列 | はい | 価格を計算する資産の通貨コード。 | |
| 99 | +| `quote_asset` | 文字列 | はい | 基軸資産の価格を計算する資産の通貨コード。 | |
| 100 | +| `trim` | 数値 | いいえ | 外れ値を削除する割合。有効な削除範囲は1-25。削除範囲が含まれている場合、APIは整形された平均値の統計情報を返します。 | |
| 101 | +| `trim_threshold` | 数値 | いいえ | 古い価格データをフィルタリングする秒単位の時間範囲を定義します。デフォルト値は0で、データをフィルタリングしません。 | |
| 102 | +| `oracles` | 配列 | はい | Oracleを識別するオブジェクトの配列。Oracleオブジェクトは1から200のOracleの識別子をリストする必要があります。 | |
| 103 | + |
| 104 | +`oracles`配列の各メンバーは、次のフィールドを持つOracleオブジェクトです。 |
| 105 | + |
| 106 | +| フィールド | 型 | 必須? | 説明 | |
| 107 | +| -------------------- | ------ | ------ | -------------------------------------------- | |
| 108 | +| `account` | 文字列 | はい | `Oracle`オブジェクトを制御するXRPLアカウント | |
| 109 | +| `oracle_document_id` | 数値 | はい | `Account`の価格Oracleの一意の識別子 | |
| 110 | + |
| 111 | + |
| 112 | +## レスポンスフォーマット |
| 113 | + |
| 114 | +レスポンスの例: |
| 115 | + |
| 116 | +```json |
| 117 | +{ |
| 118 | + "result": { |
| 119 | + "entire_set": { |
| 120 | + "mean": "0.78", |
| 121 | + "size": 3, |
| 122 | + "standard_deviation": "0.03464101615137754" |
| 123 | + }, |
| 124 | + "ledger_current_index": 3677185, |
| 125 | + "median": "0.8", |
| 126 | + "time": 1724877762, |
| 127 | + "trimmed_set": { |
| 128 | + "mean": "0.78", |
| 129 | + "size": 3, |
| 130 | + "standard_deviation": "0.03464101615137754" |
| 131 | + }, |
| 132 | + "validated": false |
| 133 | + }, |
| 134 | + "status": "success", |
| 135 | + "type": "response" |
| 136 | +} |
| 137 | +``` |
| 138 | + |
| 139 | +| フィールド | 型 | 説明 | |
| 140 | +| -------------------------------- | ------------- | ---- | |
| 141 | +| `entire_set` | オブジェクト | 収集されたOracleの価格の統計情報。 | |
| 142 | +| `entire_set.mean` | 文字列 - 数値 | 単純な平均値。 | |
| 143 | +| `entire_set.size` | 数値 | 平均値を計算するデータセットのサイズ。 | |
| 144 | +| `entire_set.standard_deviation` | 文字列 - 数値 | 標準偏差。 | |
| 145 | +| `trimmed_set` | オブジェクト | 整形されたOracleの価格の統計情報。`trim`フィールドがリクエストに指定されている場合にのみ表示されます。 | |
| 146 | +| `trimmed_set.mean` | 文字列 - 数値 | 整形されたデータの単純な平均値。 | |
| 147 | +| `trimmed_set.size` | 数値 | 整形された平均値を計算するデータセットのサイズ。 | |
| 148 | +| `trimmed_set.standard_deviation` | 文字列 - 数値 | 整形されたデータの標準偏差。 | |
| 149 | +| `time` | 数値 | すべての`LastUpdateTime`値の中で最も新しいタイムスタンプ。Unix時間で表されます。 | |
| 150 | + |
| 151 | +{% admonition type="info" name="注記" %} |
| 152 | + |
| 153 | +- 指定されたOracleの最新の`Oracle`オブジェクトが取得されます。 |
| 154 | +- すべてのオブジェクトの中で最も新しい`LastUpdateTime`が上限時間として選択されます。 |
| 155 | +- `Oracle`オブジェクトは、指定された`base_asset`/`quote_asset`ペアを含み、`AssetPrice`フィールドを持ち、その`LastUpdateTime`が指定された時間範囲内である場合、集計データセットに含まれます。 |
| 156 | +- `Oracle`オブジェクトが指定されたトークンペアの`AssetPrice`を含まない場合、最大3つの過去の`Oracle`オブジェクトが調査され、要件を満たす最新のものが含まれます。 |
| 157 | + |
| 158 | +{% /admonition %} |
| 159 | + |
| 160 | + |
| 161 | +## 起こりうるエラー |
| 162 | + |
| 163 | +- すべての[汎用エラータイプ][]。 |
| 164 | +- `invalidParams` - 1つ以上のフィールドが正しく指定されていないか、1つ以上の必須フィールドが欠けています。 |
| 165 | +- `internal` - `trim_threshold`の設定によりすべての価格が削除された。 |
| 166 | +- `objectNotFound` - データセットに価格がない。 |
| 167 | +- `oracleMalformed` - `oracles`配列が不正。少なくとも1つのオブジェクトフィールドが正しく指定されていないか、オブジェクトの数が1から200の範囲外です。 |
| 168 | +- |
| 169 | + |
| 170 | +{% raw-partial file="/docs/_snippets/common-links.md" /%} |
0 commit comments