diff --git a/packages/solana-contrib/src/transaction/TransactionReceipt.ts b/packages/solana-contrib/src/transaction/TransactionReceipt.ts index 06a9410db..0d9b5d888 100644 --- a/packages/solana-contrib/src/transaction/TransactionReceipt.ts +++ b/packages/solana-contrib/src/transaction/TransactionReceipt.ts @@ -19,6 +19,11 @@ export type TransactionLike = | PendingTransaction | TransactionReceipt; +export enum ExplorerType { + SOLANA_EXPLORER = "solana-explorer", + SOLSCAN = "solscan", +} + /** * Confirms a transaction, returning its receipt. * @@ -97,6 +102,20 @@ export class TransactionReceipt { * @returns */ generateSolanaExplorerLink(cluster: Cluster = "mainnet-beta"): string { - return `https://explorer.solana.com/tx/${this.signature}?cluster=${cluster}`; + return this.generateTXLink(cluster); + } + + generateTXLink( + cluster: Cluster = "mainnet-beta", + explorerType: string = ExplorerType.SOLANA_EXPLORER + ): string { + switch (explorerType) { + case ExplorerType.SOLANA_EXPLORER: + return `https://explorer.solana.com/tx/${this.signature}?cluster=${cluster}`; + case ExplorerType.SOLSCAN: + return `https://solscan.io/tx/${this.signature}?cluster=${cluster}`; + default: + throw new Error(`Explorer type ${explorerType} is not supported.`); + } } }