From ba64ac90a9b5549f52ce563aeb0556aeb5bc5419 Mon Sep 17 00:00:00 2001 From: phroi <90913182+phroi@users.noreply.github.com> Date: Wed, 27 May 2026 19:01:57 +0000 Subject: [PATCH 1/2] fix(sdk): avoid final confirmation sleep --- packages/sdk/src/sdk.test.ts | 4 +++- packages/sdk/src/sdk.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/sdk/src/sdk.test.ts b/packages/sdk/src/sdk.test.ts index 5f3c627a..5e603f61 100644 --- a/packages/sdk/src/sdk.test.ts +++ b/packages/sdk/src/sdk.test.ts @@ -1991,6 +1991,7 @@ describe("sendAndWaitForCommit", () => { it("surfaces transaction confirmation timeouts with the broadcast hash", async () => { const txHash = hash("a3"); const onSent = vi.fn(); + const sleep = vi.fn(() => Promise.resolve()); const onLifecycle = vi.fn<(event: unknown) => void>(); try { @@ -2008,7 +2009,7 @@ describe("sendAndWaitForCommit", () => { maxConfirmationChecks: 1, onLifecycle, onSent, - sleep: () => Promise.resolve(), + sleep, }, ); expect.fail("Expected sendAndWaitForCommit to reject"); @@ -2023,6 +2024,7 @@ describe("sendAndWaitForCommit", () => { } expect(onSent).toHaveBeenCalledWith(txHash); + expect(sleep).not.toHaveBeenCalled(); expect(onLifecycle.mock.calls.map(([event]) => event)).toMatchObject([ { type: "broadcasted", txHash }, { type: "timeout_after_broadcast", txHash, status: "unknown", checks: 1 }, diff --git a/packages/sdk/src/sdk.ts b/packages/sdk/src/sdk.ts index bafcca10..8d38147a 100644 --- a/packages/sdk/src/sdk.ts +++ b/packages/sdk/src/sdk.ts @@ -253,6 +253,9 @@ export async function sendAndWaitForCommit( if (!isPendingStatus(status)) { break; } + if (checks >= maxConfirmationChecks) { + break; + } onConfirmationWait?.(); await sleep(confirmationIntervalMs); From 711088f48f0f6ceb6576e72e6261f6cc9d82d738 Mon Sep 17 00:00:00 2001 From: phroi <90913182+phroi@users.noreply.github.com> Date: Wed, 27 May 2026 19:07:53 +0000 Subject: [PATCH 2/2] style(sdk): combine confirmation exit checks --- packages/sdk/src/sdk.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/sdk/src/sdk.ts b/packages/sdk/src/sdk.ts index 8d38147a..5d40e567 100644 --- a/packages/sdk/src/sdk.ts +++ b/packages/sdk/src/sdk.ts @@ -250,10 +250,7 @@ export async function sendAndWaitForCommit( lastPollingError = error; } checks += 1; - if (!isPendingStatus(status)) { - break; - } - if (checks >= maxConfirmationChecks) { + if (!isPendingStatus(status) || checks >= maxConfirmationChecks) { break; }