Skip to content

Instantly share code, notes, and snippets.

@eyevz

eyevz/example.py Secret

Created December 11, 2021 19:12
Show Gist options
  • Save eyevz/5ec6bab673f4b2d5886bac32da6f3ce4 to your computer and use it in GitHub Desktop.
Save eyevz/5ec6bab673f4b2d5886bac32da6f3ce4 to your computer and use it in GitHub Desktop.
# These logs break the event parser. Code snippet to load the IDL and test follows below
logs = ['Program 11111111111111111111111111111111 invoke [1]', 'Program 11111111111111111111111111111111 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]', 'Program log: Instruction: InitializeAccount', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3680 of 200000 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU invoke [1]', 'Program log: reserve refreshed', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU consumed 22613 of 200000 compute units', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU success', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU invoke [1]', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3229 of 187213 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]', 'Program log: Instruction: MintTo', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2883 of 181487 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU consumed 22300 of 200000 compute units', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU success', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU invoke [1]', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3121 of 186053 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program log: qQ5mlJuJEus/bRqvmKjiBjRyfYn7cnNNHT77Kz7sKsqij6V2ExQ1ZU96Ui/iFPUsyTUAU3mfJA59v/QuP96VXE0+zTvStnmOAACUNXcAAAAA', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU consumed 20763 of 200000 compute units', 'Program JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]', 'Program log: Instruction: CloseAccount', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2160 of 200000 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success']
import asyncio
from anchorpy import EventParser, Program, Provider, Wallet
import solana.rpc.async_api
MAINNET_API = 'https://api.mainnet-beta.solana.com'
JET_V1_KEY = 'JPv1rCqrhagNNmJVM5J1he7msQ5ybtvE1nNuHpDHMNU'
loop = asyncio.get_event_loop()
rpc_client = solana.rpc.async_api.AsyncClient(MAINNET_API)
provider = Provider(rpc_client, Wallet.local())
program_id = PublicKey(JET_V1_KEY)
program = loop.run_until_complete(Program.at(program_id, provider))
event_parser = EventParser(program.program_id, program.coder.events)
event_parser.parse_logs(logs, lambda _: None) # IndexError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment