Работа с Neonscan, используя web3.py
Всем привет, в такой чудесный день, я бы хотел обсудить с вами одну из самых приятных вещей, таких как работа с Neonscan не через интерфейс, а сразу напрямую через python, это как раз тот способ(который не костыльный) при использовании
Для начала дадим определение Neonscan:
NeonScan — это индексатор и проводник блоков, подобный Etherscan и Solscan. Инструмент был создан в партнерстве с командой Solscan, которая возглавляла разработку интерфейса пользователя NeonScan и функциональности серверной части.
Давайте же приступать к нашему написанию кода!
Всю свою работу я буду показывать на таком языке программирования, как Python
Первое, что вам понадобиться - скачать Python, я буду использовать python версии 3.6, так как библиотека web3.py не будет работать на новых версиях, таких как 3.10/3.9(по крайней мере, когда я проверял, то не работало)
Далее вам потребуется скачать PyCharm - это среда разработки python, в которой очень просто писать код, ну или же вы можете воспользоваться visual studio cod.
После того как, вы установили все программы и открыли их, сперва вам нужно импортировать библиотеку web3.py, делается это следующим образом:
После этого мы должны будем подключиться к rpc-ноде, с которой мы и будем черпать информацию.
Нодой называют любой компьютер, подключенный к блокчейну. Она связана с тысячами других компьютеров, на которых включена специальная программа (к примеру кошелек Ethereum).
Подключаться к ноде мы будем следующим образом:
url = "https://proxy.devnet.neonlabs.org/solana"
После запуска кода, нам в консоль выведет True - это значит, что вы успешно подключились к ноде и наконец можете приступать к сёрфу информации
Первое, что мы сделаем - узнаем информацию о последнем блоке, а сделаем мы это следующим образом:
В ответ мы получим весьма длинный код, в котором и будет содержаться вся информация, вот пример ответа:
AttributeDict({'difficulty': 131072, 'totalDifficulty': 131072, 'extraData': HexBytes('0x0000000000000000000000000000000000000000000000000000000000000001'), 'logsBloom': HexBytes('0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'), 'gasLimit': 260057650590124, 'transactionsRoot': HexBytes('0x0000000000000000000000000000000000000000000000000000000000000001'), 'receiptsRoot': HexBytes('0x0000000000000000000000000000000000000000000000000000000000000001'), 'stateRoot': HexBytes('0x0000000000000000000000000000000000000000000000000000000000000001'), 'uncles': [], 'sha3Uncles': HexBytes('0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'), 'miner': '0x0000000000000000000000000000000000000000', 'nonce': HexBytes('0x0000000000000000'), 'mixHash': HexBytes('0x0000000000000000000000000000000000000000000000000000000000000001'), 'size': 1, 'gasUsed': 0, 'hash': HexBytes('0x39e65d4559c73d81bc38090fedf18bca6a66bfd35b48518d0f60cedd5e368255'), 'number': 144701131, 'parentHash': HexBytes('0xf71d0b37f7116cabeeb804ae4c94e57656715dee1dc0a6a413abf2f4a3e0ea73'), 'timestamp': 1656583921, 'transactions': []})
И уже из этого ответа вы можете доставать абсолютно всё, что душе угодно.
Второе, что мы сделаем - узнаем баланс определённого аккаунта:
Чтобы это сделать, нам нужно немножечко преобразовать свой адрес(программным путём), прописав этот код:
В ответ мы получим совершенно такой же адрес, но уже с изменённым регистром букв. Пример:
Именно благодаря уже такому(изменённому адресу) мы сможем узнать баланс своего кошелька и делать это мы будем следующим образом:
balance=web3.eth.getBalance('0x57050792E4d42a251A80036f84A541AA5c5A9B1c')
В ответ мы получим точное значение вашего баланса в токенах NEON
Как вы можете убедиться сами - всё работает.
Ну а дальше всё зависит от вас и как вы воспользуетесь таким инструментом, идею я вам подал - а как её воспользоваться решать только вам!