signTransaction method
Implementation
String signTransaction(String challengeTransaction, List<KeyPair> signers) {
final String trans =
checkNotNull(challengeTransaction, "transaction can not be null");
checkNotNull(signers, "signers can not be null");
XdrTransactionEnvelope envelopeXdr =
XdrTransactionEnvelope.fromEnvelopeXdrString(trans);
if (envelopeXdr.discriminant != XdrEnvelopeType.ENVELOPE_TYPE_TX) {
throw ChallengeValidationError("Invalid transaction type");
}
final txHash =
AbstractTransaction.fromEnvelopeXdr(envelopeXdr).hash(_network);
List<XdrDecoratedSignature> signatures = List<XdrDecoratedSignature>();
signatures.addAll(envelopeXdr.v1.signatures);
for (KeyPair signer in signers) {
signatures.add(signer.signDecorated(txHash));
}
envelopeXdr.v1.signatures = signatures;
return envelopeXdr.toEnvelopeXdrBase64();
}