Skip to main content
import {
  summarizeReadiness,
  canShowActions,
  canShowDeposit,
  canShowExitActions,
} from "@arc/shlp-sdk";

const summary = summarizeReadiness(health, vault);
if (!summary.canDisplay) {
  return <Unavailable reasonCodes={summary.reasonCodes} />;
}

return (
  <VaultPage
    depositEnabled={summary.canDeposit}
    exitEnabled={summary.canShowExitActions}
    reasonCodes={summary.reasonCodes}
  />
);

Why this matters

Deposit readiness depends on operations, keeper heartbeat, roles, pause state, and vault state. Keeping that logic in the SDK avoids every partner app implementing a slightly different version.