fix(bifrost): scope Solana RPC wait to mocknet

Problem

build/scripts/bifrost.sh performs an unbounded Solana getSlot readiness loop before executing Bifrost whenever the Solana RPC is configured. The production node-launcher uses this same entrypoint, so one unavailable Solana endpoint can prevent Bifrost and every otherwise healthy chain client from starting.

The gate was introduced with the XMR integration CI hardening to avoid a mocknet Solana-validator startup race. It is useful for deterministic simulation startup, but it should not apply to deployed networks.

Fix

Run the Solana readiness gate only when NET=mocknet.

  • Mainnet, stagenet, and chainnet start Bifrost without contacting the Solana RPC.
  • Mocknet retains the readiness wait that prevents churn/keygen simulation races.
  • No Solana chain-client or protocol behavior changes.

Regression coverage

A standalone entrypoint test executes the real script with stubbed dependencies and verifies both sides of the boundary:

  • mainnet completes without invoking an unavailable Solana RPC;
  • mocknet still invokes and waits for the Solana RPC.

Local validation

  • go test -tags=mocknet ./build/scripts -count=1
  • bash -n build/scripts/bifrost.sh
  • targeted golangci-lint and shellcheck through Trunk
  • git diff --check

Full repository lint remains dependent on access to tss-lib-private/v3; the org pipeline is the authoritative full check.

Edited by Boone W

Merge request reports

Loading
Loading