BuidlZone-Labs/zicket-web

Wallet SDK Caches First Transaction Hash Indefinitely

クローズ

#175 opened on 2026/07/29

 (8 件のコメント) (0 件のリアクション) (1 人の担当者)TypeScript (43 件のフォーク)auto 404
Stellar Wavebugfrontendhelp wantedweb3

Repository metrics

Stars
 (4 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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

コントリビューターガイド