signPayloadDecorated method
Sign the provided payload data for payload signer where the input is the data being signed. Per the <a href="https://github.com/stellar/stellar-protocol/blob/master/core/cap-0040.md#signature-hint" CAP-40 Signature spec
@param signerPayload the payload signers raw data to sign @return XdrDecoratedSignature
Implementation
XdrDecoratedSignature signPayloadDecorated(Uint8List signerPayload) {
XdrDecoratedSignature payloadSignature = signDecorated(signerPayload);
// static void copyRange<T>(List<T> target, int at, List<T> source,
// [int? start, int? end]) {
Uint8List hint = Uint8List(4);
if (signerPayload.length > hint.length) {
List.copyRange(hint, 0, signerPayload, signerPayload.length - hint.length,
signerPayload.length);
} else {
List.copyRange(hint, 0, signerPayload, 0, signerPayload.length);
}
for (var i = 0; i < hint.length; i++) {
hint[i] ^= payloadSignature.hint!.signatureHint![i];
}
XdrSignatureHint newHint = XdrSignatureHint();
newHint.signatureHint = hint;
payloadSignature.hint = newHint;
return payloadSignature;
}