/web3sechw1

Primary LanguageSolidity

https://goerli.etherscan.io/address/0x0677eae7f324ba5a335d085585589c47627e16f7

Я не понял очень много вопросов, я считаю их слишком абстрактными.
Вопрос 1

Какие есть расширения для обозревателя, которые умеют взаимодействовать с Ethereum? не понял немного вопрос, есть кошельки:

  1. metamask - топ 1 приложение и расширение, почти все юзают, как кошелек для ethereum - подобных сетей, норм
  2. MyEtherWallet - сайт, кошелек, генерация все дела
  3. Exodus - я сам юзаю, мультивалютный кошелек, erc, eth все там есть

А есть сервисы, explorerы

  1. Etherscan - главный обозреватель блокчейна эфира, адреса балансы и все такое
  2. Blockscan - обозреватель сразу кучи блокчейнов, созданных на базе эфира, показывает, в каких сетах есть адрес
  3. debank.com - обозреватель огромный классный красивый

Вопрос 2
Что делает MetaMask, чтобы web-приложение могло взаимодействовать с блокчейном через JavaScript?
Metamask работает через infura и js либы (в браузере) или приложение. То есть использует готовые RPC Endpointы для отправки транзакций, обновлений баланса и т.п. Также метамаск используют сторонние сервисы для авторизации в своих приложений или подписания транзакций для этого они юзают web3.js через js по типу window.ethereum.туткакая-тофукнция() и тогда высплывает окно метамаска, где просят ввести пароль и тогда выполняется запрос js скрипта

Вопрос 3
Каким образом обрабатываются пользовательские данные в web-приложении, чтобы они были приняты блокчейном? \

  1. Все конвертируется в байты 0x01231241231
  2. Формирование транзакции, ее проверка, подписание через метамаск например

Вопрос 4
Какие есть способы взаимодействия с блокчейном, кроме RPC-сервера и в чём их особенность?
Не понял вопрос. Если идет речь посмотреть баланс, транзакции и подобные вещи, то можно просто через обозреватель зайти etherscan, посмотреть, пришли ли тебе деньги или нет. Если идет речь об отправке транзакций, то все сводится к тому, что конечная точка это нода, на которой может стоять RPC сервер или что-то аналогичное, что доносит информацию до этой ноды.

Вопрос 5
Какие есть ещё способы получения данных из блокчейна, кроме отправка call методов и событий?

  1. по rpc, например eth_getBalance
  2. через обозреватели по типу 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]
    }
  }
]