Давайте создадим простое приложение React для интеграции с браузерным расширением MetaMask.
Привет! В этой статье мы создадим простое приложение React, которое подключается к расширению браузера MetaMask. Затем мы отобразим аватар аккаунта и баланс. Все функции MetaMask доступны через внедренное глобальное свойство: window.ethereum
Если вы предпочитаете читать официальную документацию по MetaMask, вы можете найти ее здесь.
Хорошо, давайте копать!
Подключиться к МетаМаску
Первое, что вам обычно нужно сделать, это подключить свой кошелек MetaMask к вашему приложению. Помните, что вы можете подключить несколько кошельков к своему приложению, запрашивая разрешение:
Хотя вы можете получить несколько подключенных кошельков, я собираюсь получить только первый кошелек из массива, возвращаемого из MetaMask ( accounts[0]
), потому что первый элемент будет активным.
Ладно, вернемся к делу… Делается это путем запроса списка аккаунтов у MetaMask:
async function handleConnect() { // Check to see if MetaMask extension is installed/enabled or not if (!window.ethereum) { alert('You need to install MetaMask extension first!') } try { // We made sure MetaMask is enabled // So let's request accounts list from MetaMask const accounts = await window.ethereum.request({ method: 'eth_requestAccounts' }) // Suppose we're only interested in the first selected account // Save this wallet address or set it to your state const account = accounts[0] } catch (error) { // In case there is an error, alert the user alert(error.message); } }
Просто как тот! Это зависит от того, как вы создаете свой компонент для установки состояния или чего-то еще. Вот пример:
function MetaMask() { const [account, setAccount] = useState() async function handleConnect() { if (!window.ethereum) { return alert('You need to install MetaMask extension first!') } try { const accounts…