From ab18349202a3cd76aac4209c5fc427f0604d3630 Mon Sep 17 00:00:00 2001 From: Holmes <98631674+haodev007@users.noreply.github.com> Date: Sat, 13 Aug 2022 22:27:19 +0300 Subject: [PATCH] solana-contrib: Add support for solscan link generation for `TransactionReceipt` (#664) * add solscan link for explorer and rename generateSolanaExplorerLink to generateTXLink * fix: build error with default return string * throw an error instead of default string * put prev explorer link method again --- .../src/transaction/TransactionReceipt.ts | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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.`); + } } }