mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-25 00:03:11 +00:00
networkSnapshot() rebuilt the new-position network context on every call — deriving ammProgramId from $AMM_PROGRAM_BIN and resolving the $TOKENS_CONFIG token ids, which run tokenList()'s remote account_id_from_base58 conversions. It is called on the quote hot path (every keystroke) and, critically, from inside runtime reply callbacks: after a create-pool submit, pool activation runs refreshContext() from within a quoteNewPosition reply, so the nested synchronous remote calls reentered the module connection and hung the reply. refreshNewPositionContext never completed, contextLoading never cleared, and the token selectors (gated on !contextLoading) stayed disabled — the view became unusable after creating a pool. $AMM_PROGRAM_BIN and $TOKENS_CONFIG are fixed for the process lifetime, so resolve ammProgramId and the token ids once and cache them; networkSnapshot() now returns the cached values with no per-call remote work. (Still gated to "loading" until wallet state resolves, so the one-time resolve happens at startup, not inside a callback.)