BuidlZone-Labs/zicket-web

Wallet SDK Caches First Transaction Hash Indefinitely

已關閉

#175 建立於 2026年7月29日

 (8 則留言) (0 個反應) (1 位負責人)TypeScript (43 個分叉)auto 404
Stellar Wavebugfrontendhelp wantedweb3

倉庫指標

星標
 (4 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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

貢獻者指南