UNPKG

@macalinao/grill

Version:

Modern Solana development kit for React applications with automatic account batching, caching, and transaction notifications

38 lines 1.97 kB
import { compileTransactionMessage, getBase64Decoder, getCompiledTransactionMessageEncoder, } from "@solana/kit"; /** * Encodes a transaction message to base64 format. * This is useful for creating transaction inspector URLs or sending transactions * to services that expect base64-encoded messages. * * @param transactionMessage - The compilable transaction message to encode * @returns The base64-encoded transaction message string */ export function encodeTransactionMessageToBase64(transactionMessage) { const compiled = compileTransactionMessage(transactionMessage); return encodeCompiledTransactionMessageToBase64(compiled); } /** * Encodes a compiled transaction message to base64 format. * This is useful when you already have a compiled message and need to encode it. * * @param compiledMessage - The compiled transaction message to encode * @returns The base64-encoded transaction message string */ export function encodeCompiledTransactionMessageToBase64(compiledMessage) { const encodedMessageBytes = getCompiledTransactionMessageEncoder().encode(compiledMessage); return getBase64Decoder().decode(encodedMessageBytes); } /** * Creates a Solana Explorer transaction inspector URL from a transaction message. * This allows previewing and simulating transactions before sending them. * * @param transactionMessage - The compilable transaction message to create an inspector URL for * @param cluster - The Solana cluster (defaults to "mainnet-beta") * @returns The Solana Explorer transaction inspector URL */ export function createTransactionInspectorUrl(transactionMessage, cluster = "mainnet-beta") { const encodedMessage = encodeTransactionMessageToBase64(transactionMessage); const clusterParam = cluster === "mainnet-beta" ? "" : `&cluster=${cluster}`; return `https://explorer.solana.com/tx/inspector?message=${encodeURIComponent(encodedMessage)}${clusterParam}`; } //# sourceMappingURL=transaction.js.map