此篇内容尚无原站英文对应版本;切换语言后可浏览英文资料库。
该
服务器还识别下列字段,但不能保证使用它们的结果:
可能的错误:
create子命令path_find会创建一个持续请求,以查找可从一个指定帐户进行支付交易的可能路径,以便另一个帐户接收所需数量的某种货币。初始响应包含两个地址之间建议的路径,这会导致收到所需的数量。之后,服务器将发送附加消息"type": "path_find",并更新潜在路径。更新的频率取决于服务器的判断,但通常意味着当有新的分类账版本时,每隔几秒就会有一次更新。
客户端一次只能打开一个寻路请求。如果另一个寻路请求已经在同一连接上打开,则旧请求会自动关闭并替换为新请求。
请求格式的示例:
{
"id": 8,
"command": "path_find",
"subcommand": "create",
"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_amount": {
"value": "0.001",
"currency": "USD",
"issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV"
}
}
该请求包含以下参数:
Field |
Type | Description |
|---|---|---|
subcommand |
String | 使用"create"发送创建命令 |
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 |
paths |
Array | (可选)表示要检查的付款路径的对象数组数组。您可以使用它来随时更新您已知的特定路径的更改,或检查沿特定路径进行支付的总体成本。 |
source_currencies,bridges。这些字段应被视为保留供将来使用。
一个成功回应的例子:
{
"alternatives": [],
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_amount": {
"currency": "USD",
"issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"value": "0.001"
},
"id": 8,
"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"type": "path_find"
}
最初的响应遵循标准格式,成功的结果包含以下字段:
Field |
Type | Description |
|---|---|---|
alternatives |
Array | 具有建议路径的对象数组,如下所述。如果为空,则找不到连接源帐户和目标帐户的路径。 |
destination_account |
String | 将接收交易的帐户的唯一地址 |
destination_amount |
String or Object | 目标在交易中收到的货币金额 |
id |
(Various) | (仅限WebSocket)WebSocket请求中提供的ID再次包含在此级别。 |
source_account |
String | 将发送交易的唯一地址 |
full_reply |
Boolean | 如果false,这是不完整搜索的结果。以后的答复可能有更好的路径。如果true,那么这是找到的最佳路径。(理论上可能存在更好的路径,但streamd不会找到它。)在关闭寻路请求之前,streamd每当新分类账关闭时继续发送更新。 |
alternatives数组中的每个元素都是一个对象,表示从一种可能的源货币(由初始帐户持有)到目标帐户和货币的路径。该对象具有以下字段:
Field |
Type | Description |
|---|---|---|
paths_computed |
Array | 定义支付路径的对象数组数组 |
source_amount |
String or Object | 货币金额,源必须沿着此路径发送,以便目的地接收所需金额 |
- 任何通用错误类型。
invalidParams- 一个或多个字段指定不正确,或缺少一个或多个必填字段。noEvents- 您正在使用不支持异步回调的协议,例如JSON-RPC。
异步跟进
除了初始响应之外,服务器还会以类似的格式发送更多消息,以随时更新支付路径的状态。这些消息包括id最初的WebSocket请求,因此您可以知道哪些请求会提示他们,并且"type": "path_find"顶层的字段表明他们是额外的响应。其他字段的定义方式与初始响应相同。
如果后续工作包括"full_reply": true,那么这是streamd当前账本的最佳路径。
以下是一个来自path_find创建请求的异步后续示例:
{
"id": 1,
"type": "path_find",
"alternatives": [
/* paths omitted from this example; same format as the initial response */
],
"destination_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"destination_amount": {
"currency": "USD",
"issuer": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV",
"value": "0.001"
},
"source_account": "vDgSCaGS3iih9iKvfvRULrK7gurJjdDnUV"
}