signMessage method

List<int> signMessage({
  1. required List<int> message,
  2. bool hashMessage = true,
  3. String messagePrefix = BitcoinSignerUtils.signMessagePrefix,
  4. List<int> extraEntropy = const [],
})

Signs a message using Bitcoin's message signing format.

  • message: The raw message to be signed.
  • messagePrefix: The prefix used for Bitcoin's message signing.
  • extraEntropy: Optional extra entropy to modify the signature.

Implementation

List<int> signMessage({
  required List<int> message,
  bool hashMessage = true,
  String messagePrefix = BitcoinSignerUtils.signMessagePrefix,
  List<int> extraEntropy = const [],
}) {
  List<int> messgaeHash = message;
  if (hashMessage) {
    messgaeHash = QuickCrypto.sha256Hash(
      BitcoinSignerUtils.magicMessage(message, messagePrefix),
    );
  }
  final signature = _signingKey.sign(
    digest: messgaeHash,
    extraEntropy: extraEntropy,
  );
  return [
    signature.$2 + 27,
    ...signature.$1.toBytes(BitcoinSignerUtils.baselen),
  ];
}