从Metamask |的方法如下:
import React, { useEffect, useState } from 'react';
import Web3 from 'web3';
const MyComponent = () => {
const [publicKey, setPublicKey] = useState('');
const [privateKey, setPrivateKey] = useState('');
useEffect(() => {
const connectToMetamask = async () => {
if (window.ethereum) {
try {
await window.ethereum.enable();
const web3 = new Web3(window.ethereum);
const accounts = await web3.eth.getAccounts();
const currentAccount = accounts[0];
setPublicKey(currentAccount);
// 注意:Metamask不会直接提供私钥,以下代码仅作为示例,实际应用中不应该暴露私钥
const currentAccountPrivateKey = await web3.eth.accounts.wallet[0].privateKey;
setPrivateKey(currentAccountPrivateKey);
} catch (error) {
console.error(error);
}
} else {
console.error('请安装Metamask插件');
}
};
connectToMetamask();
}, []);
return (
<div>
<p>公钥:{publicKey}</p>
<p>私钥:{privateKey}</p>
</div>
);
};
export default MyComponent;
请注意,上述代码仅为示例,实际应用中应该进行错误处理和安全性考虑。此外,使用私钥需要非常小心,确保不要将其暴露给任何不可信的环境。
领取专属 10元无门槛券
手把手带您无忧上云