Как вы декодируете инструкцию Solana в Python, как это делает solscan.io?
Глядя на эту транзакцию, например :
Solscan умеет расшифровывать инструкции, например, №11 «Сторона». В цепочке EVM это не так сложно, потому что у каждого контракта есть ABI, который может помочь расшифровать данные, события и т. д.
Но я не смог понять, как это сделать на Солане. Как мы можем взять «Данные инструкции», например
000a000000010000005483000000000000fa4700000000000020b3666c0e000000020000000200000005aed06b1a84fb8fffff
И расшифровать его в подробные инструкции, как это может сделать такой сервис, как Solscan.io?
заранее спасибо
1 ответ
К сожалению, частично ответ заключается в том, что "вы должны знать" для программ, которые не публикуют IDL.
Например, solana-py предоставляет декодеры инструкций для системной программы и программы токена spl. Вот декодер для одной из инструкций системной программы: https://github.com/michaelhly/solana-py/blob/f41f020938d1fb257142f18608bcb884adb54479/src/solana/system_program.py#L196 .
Для программ, у которых есть IDL, вы можете взглянуть на AnchorPy! Он должен иметь возможность генерировать удобный клиент для любой программы Anchor с IDL: https://kevinheavey.github.io/anchorpy/