updateAddressIconsMap method

Future<void> updateAddressIconsMap(
  1. KeyringEVM keyring, [
  2. List? address
])

This method query account icons and set icons to Keyring.store so we can get icon of an account from Keyring instance.

Implementation

Future<void> updateAddressIconsMap(KeyringEVM keyring,
    [List? address]) async {
  final List<String?> ls = [];
  if (address != null) {
    ls.addAll(List<String>.from(address));
  } else {
    ls.addAll(keyring.keyPairs.map((e) => e.address).toList());
    ls.addAll(keyring.contacts.map((e) => e.address).toList());
  }

  if (ls.length == 0) return;
  // get icons from webView.
  final res = await service.getAddressIcons(ls);
  // set new icons to Keyring instance.
  if (res != null) {
    final data = {};
    res.forEach((e) {
      data[e[0]] = e[1];
    });
    keyring.store.updateIconsMap(Map<String, String>.from(data));
  }
}