https://goerli.etherscan.io/address/0x0677eae7f324ba5a335d085585589c47627e16f7
Я не понял очень много вопросов, я считаю их слишком абстрактными.
Вопрос 1
Какие есть расширения для обозревателя, которые умеют взаимодействовать с Ethereum? не понял немного вопрос, есть кошельки:
- metamask - топ 1 приложение и расширение, почти все юзают, как кошелек для ethereum - подобных сетей, норм
- MyEtherWallet - сайт, кошелек, генерация все дела
- Exodus - я сам юзаю, мультивалютный кошелек, erc, eth все там есть
А есть сервисы, explorerы
- Etherscan - главный обозреватель блокчейна эфира, адреса балансы и все такое
- Blockscan - обозреватель сразу кучи блокчейнов, созданных на базе эфира, показывает, в каких сетах есть адрес
- debank.com - обозреватель огромный классный красивый
Вопрос 2
Что делает MetaMask, чтобы web-приложение могло взаимодействовать с блокчейном через JavaScript?
Metamask работает через infura и js либы (в браузере) или приложение. То есть использует готовые RPC Endpointы для отправки транзакций, обновлений баланса и т.п.
Также метамаск используют сторонние сервисы для авторизации в своих приложений или подписания транзакций для этого они юзают web3.js через js по типу window.ethereum.туткакая-тофукнция() и тогда высплывает окно метамаска, где просят ввести пароль и тогда выполняется запрос js скрипта
Вопрос 3
Каким образом обрабатываются пользовательские данные в web-приложении, чтобы они были приняты блокчейном? \
- Все конвертируется в байты 0x01231241231
- Формирование транзакции, ее проверка, подписание через метамаск например
Вопрос 4
Какие есть способы взаимодействия с блокчейном, кроме RPC-сервера и в чём их особенность?
Не понял вопрос. Если идет речь посмотреть баланс, транзакции и подобные вещи, то можно просто через обозреватель зайти etherscan, посмотреть, пришли ли тебе деньги или нет. Если идет речь об отправке транзакций, то все сводится к тому, что конечная точка это нода, на которой может стоять RPC сервер или что-то аналогичное, что доносит информацию до этой ноды.
Вопрос 5
Какие есть ещё способы получения данных из блокчейна, кроме отправка call методов и событий?
- по rpc, например eth_getBalance
- через обозреватели по типу etherscan (там же можно через метамаск фукнции контракта выполнять)
вторую версию скрипта написал на c# в Program.cs результат getStorageAt
result: 0x000000000000000000000000bc638bce74a6c83cfe06eb0dae44f623dab42ca5
результат запроса на добавление map в res.txt результат getEvents
result: [
{
address: '0x0677eae7f324ba5a335d085585589c47627e16f7',
blockHash: '0xe8a49428740e99f01fdcb0c5fca62516f226c2382c8a87afe163be3d164eef03',
blockNumber: 10219489n,
data: '0x000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000011417273656e20416e647269616e204a722e000000000000000000000000000000',
logIndex: 50n,
removed: false,
topics: [
'0x21d43a0b365e31d791c6629359680d37dc4707506edc2ab5b64082d2c993ecfb',
'0x6173647361000000000000000000000000000000000000000000000000000000',
'0x00000000000000000000000077d7bd8e73e0f1cd424acb6b1655d5817f8cebeb'
],
transactionHash: '0x7aad26a9be202b7c8e6367330f661a5c972157997154ef1fa73096446e56d546',
transactionIndex: 3n,
returnValues: {
'0': '0x6173647361000000000000000000000000000000000000000000000000000000',
'1': 21n,
'2': 'Arsen Andrian Jr.',
'3': '0x77d7bD8E73E0F1CD424aCb6b1655D5817F8cEbeb',
__length__: 4,
key: '0x6173647361000000000000000000000000000000000000000000000000000000',
age: 21n,
name: 'Arsen Andrian Jr.',
address_: '0x77d7bD8E73E0F1CD424aCb6b1655D5817F8cEbeb'
},
event: 'StructAdded',
signature: '0x21d43a0b365e31d791c6629359680d37dc4707506edc2ab5b64082d2c993ecfb',
raw: {
data: '0x000000000000000000000000000000000000000000000000000000000000001500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000011417273656e20416e647269616e204a722e000000000000000000000000000000',
topics: [Array]
}
}
]