signPayloadDecorated method

XdrDecoratedSignature signPayloadDecorated(
  1. Uint8List signerPayload
)

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