#web3
#javascript #reactjs #next.js #web3js
Вопрос:
Я создаю приложение с next.js и web3. Для подключения пользовательского кошелька к интерфейсу я использую web3modal следующим образом:
const Home: NextPage = () => {
const [signer, setSigner] = useState<JsonRpcSigner | null>(null)
async function connect() {
const web3Modal = new Web3Modal()
const connection = await web3Modal.connect()
const provider = new ethers.providers.Web3Provider(connection)
const signer = provider.getSigner()
setSigner(signer)
}
return (
<div className="flex justify-center">
<button onClick={() => connect()}>Connect wallet</button>
{ signer amp;amp; (
<h3>wallet connected: {signer._address}</h3>
)}
</div>
)
}
Пользователь может успешно подключить кошелек, к сожалению signer._address
, всегда имеет значение null. Я хотел бы отобразить пользователю только что подключенный адрес, как я могу это исправить?
Ответ №1:
Это не вопрос о web3Modal, а вопрос об эфирах.
Вы можете получить адрес следующим образом:
const [address, setAddress] = useState()
// ...
setAddress(await signer.getAddress())
Документация находится здесь: https://docs.ethers.io/v5/api/signer/#Signer-getaddress