如何将交易从元掩码钱包发送到后端节点 js
Posted
技术标签:
【中文标题】如何将交易从元掩码钱包发送到后端节点 js【英文标题】:How to send transaction from metamask wallet to backend node js 【发布时间】:2022-01-05 18:20:20 【问题描述】:我正在构建简单的 dapp 应用程序,我想在其中验证某些内容,然后只进行合约交互,但现在我正在努力放置一个中间件,该中间件的作用就像用户将通过元掩码进行 txn 一样,然后这个 txn 或其他东西将转到任何语言的后端服务器都可能是节点 js,我会做一些检查,如果一切正常,然后将其发送到区块链。
有什么建议吗?
现在它全部在反应前端和元掩码浏览器扩展中......我不能限制客户端代码 而且我什至不能要求私钥。
【问题讨论】:
【参考方案1】:设计上不可能。交易需要由发送者的私钥签名。所以除非用户愿意给你他们的私钥(这样你就可以在后端为他们签署交易),你需要改变你的方法。
如果您需要只允许您的应用授权的用户与合约交互,则合约需要保存授权地址列表。您的应用程序可以更新该列表(该应用程序拥有owner
地址的私钥)。示例:
pragma solidity ^0.8;
contract MyContract
address public owner = address(0x123);
mapping(address => bool) public isAuthorized;
function setAuthorized(address _address, bool _isAuthorized) external
require(msg.sender == owner, 'Only the contract owner can set authorized addresses');
isAuthorized[_address] = _isAuthorized;
function foo() external
require(isAuthorized[msg.sender], 'Only authorized addresses can execute this function');
// ...
【讨论】:
以上是关于如何将交易从元掩码钱包发送到后端节点 js的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Hardhat 将以太币添加到我的 localhost Metamask 钱包?
想要从 React UI 上传 zip 文件夹并将其发送到后端节点 js 服务器,我可以从那里将该文件夹放置在我系统上的某个路径中