开发文档

path_find创建

此篇内容尚无原站英文对应版本;切换语言后可浏览英文资料库。
该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"
}
THE NEXT CONNECTION

下一次连接,从这里开始。

加入 Stream 社区,一起探索价值互联。

联系我们