SuiTransaction:
    | {
        MoveCall: MoveCallSuiTransaction;
    }
    | {
        TransferObjects: [SuiArgument[], SuiArgument];
    }
    | {
        SplitCoins: [SuiArgument, SuiArgument[]];
    }
    | {
        MergeCoins: [SuiArgument, SuiArgument[]];
    }
    | {
        Publish: string[];
    }
    | {
        Upgrade: [string[], string, SuiArgument];
    }
    | {
        MakeMoveVec: [string | null, SuiArgument[]];
    }

A single transaction in a programmable transaction block.