3

当您将 Maiar Exchange 与 Chrome 扩展程序一起使用并发送交易时,您可以看到扩展程序窗口在发送交易后自动关闭。

当我实现相同的行为时,扩展窗口保持打开状态,并且 sendTransaction() Promise 仅在调用完成后才解决。如果我通过单击网站上的其他位置自行关闭窗口,我会在控制台中收到以下错误:

Uncaught (in promise) Extension window was closed without response.

有了这个错误,我的承诺成功解析代码不再执行,这基本上迫使用户等待大约 30 秒,直到交易完成。

当使用sendTransaction()来自 erdjs 的 ExtensionProvider 方法时会发生这种情况。

有没有人解释一下 Maiar Exchange 是如何解决这个问题的?

4

1 回答 1

3

Maiar Exchange 处理此问题的方式与您的方法略有不同。

使用 直接发送事务ExtensionProvider要求扩展窗口保持打开状态,直到完成返回结果。

但是,如果您只使用ExtensionProvider使用该方法签署交易signTransaction并通过 自己发送,ProxyProvider您将不会遇到此限制。签名基本上是即时的,并迅速关闭扩展窗口。如果您遇到任何超时或类似情况,它还允许您重试发送,而无需用户交互。

于 2021-11-30T12:27:49.450 回答