javascript - 我可以使用 polkadot-js 异步发送事务吗
问题描述
我浏览了官方文档,找到了一个关于如何使用 polkadot-js 进行转账的页面https://polkadot.js.org/docs/api/examples/promise/make-transfer
const transfer = api.tx.balances.transfer(BOB, 12345);
const hash = await transfer.signAndSend(alice);
我想知道我是否可以将signAndSend
方法一分为二并在不同的机器上执行。就像在客户端机器中一样,在浏览器中计算签名。
const transfer = api.tx.balances.transfer(BOB, 12345);
const signature = await transfer.signAsync(alice);
然后在服务器端发送转账交易。
const mockSigner = createMockSigner(signature); // signature is computed from the client side and send to server over HTTP
const transfer = api.tx.balances.transfer(BOB, 12345);
const res = transfer.send({signer: mockSigner});
上面的例子行不通,我只是想表达我是否可以在不同的机器上签名和发送。
解决方案
在一台计算机上签署交易并从另一台计算机发送它绝对是可能的。
PolkadotJS 工具包含一种用于离线构建和签署交易的方法。你可以在这里找到源代码。请注意,在浏览器中构建交易仍然需要访问 polkadot 节点(endpoint
代码中的)。
签名者 sendOffline 命令具有完全相同的 API,但不会广播交易。submit 和 sendOffline 必须连接到节点以获取当前元数据并构造有效事务。他们的 API 格式如下:
因此,您需要在浏览器中运行一个轻量级客户端,以便访问当前块信息或附加到浏览器之外的某个其他节点端点。
推荐阅读
- utf-8 - Jersey - @QueryParam 和字符编码
- java - 在java中将树结构转换为二维“网格”数组
- jquery - 实现类似stackoverflow的标签搜索栏的问题?
- typescript - NavCtrl 和 Click 的离子问题
- java - 我可以将 Java 中的日期作为 TYPED INTO excel 单元格获取吗?
- asp.net-core - Chrome 将带有 304 状态代码响应的请求报告为已取消
- ios - 将 UIImage 保存到 PhotoLibrary Swift 4.2 iOS 12
- javascript - 如何将脚本 url 的结果存储在 Javascript 变量中
- php - 试图分割一个字符串
- pytorch - 在 PyTorch 中,是什么让张量具有非连续内存?