signProsonalMessage method

List<int> signProsonalMessage(
  1. List<int> digest, {
  2. int? payloadLength,
  3. bool useEthPrefix = false,
  4. List<int>? extraEntropy,
})

Signs a personal message digest with an optional payload length.

Parameters:

  • digest: The personal message digest to be signed.
  • payloadLength: An optional payload length to include in the message prefix.
  • useEthPrefix: Whether to use the Ethereum or Tron personal sign prefix (default is false).

Implementation

List<int> signProsonalMessage(
  List<int> digest, {
  int? payloadLength,
  bool useEthPrefix = false,
  List<int>? extraEntropy,
}) {
  String prefix =
      useEthPrefix
          ? CryptoSignerConst.ethPersonalSignPrefix
          : CryptoSignerConst.tronSignMessagePrefix;
  prefix = prefix + (payloadLength?.toString() ?? digest.length.toString());
  final prefixBytes = StringUtils.encode(prefix, type: StringEncoding.ascii);
  return sign(
    QuickCrypto.keccack256Hash(<int>[...prefixBytes, ...digest]),
    hashMessage: false,
    extraEntropy: extraEntropy,
  );
}