signTransaction method
Implementation
String signTransaction(String challengeTransaction, KeyPair userKeyPair) {
final String trans =
checkNotNull(challengeTransaction, "transaction can not be null");
final KeyPair kp = checkNotNull(userKeyPair, "userKeyPair 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);
signatures.add(kp.signDecorated(txHash));
envelopeXdr.v1.signatures = signatures;
return envelopeXdr.toEnvelopeXdrBase64();
}