此篇内容尚无原站英文对应版本;切换语言后可浏览英文资料库。
该vstream_path_find方法是path_find的一个简化版本,可以立即使用以及提供支付路径单一响应。它可以在WebSocket和JSON-RPC API中使用。然而,随着时间的推移,结果往往会过时。不要让多个调用保持更新,您应该尽可能地使用path_find。
尽管streamd服务器试图找到最便宜的路径或用于付款的路径组合,但不能保证此方法返回的路径实际上是最佳路径。
警告:小心不受信任的服务器的路径查找结果。服务器可以被修改为返回比最佳路径更少的运营商收入。服务器在重负载时也可能返回不良结果。如果您没有自己可以信任的服务器,那么您应该比较来自不同方运行的多个服务器的寻路结果,以最大限度地降低单个服务器返回不良结果的风险。
请求格式的示例:
{
"id": 8,
"command": "vstream_path_find",
"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"source_currencies": [
{
"currency": "STM"
},
{
"currency": "USD"
}
],
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_amount": {
"value": "0.001",
"currency": "USD",
"issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV"
}
}{
"method": "vstream_path_find",
"params": [
{
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_amount": {
"currency": "USD",
"issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"value": "0.001"
},
"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"source_currencies": [
{
"currency": "STM"
},
{
"currency": "USD"
}
]
}
]
}#Syntax vstream_path_find json ledger_index|ledger_hash
streamd vstream_path_find '{"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV", "source_currencies": [ { "currency": "STM" }, { "currency": "USD" } ], "destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV", "destination_amount": { "value": "0.001", "currency": "USD", "issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV" } }'该请求包含以下参数:
Field | Type | Description |
|---|---|---|
source_account | String | 将在交易中发送资金的帐户的唯一地址 |
destination_account | String | 将在交易中获得资金的帐户的唯一地址 |
destination_amount | String or Object | 目标帐户在交易中收到的货币金额。特殊情况: 您可以指定"-1"(对于STM)或提供-1作为该value字段的内容(对于非STM货币)。这要求尽可能多的交付路径,同时花费不超过send_max(如果提供)指定的金额。 |
send_max | String or Object | (可选) 将在交易中花费的货币金额。不能用于source_currencies。 |
source_currencies | Array | (可选)源帐户可能要花费的货币数组。数组中的每个条目应该是带有必填currency字段和可选issuer字段的JSON对象,例如指定货币金额的方式。不能包含超过18种来源货币。默认情况下,使用最多88种不同货币/发行商对可用的所有来源货币。 |
ledger_hash | String | (可选)要使用的分类帐版本的20字节十六进制字符串。(请参阅指定分类帐) |
ledger_index | String or Unsigned Integer | (可选)要使用的分类帐的序号或快捷字符串自动选择分类帐。(请参阅指定分类帐) |
一个成功回应的例子:
{
"id": 8,
"result": {
"alternatives": [],
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_currencies": ["ETH", "BTC", "CNY", "STM"]
},
"status": "success",
"type": "response"
}200 OK
{
"result": {
"alternatives": [],
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_currencies": ["ETH", "BTC", "CNY", "STM"]
},
"status": "success",
"type": "response"
}响应遵循标准格式,成功结果包含以下字段:
Field | Type | Description |
|---|---|---|
alternatives | Array | 具有可能路径的对象数组,如下所述。如果为空,则没有连接源帐户和目标帐户的路径。 |
destination_account | String | 将接收付款交易的帐户的唯一地址 |
destination_currencies | Array | 作为代表目标接受的货币的字符串数组,例如3个字母的代码"USD"或40个字符的十六进制等"015841551A748AD2C1F76FF6ECB0CCCD00000000" |
alternatives数组中的每个元素都是一个对象,表示从一种可能的源货币(由初始帐户持有)到目标帐户和货币的路径。该对象具有以下字段:
Field | Type | Description |
|---|---|---|
paths_computed | Array | 定义支付路径的对象数组数组 |
source_amount | String or Object | 货币金额,源必须沿着此路径发送,以便目的地接收所需金额 |
以下字段已弃用,可能会被忽略:paths_canonical,和paths_expanded。如果它们出现,你应该忽视它们。
可能的错误:
- 任何通用错误类型。
tooBusy- 服务器负载过重,无法计算路径。如果您作为管理员连接,则不会返回。invalidParams- 一个或多个字段指定不正确,或缺少一个或多个必填字段。srcActMissing-source_account请求中忽略该字段。srcActMalformed-source_account请求中的字段格式不正确。dstActMissing-destination_account请求中忽略该字段。dstActMalformed-destination_account请求中的字段格式不正确。srcCurMalformed- 该source_currencies字段格式不正确。srcIsrMalformed-issuer请求中一个或多个货币对象的字段无效。
