@cfxlabsinc/b2b-services
    Preparing search index...

    Reads the deployed state of the mintfx program, and the releases it could be running.

    Read-only by construction. It holds no signer and starts no workflow — the dashboard's entire write capability against these programs is a workflow start, and that workflow does not exist yet (PROGRAM_DEPLOYS.md § 2.4).

    Chain reads and GitHub reads are separate methods rather than one combined call, because § 4.5 requires them to fail independently: GitHub being down must not blank the program ids and hashes that resolved fine.

    Index
    instance: (...args: []) => SolanaProgramDeployQueryService = ...

    The process default: this stage's network (MINTFX_ENV) on the Helius client, read at each use.

    • Loader buffers authority can close, and the rent they are holding.

      Listed by buffer authority rather than by deploy payer. The deploy payer the handoff calls for does not exist yet, and the buffers stranded today were written by the local deploy path, which signs with the upgrade authority — so passing a row's on-chain authority is what finds them. Once a dedicated payer exists, that is the address to pass instead.

      Paginated, and not optionally: the owner here is the upgradeable loader, which owns a loader account for every program on the cluster. The memcmp filters narrow what comes back but not what the node scans, so the single-shot V1 call ran the account index out of budget and Helius answered -32603 instead of a list.

      Parameters

      Returns Promise<ProgramBuffer[]>

    • The next limit accounts program owns that hold rent surplus, in address order after after, and the cursor to resume from.

      Surplus is lamports above the live rent-exempt minimum for the account's size. The rent line is probed uncached, unlike readRentParameters: surplus exists because rent constants get cut, so a day-old line would miss exactly what this is for. Accounts at or below their minimum are left out. Each page re-lists the program, so a page reflects current chain state.

      Parameters

      • __namedParameters: {
            after: Address | null;
            limit: number;
            network: ProgramNetwork;
            program: "mintfx";
        }
        • after: Address | null

          The last address a previous page returned; null starts at the beginning.

        • limit: number
        • network: ProgramNetwork
        • program: "mintfx"

      Returns Promise<{ accounts: ProgramRentSurplusAccount[]; nextCursor: Address | null }>

    • The ADMIN_AUTHORITY the currently deployed program was compiled with.

      Unlike the upgrade authority there is no account to read it from — it is a compiled-in constant — so it is resolved the way the register already resolves everything else about a deployment: hash the executable off chain, match that hash to the release it came from, and read the manifest that release was built with.

      The answer is cached against (programId, lastDeploySlot), which is immutable for what it describes, so a warm caller pays two account reads and nothing else. The GitHub half — one listing plus up to 25 artifact hashes — is only ever paid once per deploy, and shares PROGRAM_HASH_CACHE_NAMESPACE with the register that already warms it.

      Parameters

      Returns Promise<DeployedAdminAuthority>

    • Who pays for a deploy, what they can spend, and whether the platform holds the authority the upgrade will be signed by.

      A separate read from readChainFacts rather than more fields on it, for the reason § 4.5 separates chain from GitHub: this one also depends on the database, so folding it in would let a wallet row nobody seeded blank the program id and the deployed hash — facts that resolved fine.

      get rather than search: a missing wallet row is a deployment that was never seeded, and the throw names which key is absent. search would hand back an undefined address and send it to the node as a balance query.

      Parameters

      • __namedParameters: { network: ProgramNetwork; program: "mintfx"; upgradeAuthority: Address | null }

      Returns Promise<ProgramDeployWallets>