执行路由

获取路由后,您可以按照此处所述使用 executeRoute 执行一个。

执行路由

async function executeRoute (
  signer: Signer,
  route: Route,
  settings?: ExecutionSettings
): Promise<Route>
  
interface ExecutionSettings {
  getPublicKeyHook?: GetPublicKeyHook
  decryptHook?: DecryptHook
  updateCallback?: CallbackFunction
  switchChainHook?: SwitchChainHook
}

执行路由需要签名者将交易发送到相关合约。 您可以在官方 ethers 文档中阅读有关签名者的更多信息。 一旦有了路由和签名者,就可以调用 executeRoute。

const route = await LiFi.executeRoute(signer, route)

请注意,一旦执行完成,该函数将返回执行的路由。

除了前两个参数之外,executeRoute 将一个可选的设置对象作为第三个参数,其中可以包含一个 updateCallback 函数。 每当 SDK 对路由执行操作时,都会调用此函数。 您可以使用此回调来跟踪执行状态。 此设置对象中的其他挂钩是 Broken 链接的一部分,现在可以忽略。

控制路由的执行

将执行移至后台

一旦开始执行路由,就可以通过调用此方法将其推送到“后台”。 一旦被调用,执行将继续,直到它到达需要用户交互的点(即签署交易)。 如果达到这样的点,执行将停止,直到使用相同的路由对象调用 resumeRoute。 然后执行将在它停止的地方重新开始。

停止执行

此方法立即停止给定路由的执行。 如果交易已经被用户签名并发送,它将在链上执行。

更新执行设置

此功能更新路线的执行设置。 请参阅 ExecutionSettings 接口的 executeRoute

恢复路由

resumeRoute 采用与 executeRoute 相同的参数,并将恢复已停止的路由或已移动到后台的路由。

示例代码片段

在代码的基础上,我们现在可以选择一条路线并执行它。

Last updated