forked from mito-systems/sol-mem-gen
Part of https://www.notion.so/Option-to-post-paid-for-memes-to-twitter-x-18ca6b22d4728051804ef4f55065d5ba Co-authored-by: AdityaSalunkhe21 <adityasalunkhe2204@gmail.com> Co-authored-by: Adw8 <adwaitgharpure@gmail.com> Co-authored-by: IshaVenikar <ishavenikar7@gmail.com> Reviewed-on: #12 Co-authored-by: adwait <adwait@noreply.git.vdb.to> Co-committed-by: adwait <adwait@noreply.git.vdb.to>
23 lines
822 B
TypeScript
23 lines
822 B
TypeScript
import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
|
|
import { Connection } from "@solana/web3.js";
|
|
|
|
const connection = new Connection(process.env.NEXT_PUBLIC_SOLANA_RPC_URL!);
|
|
|
|
export async function extractTxInfo(transactionSignature: string) {
|
|
const result = await connection.getParsedTransaction(transactionSignature, 'confirmed');
|
|
if (!result) {
|
|
throw new Error('Transaction not found');
|
|
}
|
|
|
|
const transferInstruction = result.transaction.message.instructions.find(
|
|
(instr) => 'parsed' in instr && instr.programId.equals(TOKEN_PROGRAM_ID)
|
|
);
|
|
|
|
if (!transferInstruction || !('parsed' in transferInstruction)) {
|
|
throw new Error('Transfer instruction not found');
|
|
}
|
|
|
|
const { info: { amount, authority } } = transferInstruction.parsed;
|
|
return { authority, amount };
|
|
}
|