Skip to content

Latest commit

 

History

History
209 lines (125 loc) · 5.14 KB

SolanaParser.md

File metadata and controls

209 lines (125 loc) · 5.14 KB

@debridge-finance/solana-transaction-parser / SolanaParser

Class: SolanaParser

Class for parsing arbitrary solana transactions in various formats

  • by txHash
  • from raw transaction data (base64 encoded or buffer)
  • @solana/web3.js getTransaction().message object
  • @solana/web3.js getParsedTransaction().message or Transaction.compileMessage() object
  • @solana/web3.js TransactionInstruction object

Table of contents

Constructors

Methods

Constructors

constructor

new SolanaParser(programInfos, parsers?)

Initializes parser object SystemProgram, TokenProgram and AssociatedTokenProgram are supported by default but may be overriden by providing custom idl/custom parser

Parameters

Name Type Description
programInfos ProgramInfoType[] list of objects which contains programId and corresponding idl
parsers? InstructionParserInfo[] list of pairs (programId, custom parser)

Methods

addParser

addParser(programId, parser): void

Adds (or updates) parser for provided programId

Parameters

Name Type Description
programId PublicKey program id to add parser for
parser ParserFunction<Idl, string> parser to parse programId instructions

Returns

void


addParserFromIdl

addParserFromIdl(programId, idl): void

Adds (or updates) parser for provided programId

Parameters

Name Type Description
programId string | PublicKey program id to add parser for
idl Idl IDL that describes anchor program

Returns

void


parseInstruction

parseInstruction<I, IxName>(instruction): ParsedInstruction<I, IxName>

Parses instruction

Type parameters

Name Type
I extends Idl
IxName extends string

Parameters

Name Type Description
instruction TransactionInstruction transaction instruction to parse

Returns

ParsedInstruction<I, IxName>

parsed transaction instruction or UnknownInstruction


parseTransaction

parseTransaction(connection, txId, flatten?): Promise<null | ParsedInstruction<Idl, string>[]>

Fetches tx from blockchain and parses it

Parameters

Name Type Default value Description
connection Connection undefined web3 Connection
txId string undefined transaction id
flatten boolean false true if CPI calls need to be parsed too

Returns

Promise<null | ParsedInstruction<Idl, string>[]>

list of parsed instructions


parseTransactionData

parseTransactionData(txMessage): ParsedInstruction<Idl, string>[]

Parses transaction data

Parameters

Name Type Description
txMessage Message message to parse

Returns

ParsedInstruction<Idl, string>[]

list of parsed instructions


parseTransactionDump

parseTransactionDump(txDump): ParsedInstruction<Idl, string>[]

Parses transaction dump

Parameters

Name Type Description
txDump string | Buffer base64-encoded string or raw Buffer which contains tx dump

Returns

ParsedInstruction<Idl, string>[]

list of parsed instructions


parseTransactionParsedData

parseTransactionParsedData(txParsedMessage): ParsedInstruction<Idl, string>[]

Parses transaction data retrieved from Connection.getParsedTransaction

Parameters

Name Type Description
txParsedMessage ParsedMessage message to parse

Returns

ParsedInstruction<Idl, string>[]

list of parsed instructions


removeParser

removeParser(programId): void

Removes parser for provided program id

Parameters

Name Type Description
programId PublicKey program id to remove parser for

Returns

void