package main import ( "context" "fmt" "github.com/gagliardetto/solana-go" "github.com/gagliardetto/solana-go/rpc" solana_parser "github.com/thloyi/pump-parser" ) var () func main() { var slot uint64 = 414696178 client := rpc.New("https://staked.helius-rpc.com?api-key=5adcf1f9-5719-43d1-bf3f-c2d4e1e5f94d") var rewards = false var version uint64 = 0 blocks, err := client.GetBlockWithOpts(context.Background(), slot, &rpc.GetBlockOpts{ TransactionDetails: rpc.TransactionDetailsFull, Rewards: &rewards, Commitment: rpc.CommitmentFinalized, Encoding: solana.EncodingBase64, MaxSupportedTransactionVersion: &version, }) if err != nil { slot++ fmt.Println("get block error:", err) return } solana_parser.EnableAllParsers() var txs []solana_parser.Tx for i, tx := range blocks.Transactions { var blockTime uint64 if blocks.BlockTime != nil { blockTime = uint64(*blocks.BlockTime) } rawTx, err := solana_parser.FromRpcTransactionWithMeta(tx, &blockTime, slot, int64(i)) if err != nil { fmt.Println("from rpc tx error:", i, err) break } //if rawTx.Meta.Err != nil { // continue //} parsedTx, err := solana_parser.ParseRawTx(rawTx) if err != nil { fmt.Println("parse tx error:", i, rawTx.TxHash(), err) break } txs = append(txs, *parsedTx) } _, err = solana_parser.EncodeTxsBinary(txs) if err != nil { fmt.Println("EncodeTxsBinary err", err) } }