Documentation
    Preparing search index...

    Interface ParallelTransactionExecutorOptions

    interface ParallelTransactionExecutorOptions {
        cache?: AsyncCache;
        client: SuiClient;
        coinBatchSize?: number;
        defaultGasBudget?: bigint;
        epochBoundaryWindow?: number;
        initialCoinBalance?: bigint;
        maxPoolSize?: number;
        minimumCoinBalance?: bigint;
        onEffects?: (
            effects: EnumOutputShapeWithKeys<
                {
                    V1: {
                        created: [
                            { digest: string; objectId: string; version: string },
                            EnumOutputShapeWithKeys<
                                {
                                    AddressOwner: string;
                                    ConsensusV2: {
                                        authenticator: { $kind: ...; SingleOwner: ... };
                                        startVersion: string;
                                    };
                                    Immutable: true;
                                    ObjectOwner: string;
                                    Shared: { initialSharedVersion: string };
                                },
                                | "AddressOwner"
                                | "ObjectOwner"
                                | "Shared"
                                | "Immutable"
                                | "ConsensusV2",
                            >,
                        ][];
                        deleted: { digest: string; objectId: string; version: string }[];
                        dependencies: string[];
                        eventsDigest: null | string;
                        executedEpoch: string;
                        gasObject: [
                            { digest: string; objectId: string; version: string },
                            EnumOutputShapeWithKeys<
                                {
                                    AddressOwner: string;
                                    ConsensusV2: {
                                        authenticator: { $kind: "SingleOwner"; SingleOwner: string };
                                        startVersion: string;
                                    };
                                    Immutable: true;
                                    ObjectOwner: string;
                                    Shared: { initialSharedVersion: string };
                                },
                                | "AddressOwner"
                                | "ObjectOwner"
                                | "Shared"
                                | "Immutable"
                                | "ConsensusV2",
                            >,
                        ];
                        gasUsed: {
                            computationCost: string;
                            nonRefundableStorageFee: string;
                            storageCost: string;
                            storageRebate: string;
                        };
                        modifiedAtVersions: [string, string][];
                        mutated: [
                            { digest: string; objectId: string; version: string },
                            EnumOutputShapeWithKeys<
                                {
                                    AddressOwner: string;
                                    ConsensusV2: {
                                        authenticator: { $kind: ...; SingleOwner: ... };
                                        startVersion: string;
                                    };
                                    Immutable: true;
                                    ObjectOwner: string;
                                    Shared: { initialSharedVersion: string };
                                },
                                | "AddressOwner"
                                | "ObjectOwner"
                                | "Shared"
                                | "Immutable"
                                | "ConsensusV2",
                            >,
                        ][];
                        sharedObjects: { digest: string; objectId: string; version: string }[];
                        status: EnumOutputShapeWithKeys<
                            {
                                Failed: {
                                    command: null
                                    | string;
                                    error: EnumOutputShapeWithKeys<
                                        {
                                            AddressDeniedForCoin: { address: ...; coinType: ... };
                                            ArityMismatch: true;
                                            CertificateDenied: true;
                                            CircularObjectOwnership: { object: ... };
                                            CoinBalanceOverflow: true;
                                            CoinTypeGlobalPause: { coinType: ... };
                                            CommandArgumentError: { argIdx: ...; kind: ... };
                                            EffectsTooLarge: { currentSize: ...; maxSize: ... };
                                            ExecutionCancelledDueToRandomnessUnavailable: true;
                                            ExecutionCancelledDueToSharedObjectCongestion: {
                                                congestedObjects: ...;
                                            };
                                            FeatureNotYetSupported: true;
                                            FunctionNotFound: true;
                                            InputObjectDeleted: true;
                                            InsufficientCoinBalance: true;
                                            InsufficientGas: true;
                                            InvalidGasObject: true;
                                            InvalidPublicFunctionReturnType: { idx: ... };
                                            InvalidTransferObject: true;
                                            InvariantViolation: true;
                                            MoveAbort: [(...), (...)];
                                            MoveObjectTooBig: { maxObjectSize: ...; objectSize: ... };
                                            MovePackageTooBig: { maxObjectSize: ...; objectSize: ... };
                                            MovePrimitiveRuntimeError: (...) | (...);
                                            NonEntryFunctionInvoked: true;
                                            PackageUpgradeError: { upgradeError: ... };
                                            PublishErrorNonZeroAddress: true;
                                            PublishUpgradeDependencyDowngrade: true;
                                            PublishUpgradeMissingDependency: true;
                                            SharedObjectOperationNotAllowed: true;
                                            SuiMoveVerificationError: true;
                                            SuiMoveVerificationTimedout: true;
                                            TypeArgumentError: { argumentIdx: ...; kind: ... };
                                            TypeArityMismatch: true;
                                            UnusedValueWithoutDrop: { resultIdx: ...; secondaryIdx: ... };
                                            VMInvariantViolation: true;
                                            VMVerificationOrDeserializationError: true;
                                            WrittenObjectsTooLarge: { currentSize: ...; maxSize: ... };
                                        },
                                        | "PackageUpgradeError"
                                        | "SharedObjectOperationNotAllowed"
                                        | "CommandArgumentError"
                                        | "TypeArgumentError"
                                        | "InsufficientGas"
                                        | "InvalidGasObject"
                                        | "InvariantViolation"
                                        | "FeatureNotYetSupported"
                                        | "MoveObjectTooBig"
                                        | "MovePackageTooBig"
                                        | "CircularObjectOwnership"
                                        | "InsufficientCoinBalance"
                                        | "CoinBalanceOverflow"
                                        | "PublishErrorNonZeroAddress"
                                        | "SuiMoveVerificationError"
                                        | "MovePrimitiveRuntimeError"
                                        | "MoveAbort"
                                        | "VMVerificationOrDeserializationError"
                                        | "VMInvariantViolation"
                                        | "FunctionNotFound"
                                        | "ArityMismatch"
                                        | "TypeArityMismatch"
                                        | "NonEntryFunctionInvoked"
                                        | "UnusedValueWithoutDrop"
                                        | "InvalidPublicFunctionReturnType"
                                        | "InvalidTransferObject"
                                        | "EffectsTooLarge"
                                        | "PublishUpgradeMissingDependency"
                                        | "PublishUpgradeDependencyDowngrade"
                                        | "WrittenObjectsTooLarge"
                                        | "CertificateDenied"
                                        | "SuiMoveVerificationTimedout"
                                        | "InputObjectDeleted"
                                        | "ExecutionCancelledDueToSharedObjectCongestion"
                                        | "AddressDeniedForCoin"
                                        | "CoinTypeGlobalPause"
                                        | "ExecutionCancelledDueToRandomnessUnavailable",
                                    >;
                                };
                                Success: true;
                            },
                            "Success"
                            | "Failed",
                        >;
                        transactionDigest: string;
                        unwrapped: [
                            { digest: string; objectId: string; version: string },
                            EnumOutputShapeWithKeys<
                                {
                                    AddressOwner: string;
                                    ConsensusV2: {
                                        authenticator: { $kind: ...; SingleOwner: ... };
                                        startVersion: string;
                                    };
                                    Immutable: true;
                                    ObjectOwner: string;
                                    Shared: { initialSharedVersion: string };
                                },
                                | "AddressOwner"
                                | "ObjectOwner"
                                | "Shared"
                                | "Immutable"
                                | "ConsensusV2",
                            >,
                        ][];
                        unwrappedThenDeleted: {
                            digest: string;
                            objectId: string;
                            version: string;
                        }[];
                        wrapped: { digest: string; objectId: string; version: string }[];
                    };
                    V2: {
                        auxDataDigest: null
                        | string;
                        changedObjects: [
                            string,
                            {
                                idOperation: EnumOutputShapeWithKeys<
                                    { Created: true; Deleted: true; None: true },
                                    "None" | "Created" | "Deleted",
                                >;
                                inputState: EnumOutputShapeWithKeys<
                                    { Exist: [(...), (...)]; NotExist: true },
                                    "NotExist" | "Exist",
                                >;
                                outputState: EnumOutputShapeWithKeys<
                                    {
                                        NotExist: true;
                                        ObjectWrite: [(...), (...)];
                                        PackageWrite: [(...), (...)];
                                    },
                                    "NotExist"
                                    | "ObjectWrite"
                                    | "PackageWrite",
                                >;
                            },
                        ][];
                        dependencies: string[];
                        eventsDigest: null
                        | string;
                        executedEpoch: string;
                        gasObjectIndex: null | number;
                        gasUsed: {
                            computationCost: string;
                            nonRefundableStorageFee: string;
                            storageCost: string;
                            storageRebate: string;
                        };
                        lamportVersion: string;
                        status: EnumOutputShapeWithKeys<
                            {
                                Failed: {
                                    command: null
                                    | string;
                                    error: EnumOutputShapeWithKeys<
                                        {
                                            AddressDeniedForCoin: { address: ...; coinType: ... };
                                            ArityMismatch: true;
                                            CertificateDenied: true;
                                            CircularObjectOwnership: { object: ... };
                                            CoinBalanceOverflow: true;
                                            CoinTypeGlobalPause: { coinType: ... };
                                            CommandArgumentError: { argIdx: ...; kind: ... };
                                            EffectsTooLarge: { currentSize: ...; maxSize: ... };
                                            ExecutionCancelledDueToRandomnessUnavailable: true;
                                            ExecutionCancelledDueToSharedObjectCongestion: {
                                                congestedObjects: ...;
                                            };
                                            FeatureNotYetSupported: true;
                                            FunctionNotFound: true;
                                            InputObjectDeleted: true;
                                            InsufficientCoinBalance: true;
                                            InsufficientGas: true;
                                            InvalidGasObject: true;
                                            InvalidPublicFunctionReturnType: { idx: ... };
                                            InvalidTransferObject: true;
                                            InvariantViolation: true;
                                            MoveAbort: [(...), (...)];
                                            MoveObjectTooBig: { maxObjectSize: ...; objectSize: ... };
                                            MovePackageTooBig: { maxObjectSize: ...; objectSize: ... };
                                            MovePrimitiveRuntimeError: (...) | (...);
                                            NonEntryFunctionInvoked: true;
                                            PackageUpgradeError: { upgradeError: ... };
                                            PublishErrorNonZeroAddress: true;
                                            PublishUpgradeDependencyDowngrade: true;
                                            PublishUpgradeMissingDependency: true;
                                            SharedObjectOperationNotAllowed: true;
                                            SuiMoveVerificationError: true;
                                            SuiMoveVerificationTimedout: true;
                                            TypeArgumentError: { argumentIdx: ...; kind: ... };
                                            TypeArityMismatch: true;
                                            UnusedValueWithoutDrop: { resultIdx: ...; secondaryIdx: ... };
                                            VMInvariantViolation: true;
                                            VMVerificationOrDeserializationError: true;
                                            WrittenObjectsTooLarge: { currentSize: ...; maxSize: ... };
                                        },
                                        | "PackageUpgradeError"
                                        | "SharedObjectOperationNotAllowed"
                                        | "CommandArgumentError"
                                        | "TypeArgumentError"
                                        | "InsufficientGas"
                                        | "InvalidGasObject"
                                        | "InvariantViolation"
                                        | "FeatureNotYetSupported"
                                        | "MoveObjectTooBig"
                                        | "MovePackageTooBig"
                                        | "CircularObjectOwnership"
                                        | "InsufficientCoinBalance"
                                        | "CoinBalanceOverflow"
                                        | "PublishErrorNonZeroAddress"
                                        | "SuiMoveVerificationError"
                                        | "MovePrimitiveRuntimeError"
                                        | "MoveAbort"
                                        | "VMVerificationOrDeserializationError"
                                        | "VMInvariantViolation"
                                        | "FunctionNotFound"
                                        | "ArityMismatch"
                                        | "TypeArityMismatch"
                                        | "NonEntryFunctionInvoked"
                                        | "UnusedValueWithoutDrop"
                                        | "InvalidPublicFunctionReturnType"
                                        | "InvalidTransferObject"
                                        | "EffectsTooLarge"
                                        | "PublishUpgradeMissingDependency"
                                        | "PublishUpgradeDependencyDowngrade"
                                        | "WrittenObjectsTooLarge"
                                        | "CertificateDenied"
                                        | "SuiMoveVerificationTimedout"
                                        | "InputObjectDeleted"
                                        | "ExecutionCancelledDueToSharedObjectCongestion"
                                        | "AddressDeniedForCoin"
                                        | "CoinTypeGlobalPause"
                                        | "ExecutionCancelledDueToRandomnessUnavailable",
                                    >;
                                };
                                Success: true;
                            },
                            "Success"
                            | "Failed",
                        >;
                        transactionDigest: string;
                        unchangedSharedObjects: [
                            string,
                            EnumOutputShapeWithKeys<
                                {
                                    Cancelled: string;
                                    MutateDeleted: string;
                                    PerEpochConfig: true;
                                    ReadDeleted: string;
                                    ReadOnlyRoot: [string, string];
                                },
                                | "ReadOnlyRoot"
                                | "MutateDeleted"
                                | "ReadDeleted"
                                | "Cancelled"
                                | "PerEpochConfig",
                            >,
                        ][];
                    };
                },
                "V1"
                | "V2",
            >,
        ) => Promise<void>;
        signer: Signer;
        sourceCoins?: string[];
    }

    Hierarchy

    • Omit<ObjectCacheOptions, "address">
      • ParallelTransactionExecutorOptions
    Index

    Properties

    cache?: AsyncCache
    client: SuiClient
    coinBatchSize?: number

    The number of coins to create in a batch when refilling the gas pool

    defaultGasBudget?: bigint

    The gasBudget to use if the transaction has not defined it's own gasBudget, defaults to minimumCoinBalance

    epochBoundaryWindow?: number

    Time to wait before/after the expected epoch boundary before re-fetching the gas pool (in milliseconds). Building transactions will be paused for up to 2x this duration around each epoch boundary to ensure the gas price is up-to-date for the next epoch.

    initialCoinBalance?: bigint

    The initial balance of each coin created for the gas pool

    maxPoolSize?: number

    The maximum number of transactions that can be execute in parallel, this also determines the maximum number of gas coins that will be created

    minimumCoinBalance?: bigint

    The minimum balance of a coin that can be reused for future transactions. If the gasCoin is below this value, it will be used when refilling the gasPool

    onEffects?: (
        effects: EnumOutputShapeWithKeys<
            {
                V1: {
                    created: [
                        { digest: string; objectId: string; version: string },
                        EnumOutputShapeWithKeys<
                            {
                                AddressOwner: string;
                                ConsensusV2: {
                                    authenticator: { $kind: ...; SingleOwner: ... };
                                    startVersion: string;
                                };
                                Immutable: true;
                                ObjectOwner: string;
                                Shared: { initialSharedVersion: string };
                            },
                            | "AddressOwner"
                            | "ObjectOwner"
                            | "Shared"
                            | "Immutable"
                            | "ConsensusV2",
                        >,
                    ][];
                    deleted: { digest: string; objectId: string; version: string }[];
                    dependencies: string[];
                    eventsDigest: null | string;
                    executedEpoch: string;
                    gasObject: [
                        { digest: string; objectId: string; version: string },
                        EnumOutputShapeWithKeys<
                            {
                                AddressOwner: string;
                                ConsensusV2: {
                                    authenticator: { $kind: "SingleOwner"; SingleOwner: string };
                                    startVersion: string;
                                };
                                Immutable: true;
                                ObjectOwner: string;
                                Shared: { initialSharedVersion: string };
                            },
                            | "AddressOwner"
                            | "ObjectOwner"
                            | "Shared"
                            | "Immutable"
                            | "ConsensusV2",
                        >,
                    ];
                    gasUsed: {
                        computationCost: string;
                        nonRefundableStorageFee: string;
                        storageCost: string;
                        storageRebate: string;
                    };
                    modifiedAtVersions: [string, string][];
                    mutated: [
                        { digest: string; objectId: string; version: string },
                        EnumOutputShapeWithKeys<
                            {
                                AddressOwner: string;
                                ConsensusV2: {
                                    authenticator: { $kind: ...; SingleOwner: ... };
                                    startVersion: string;
                                };
                                Immutable: true;
                                ObjectOwner: string;
                                Shared: { initialSharedVersion: string };
                            },
                            | "AddressOwner"
                            | "ObjectOwner"
                            | "Shared"
                            | "Immutable"
                            | "ConsensusV2",
                        >,
                    ][];
                    sharedObjects: { digest: string; objectId: string; version: string }[];
                    status: EnumOutputShapeWithKeys<
                        {
                            Failed: {
                                command: null
                                | string;
                                error: EnumOutputShapeWithKeys<
                                    {
                                        AddressDeniedForCoin: { address: ...; coinType: ... };
                                        ArityMismatch: true;
                                        CertificateDenied: true;
                                        CircularObjectOwnership: { object: ... };
                                        CoinBalanceOverflow: true;
                                        CoinTypeGlobalPause: { coinType: ... };
                                        CommandArgumentError: { argIdx: ...; kind: ... };
                                        EffectsTooLarge: { currentSize: ...; maxSize: ... };
                                        ExecutionCancelledDueToRandomnessUnavailable: true;
                                        ExecutionCancelledDueToSharedObjectCongestion: {
                                            congestedObjects: ...;
                                        };
                                        FeatureNotYetSupported: true;
                                        FunctionNotFound: true;
                                        InputObjectDeleted: true;
                                        InsufficientCoinBalance: true;
                                        InsufficientGas: true;
                                        InvalidGasObject: true;
                                        InvalidPublicFunctionReturnType: { idx: ... };
                                        InvalidTransferObject: true;
                                        InvariantViolation: true;
                                        MoveAbort: [(...), (...)];
                                        MoveObjectTooBig: { maxObjectSize: ...; objectSize: ... };
                                        MovePackageTooBig: { maxObjectSize: ...; objectSize: ... };
                                        MovePrimitiveRuntimeError: (...) | (...);
                                        NonEntryFunctionInvoked: true;
                                        PackageUpgradeError: { upgradeError: ... };
                                        PublishErrorNonZeroAddress: true;
                                        PublishUpgradeDependencyDowngrade: true;
                                        PublishUpgradeMissingDependency: true;
                                        SharedObjectOperationNotAllowed: true;
                                        SuiMoveVerificationError: true;
                                        SuiMoveVerificationTimedout: true;
                                        TypeArgumentError: { argumentIdx: ...; kind: ... };
                                        TypeArityMismatch: true;
                                        UnusedValueWithoutDrop: { resultIdx: ...; secondaryIdx: ... };
                                        VMInvariantViolation: true;
                                        VMVerificationOrDeserializationError: true;
                                        WrittenObjectsTooLarge: { currentSize: ...; maxSize: ... };
                                    },
                                    | "PackageUpgradeError"
                                    | "SharedObjectOperationNotAllowed"
                                    | "CommandArgumentError"
                                    | "TypeArgumentError"
                                    | "InsufficientGas"
                                    | "InvalidGasObject"
                                    | "InvariantViolation"
                                    | "FeatureNotYetSupported"
                                    | "MoveObjectTooBig"
                                    | "MovePackageTooBig"
                                    | "CircularObjectOwnership"
                                    | "InsufficientCoinBalance"
                                    | "CoinBalanceOverflow"
                                    | "PublishErrorNonZeroAddress"
                                    | "SuiMoveVerificationError"
                                    | "MovePrimitiveRuntimeError"
                                    | "MoveAbort"
                                    | "VMVerificationOrDeserializationError"
                                    | "VMInvariantViolation"
                                    | "FunctionNotFound"
                                    | "ArityMismatch"
                                    | "TypeArityMismatch"
                                    | "NonEntryFunctionInvoked"
                                    | "UnusedValueWithoutDrop"
                                    | "InvalidPublicFunctionReturnType"
                                    | "InvalidTransferObject"
                                    | "EffectsTooLarge"
                                    | "PublishUpgradeMissingDependency"
                                    | "PublishUpgradeDependencyDowngrade"
                                    | "WrittenObjectsTooLarge"
                                    | "CertificateDenied"
                                    | "SuiMoveVerificationTimedout"
                                    | "InputObjectDeleted"
                                    | "ExecutionCancelledDueToSharedObjectCongestion"
                                    | "AddressDeniedForCoin"
                                    | "CoinTypeGlobalPause"
                                    | "ExecutionCancelledDueToRandomnessUnavailable",
                                >;
                            };
                            Success: true;
                        },
                        "Success"
                        | "Failed",
                    >;
                    transactionDigest: string;
                    unwrapped: [
                        { digest: string; objectId: string; version: string },
                        EnumOutputShapeWithKeys<
                            {
                                AddressOwner: string;
                                ConsensusV2: {
                                    authenticator: { $kind: ...; SingleOwner: ... };
                                    startVersion: string;
                                };
                                Immutable: true;
                                ObjectOwner: string;
                                Shared: { initialSharedVersion: string };
                            },
                            | "AddressOwner"
                            | "ObjectOwner"
                            | "Shared"
                            | "Immutable"
                            | "ConsensusV2",
                        >,
                    ][];
                    unwrappedThenDeleted: {
                        digest: string;
                        objectId: string;
                        version: string;
                    }[];
                    wrapped: { digest: string; objectId: string; version: string }[];
                };
                V2: {
                    auxDataDigest: null
                    | string;
                    changedObjects: [
                        string,
                        {
                            idOperation: EnumOutputShapeWithKeys<
                                { Created: true; Deleted: true; None: true },
                                "None" | "Created" | "Deleted",
                            >;
                            inputState: EnumOutputShapeWithKeys<
                                { Exist: [(...), (...)]; NotExist: true },
                                "NotExist" | "Exist",
                            >;
                            outputState: EnumOutputShapeWithKeys<
                                {
                                    NotExist: true;
                                    ObjectWrite: [(...), (...)];
                                    PackageWrite: [(...), (...)];
                                },
                                "NotExist"
                                | "ObjectWrite"
                                | "PackageWrite",
                            >;
                        },
                    ][];
                    dependencies: string[];
                    eventsDigest: null
                    | string;
                    executedEpoch: string;
                    gasObjectIndex: null | number;
                    gasUsed: {
                        computationCost: string;
                        nonRefundableStorageFee: string;
                        storageCost: string;
                        storageRebate: string;
                    };
                    lamportVersion: string;
                    status: EnumOutputShapeWithKeys<
                        {
                            Failed: {
                                command: null
                                | string;
                                error: EnumOutputShapeWithKeys<
                                    {
                                        AddressDeniedForCoin: { address: ...; coinType: ... };
                                        ArityMismatch: true;
                                        CertificateDenied: true;
                                        CircularObjectOwnership: { object: ... };
                                        CoinBalanceOverflow: true;
                                        CoinTypeGlobalPause: { coinType: ... };
                                        CommandArgumentError: { argIdx: ...; kind: ... };
                                        EffectsTooLarge: { currentSize: ...; maxSize: ... };
                                        ExecutionCancelledDueToRandomnessUnavailable: true;
                                        ExecutionCancelledDueToSharedObjectCongestion: {
                                            congestedObjects: ...;
                                        };
                                        FeatureNotYetSupported: true;
                                        FunctionNotFound: true;
                                        InputObjectDeleted: true;
                                        InsufficientCoinBalance: true;
                                        InsufficientGas: true;
                                        InvalidGasObject: true;
                                        InvalidPublicFunctionReturnType: { idx: ... };
                                        InvalidTransferObject: true;
                                        InvariantViolation: true;
                                        MoveAbort: [(...), (...)];
                                        MoveObjectTooBig: { maxObjectSize: ...; objectSize: ... };
                                        MovePackageTooBig: { maxObjectSize: ...; objectSize: ... };
                                        MovePrimitiveRuntimeError: (...) | (...);
                                        NonEntryFunctionInvoked: true;
                                        PackageUpgradeError: { upgradeError: ... };
                                        PublishErrorNonZeroAddress: true;
                                        PublishUpgradeDependencyDowngrade: true;
                                        PublishUpgradeMissingDependency: true;
                                        SharedObjectOperationNotAllowed: true;
                                        SuiMoveVerificationError: true;
                                        SuiMoveVerificationTimedout: true;
                                        TypeArgumentError: { argumentIdx: ...; kind: ... };
                                        TypeArityMismatch: true;
                                        UnusedValueWithoutDrop: { resultIdx: ...; secondaryIdx: ... };
                                        VMInvariantViolation: true;
                                        VMVerificationOrDeserializationError: true;
                                        WrittenObjectsTooLarge: { currentSize: ...; maxSize: ... };
                                    },
                                    | "PackageUpgradeError"
                                    | "SharedObjectOperationNotAllowed"
                                    | "CommandArgumentError"
                                    | "TypeArgumentError"
                                    | "InsufficientGas"
                                    | "InvalidGasObject"
                                    | "InvariantViolation"
                                    | "FeatureNotYetSupported"
                                    | "MoveObjectTooBig"
                                    | "MovePackageTooBig"
                                    | "CircularObjectOwnership"
                                    | "InsufficientCoinBalance"
                                    | "CoinBalanceOverflow"
                                    | "PublishErrorNonZeroAddress"
                                    | "SuiMoveVerificationError"
                                    | "MovePrimitiveRuntimeError"
                                    | "MoveAbort"
                                    | "VMVerificationOrDeserializationError"
                                    | "VMInvariantViolation"
                                    | "FunctionNotFound"
                                    | "ArityMismatch"
                                    | "TypeArityMismatch"
                                    | "NonEntryFunctionInvoked"
                                    | "UnusedValueWithoutDrop"
                                    | "InvalidPublicFunctionReturnType"
                                    | "InvalidTransferObject"
                                    | "EffectsTooLarge"
                                    | "PublishUpgradeMissingDependency"
                                    | "PublishUpgradeDependencyDowngrade"
                                    | "WrittenObjectsTooLarge"
                                    | "CertificateDenied"
                                    | "SuiMoveVerificationTimedout"
                                    | "InputObjectDeleted"
                                    | "ExecutionCancelledDueToSharedObjectCongestion"
                                    | "AddressDeniedForCoin"
                                    | "CoinTypeGlobalPause"
                                    | "ExecutionCancelledDueToRandomnessUnavailable",
                                >;
                            };
                            Success: true;
                        },
                        "Success"
                        | "Failed",
                    >;
                    transactionDigest: string;
                    unchangedSharedObjects: [
                        string,
                        EnumOutputShapeWithKeys<
                            {
                                Cancelled: string;
                                MutateDeleted: string;
                                PerEpochConfig: true;
                                ReadDeleted: string;
                                ReadOnlyRoot: [string, string];
                            },
                            | "ReadOnlyRoot"
                            | "MutateDeleted"
                            | "ReadDeleted"
                            | "Cancelled"
                            | "PerEpochConfig",
                        >,
                    ][];
                };
            },
            "V1"
            | "V2",
        >,
    ) => Promise<void>
    signer: Signer
    sourceCoins?: string[]

    An initial list of coins used to fund the gas pool, uses all owned SUI coins by default