我浏览了一下正式文档,找到了一个关于如何使用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});上面的例子不起作用,我只想表达一下,如果我能在不同的机器上签名和发送。
发布于 2021-11-16 19:33:31
在一台计算机上签署事务并从另一台计算机发送它是绝对可能的。
PolkadotJS工具包含用于脱机构建和签名事务的方法。您可以找到源这里。请注意,在浏览器中构建事务仍然需要访问polkadot节点(代码中的endpoint )。
签名者sendOffline命令具有完全相同的API,但不会广播事务。提交和sendOffline必须连接到节点,以获取当前元数据并构造有效事务。它们的API具有以下格式:
因此,您需要在浏览器中运行一个轻客户,这样才能访问当前的块信息或附加到与浏览器一起输出的其他节点端点。
发布于 2021-11-21 17:14:17
离线签名版本:https://gist.github.com/xcaptain/4d190232411dcf27441d9fadd7ff6988
在线签名版本:
const transfer = api.tx.balances.transfer(BOB, 12345);
const signedExtrinsic = await transfer.signAsync(alice).toJSON();
await api.rpc.author.submitExtrinsic(signedExtrinsic);不知道有什么区别,但它们都起作用。
https://stackoverflow.com/questions/69991415
复制相似问题