findKeyPairForChangeAddress method

  1. @override
Bip32KeyPair? findKeyPairForChangeAddress({
  1. required ShelleyAddress address,
  2. int account = defaultAccountIndex,
  3. int index = defaultAddressIndex,
})
override

Find signing key for spend or change address.

Implementation

@override
Bip32KeyPair? findKeyPairForChangeAddress({
  required ShelleyAddress address,
  int account = defaultAccountIndex,
  int index = defaultAddressIndex,
}) {
  if (_addressCache.isEmpty) {
    final spends = hdWallet.buildAddressKitCache(
        usedSet: addresses.toSet(),
        account: account,
        role: paymentRole,
        index: index,
        networkId: networkId,
        beyondUsedOffset: HdWallet.maxOverrun);
    for (var kit in spends) {
      _addressCache[kit.address] = kit;
    }
    final change = hdWallet.buildAddressKitCache(
        usedSet: addresses.toSet(),
        account: account,
        role: changeRole,
        index: index,
        networkId: networkId,
        beyondUsedOffset: HdWallet.maxOverrun);
    for (var kit in change) {
      _addressCache[kit.address] = kit;
    }
  }
  final kit = _addressCache[address];
  return kit == null
      ? null
      : Bip32KeyPair(signingKey: kit.signingKey, verifyKey: kit.verifyKey);
}