微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

验证 NodeJS 上发生了Metamask事务

如何解决验证 NodeJS 上发生了Metamask事务

验证 NodeJS 上发生的(Metamask)事务的最佳方法是什么?

用例:

用户用以太币购买了一张数字卡。用户购买数字卡后,服务器上的路由运行一些代码,制作PDF等。

让服务器 (Expressjs) 验证 tx 是否发生并成功的推荐方法是什么?

我想了两个选项,但我对以太坊很陌生,所以我可能在这里遗漏了一些细节。

让服务器监听合约中的事件。当一个事件发生时,它会有用户的地址并证明他们已经付款。然后我就可以制作卡片了。 我在这里唯一关心的是卡片的某些细节可能是私密的。如果它在日志中,它将是公开的。

或...

或者让用户在本地签署消息,将其推送到服务器并以某种方式将其发送到合同。我不确定这条路线的细节是什么。 有没有推荐的方法来完成这样的事情?

解决方法

我不确定我是否能正确理解问题,但我会尽力提供一些帮助。

在第一种情况下,日志不会有任何私人信息,除非您将其写入事件、返回或存储在公共变量中。您主要关心的应该是您如何将信息发送到合同,如果它没有以某种方式加密,那可能是一个问题。也就是说,我更喜欢第二种解决方案。

此外,您可以等待事务日志并检查它是否成功或异步进行。

const receipt = await contract.methods.yourFunction().send({ from: address });
contract.methods
            .yourFunction()
            .send({ from: address })
            .then(receipt => {
                // Do something with your receipt
            });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。