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;
}