src/soroban.ts:103-111 — ASYNC_METHODS is ['getAccount','getEvents','simulateTransaction','sendTransaction','getTransaction','getLatestLedger','getNetwork'].
Any other SorobanRpc.Server method the SDK calls — e.g. getLedgerEntries, getContractData, getFeeStats, getHealth, getEvents variants, pollTransaction — is returned straight from Reflect.get with no rate-limit classification, backoff, or RpcServiceUnavailableError mapping.
Impact
Rate-limit resilience (the whole point of createRpcServer) silently does not apply to those calls. As the SDK grows to use more RPC methods, each new one is unprotected by default and the gap is invisible.
Suggested fix
Wrap by capability (any function-valued property whose name isn't explicitly excluded), or centralise all RPC access through a single retrying helper instead of an allow-list.
src/soroban.ts:103-111—ASYNC_METHODSis['getAccount','getEvents','simulateTransaction','sendTransaction','getTransaction','getLatestLedger','getNetwork'].Any other
SorobanRpc.Servermethod the SDK calls — e.g.getLedgerEntries,getContractData,getFeeStats,getHealth,getEventsvariants,pollTransaction— is returned straight fromReflect.getwith no rate-limit classification, backoff, orRpcServiceUnavailableErrormapping.Impact
Rate-limit resilience (the whole point of
createRpcServer) silently does not apply to those calls. As the SDK grows to use more RPC methods, each new one is unprotected by default and the gap is invisible.Suggested fix
Wrap by capability (any function-valued property whose name isn't explicitly excluded), or centralise all RPC access through a single retrying helper instead of an allow-list.