addSignature method

void addSignature(
  1. Pubkey pubkey,
  2. Uint8List signature
)

Add an externally created signature to a transaction. The pubkey must correspond to the fee payer or a signer account in the transaction instructions (Message.accountKeys).

Implementation

void addSignature(final Pubkey pubkey, final Uint8List signature) {
  check(
    signature.length == nacl.signatureLength,
    'Invalid signature length ${signature.length}',
  );
  final int numRequiredSignatures = message.header.numRequiredSignatures;
  final List<Pubkey> signerPubkeys = message.accountKeys.sublist(
    0,
    numRequiredSignatures,
  );
  final int signerIndex = signerPubkeys.indexWhere(
    (signerPubkey) => signerPubkey == pubkey,
  );
  check(signerIndex >= 0, 'Unknown transaction signer.');
  signatures[signerIndex] = signature;
}