derivePublicKey method
BIP32 public child derivation:
I = HMAC-SHA512(key=chainCode, data=pubKey || index_be32)
IL = I[0..31]
child = parent + IL*G
Implementation
PublicKey derivePublicKey(int index) {
final pubKeyBytes = notificationPublicKey;
final data = Uint8List(37);
data.setRange(0, 33, pubKeyBytes);
data.buffer.asByteData().setUint32(33, index, Endian.big);
final I = hmacSha512(chainCode, data);
final IL = I.sublist(0, 32);
final parentPubKey = PublicKey(pubKeyBytes);
final childPubKey = parentPubKey.tweak(IL);
if (childPubKey == null) {
throw StateError('Invalid child key derivation at index $index');
}
return childPubKey;
}