import base64 import hashlib import json import struct import sys from solana.transaction import Transaction from solders.pubkey import Pubkey from solders.transaction import VersionedTransaction 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))