From 0f09c0b65c8949f74046994258b0e38433a4e52b Mon Sep 17 00:00:00 2001 From: Bhavi Dhingra Date: Tue, 28 Jul 2026 18:37:38 +0530 Subject: [PATCH] feat(sol): warn when recovery is called without durable nonce (SIMD-525) With SIMD-525 (200ms slot times), the blockhash validity window drops from ~60s to ~30s. Recovery flows that don't use durable nonce must complete build-sign-broadcast within that window, which is tight for MPC recovery involving key decryption and multi-party signing. Added a logger.warn when recover() is called without params.durableNonce to alert operators that the flow is time-constrained. Ticket: CHALO-1077 --- modules/sdk-coin-sol/src/sol.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/sdk-coin-sol/src/sol.ts b/modules/sdk-coin-sol/src/sol.ts index c426ebe05c..e473687318 100644 --- a/modules/sdk-coin-sol/src/sol.ts +++ b/modules/sdk-coin-sol/src/sol.ts @@ -1283,6 +1283,16 @@ export class Sol extends BaseCoin { let totalFee = new BigNumber(0); let totalFeeForTokenRecovery = new BigNumber(0); + // Warn if durable nonce is not provided for SOL recovery. + // With SIMD-525 (200ms slots), the blockhash validity window drops from ~60s to ~30s. + // Recovery flows that don't use durable nonce must complete build-sign-broadcast within that window. + if (!params.durableNonce) { + logger.warn( + 'SOL recovery without durable nonce: transaction must be signed and broadcast within the blockhash validity window (~30s at 200ms slots). ' + + 'Provide params.durableNonce for flows that may exceed this window.' + ); + } + // check for possible token recovery, recover the token provide by user if (params.tokenContractAddress) { let isUnsupportedToken = false;