BuidlZone-Labs/zicket-web

Wallet SDK Caches First Transaction Hash Indefinitely

Geschlossen

#175 geöffnet am 29.07.2026

 (8 Kommentare) (0 Reaktionen) (1 zugewiesene Person)TypeScript (43 Forks)auto 404
Stellar Wavebugfrontendhelp wantedweb3

Repository-Metriken

Stars
 (4 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Category

Bug

Priority

High

Description

In lib/walletSdk.ts, loadPromise stores the resolved dynamic import promise globally in a module variable. Once loadWalletSDK() resolves, subsequent purchases or wallet connection triggers return the exact same cached mock transaction hash string forever.

Evidence from lib/walletSdk.ts#L30-L57:

let loadPromise: Promise<string> | null = null;
export async function loadWalletSDK(): Promise<string> {
  if (!loadPromise) {
    loadPromise = new Promise<string>(...);
  }
  return loadPromise;
}

Proposed Solution

  1. Separate SDK module loading from transaction execution.
  2. Cache the SDK instance, but execute transaction signing dynamically per payment request so each transaction receives a unique hash.

Acceptance Criteria

  • Wallet SDK package dynamically loads once.
  • Every transaction signing request generates a unique transaction hash.
  • Failed transactions can be retried without stale hash collisions.

Files

  • lib/walletSdk.ts

Contributor Guide