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

    Type Alias DeploySolanaProgramInput

    What the server action hands the workflow: the operator's intent, validated. No bytes and no addresses the worker can derive itself — the artifact is fetched by the activity from assetId, and the program id comes from the register.

    type DeploySolanaProgramInput = {
        assetId: number;
        expectedHash: string;
        network: ProgramNetwork;
        program: ProgramName;
        releaseTag: string;
        requestedBy: string;
    }
    Index
    assetId: number

    GitHub release asset id of the .so.

    expectedHash: string

    The hash the operator was shown in the confirmation dialog. Both gates compare against this: the download before any rent is spent, and the buffer read back from chain before Upgrade (§5.3).

    program: ProgramName
    releaseTag: string

    <program>-<network>-v<ver>+<sha> — for the audit record and the page.

    requestedBy: string

    Dashboard user, for the terminal audit records (§6.2).