如何使Nodejs连接到Metamask帐户?



我有一个后台写Nodejs,可以连接到合同,并在这些合同中执行功能,但问题是我希望我的元任务只能传递帐户地址到后端。有什么解决办法吗?

有一些第三方包,如node-metamask
可以用

将此代码片段添加到视图(hbs模板引擎)/HTML文件。

当您加载此页面时,脚本将执行,如果安装了元掩码钱包,它将获得元掩码钱包地址。

<script>
async function connect() 
{
if (window.ethereum) {
await window.ethereum.request({ method: "eth_requestAccounts" });
window.web3 = new Web3(window.ethereum);
const account = web3.eth.accounts;
const walletAddress = account.givenProvider.selectedAddress;
console.log(`Wallet: ${walletAddress}`);
window.location.href = `/setup?wallet=${walletAddress}`;
} 
else {
alert("MetaMask is not installed");
}
}
</script>

之后,它将发送特定后端路由上的钱包地址给快递。因此,你可以通过集成web3在node JS中执行操作。

app.get('/setup', (req, res) => {
const address = req.query.wallet
app.locals.address = address
console.log(app.locals.address)
})
下面是完整的代码示例:https://github.com/billypentester/web3-dapp

最新更新