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

    The program-deploy activities (PROGRAM_DEPLOYS.md §5).

    Every signature a deploy produces happens here, on temporal-worker. The dashboard's whole write capability is workflow.start — see §2.4 and the noRestrictedImports boundary in biome.jsonc.

    Signer accounts are passed to the loader's builders as createNoopSigner placeholders and the real signatures are attached by SolanaKeypairService.sign, which strips the placeholders on the way. That is the house pattern — see stripPlaceholderSigners — and it is what keeps key material inside the keypair service rather than threaded through instruction construction.

    type DeploySolanaProgramActivitiesDependencies = {
        gitHubReleaseClient: GitHubReleaseClient;
        solanaKeypairService: SolanaKeypairService;
        solanaRpc: Rpc<SolanaRpcApi>;
        solanaTransactionSenderService: SolanaTransactionSenderService;
        solanaTransactionService: SolanaTransactionService;
    }
    Index
    gitHubReleaseClient: GitHubReleaseClient
    solanaKeypairService: SolanaKeypairService
    solanaRpc: Rpc<SolanaRpcApi>
    solanaTransactionSenderService: SolanaTransactionSenderService
    solanaTransactionService: SolanaTransactionService