import base64 import json import struct import hashlib from solana.transaction import Transaction from solders.transaction import VersionedTransaction from solders.pubkey import Pubkey import sys def load_idl(file_path): with open(file_path, 'r') as f: return json.load(f) def load_transaction(file_path): with open(file_path, 'r') as f: data = json.load(f) return data def decode_instruction(ix_data, ix_def): args = {} offset = 8 # Skip 8-byte discriminator for arg in ix_def['args']: if arg['type'] == 'u64': value = struct.unpack_from('") sys.exit(1) tx_file_path = sys.argv[1] idl = load_idl('../idl/pump_fun_idl.json') tx_data = load_transaction(tx_file_path) decoded_instructions = decode_transaction(tx_data, idl) print(json.dumps(decoded_instructions, indent=2))