partiallySignTransactionWithSigners

function partiallySignTransactionWithSigners(
    signers,
    transaction,
    config?,
): Promise<
    Readonly<{
        messageBytes: TransactionMessageBytes;
        signatures: SignaturesMap;
    }> &
        TransactionWithinSizeLimit &
        TransactionWithLifetime
>;

Signs a transaction using the provided TransactionModifyingSigners and TransactionPartialSigners.

It first uses all TransactionModifyingSigners sequentially before using all TransactionPartialSigners in parallel.

If a composite signer implements both interfaces, it will be used as a TransactionModifyingSigner if no other signer implements that interface. Otherwise, it will be used as a TransactionPartialSigner.

Parameters

ParameterTypeDescription
signersreadonly ( | Readonly<{ address: Address<string>; modifyAndSignTransactions: Promise<readonly Readonly<{ messageBytes: TransactionMessageBytes; signatures: SignaturesMap; }> & TransactionWithinSizeLimit & TransactionWithLifetime[]>; }> | Readonly<{ address: Address<string>; signTransactions: Promise<readonly Readonly<Record<Address, SignatureBytes>>[]>; }>)[]The signers to use. Only TransactionModifyingSigner and TransactionPartialSigner interfaces are accepted.
transactionTransactionThe compiled transaction to sign.
config?BaseTransactionSignerConfigOptional configuration including an AbortSignal.

Returns

Promise<Readonly<{ messageBytes: TransactionMessageBytes; signatures: SignaturesMap; }> & TransactionWithinSizeLimit & TransactionWithLifetime>

The signed transaction.

Example

const signedTransaction = await partiallySignTransactionWithSigners(mySigners, compiledTransaction);

It also accepts an optional AbortSignal that will be propagated to all signers.

const signedTransaction = await partiallySignTransactionWithSigners(mySigners, compiledTransaction, {
    abortSignal: myAbortController.signal,
});

See

On this page