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
- Separate SDK module loading from transaction execution.
- Cache the SDK instance, but execute transaction signing dynamically per payment request so each transaction receives a unique hash.
Acceptance Criteria
Files
Category
Bug
Priority
High
Description
In
lib/walletSdk.ts,loadPromisestores the resolved dynamic import promise globally in a module variable. OnceloadWalletSDK()resolves, subsequent purchases or wallet connection triggers return the exact same cached mock transaction hash string forever.Evidence from
lib/walletSdk.ts#L30-L57:Proposed Solution
Acceptance Criteria
Files
lib/walletSdk.ts