Rya*_*ell 5 javascript blockchain ethereum web3js metamask
我有一个简单的 Dapp,我想签署一笔交易,但我没有字符串形式的私钥。
用户正在使用 MetaMask 钱包。在他们授予 web3 访问其帐户的权限后,我如何访问私钥来签署交易?
const signPromise = web3.eth.accounts.signTransaction(tx, PRIVATE_KEY);
// PRIVATE_KEY is what I'm trying to get.
Run Code Online (Sandbox Code Playgroud)
出于安全原因,Metamask 不会直接共享私钥。有时它甚至没有密钥 - 例如当用户使用 Metamask UI 操作硬件钱包帐户时。
您需要构造交易对象并将其传递给ethereum.request()方法。这将打开 Metamask 窗口,用户可以在其中签署或拒绝交易请求。
代码示例非常简单,位于链接文档中。