derive method

(SchnorrkelPublicKey, List<int>) derive(
  1. List<int> chainCode, [
  2. List<int>? message
])

Derives a new Schnorrkel public key and chain code using hierarchical deterministic key derivation (HDKD).

Parameters:

  • chainCode: A chain code used in the derivation.
  • message (optional): An optional byte array message used in the derivation. Default is an empty byte array.

Implementation

(SchnorrkelPublicKey, List<int>) derive(
  List<int> chainCode, [
  List<int>? message,
]) {
  final derive = _deriveScalarAndChainCode(chainCode, message);
  final mult = Ed25519Utils.scalarMultBase(derive.$1);
  final pAdd = Ed25519Utils.pointAdd(toPoint().toEdwardBytes(), mult);
  final newPoint = RistrettoPoint.fromEdwardBytes(pAdd);
  return (SchnorrkelPublicKey(newPoint.toBytes()), derive.$2);
}