signMessage method

  1. @override
Future<Uint8List> signMessage(
  1. String message
)
override

Signs a personal message (EIP-191).

This method adds the EIP-191 prefix before signing: \x19Ethereum Signed Message:\n{length}{message}

Implementation

@override
Future<Uint8List> signMessage(String message) async {
  // EIP-191 personal message
  final prefix = '\x19Ethereum Signed Message:\n${message.length}';
  final prefixedMessage =
      Uint8List.fromList([...prefix.codeUnits, ...message.codeUnits]);
  final hash = Keccak256.hash(prefixedMessage);

  return Secp256k1.sign(hash, privateKey);
}