Asset discovery refactor

* Move asset discovery logic from JsonRpcService to new
  AssetDiscoveryManager class

* Add DiscoverAssetsOnAllOnRefresh and
  DiscoverAssetsOnAllSupportedChains APIs to
  AssetDiscoveryManager, and expose
  DiscoverAssetsOnAllOnRefresh to frontend via mojo
  API on BraveWalletService

* Add AccountsAdded event to KeyringService emitted
  when a new account is added via any method (hardware
  import, private key import, etc) that is triggers the
  AssetDiscoveryManager

* Add kBraveWalletAssetsLastDiscoveredAt and
  kBraveWalletNextAssetDiscoveryFromBlocks prefs to
  manage asset discovery state including rate limiting
  and last successful asset search per coin type /
  chain ID
This commit is contained in:
Nick von Pentz
2022-11-21 22:40:38 -05:00
committed by nvonpentz
parent 8348e16137
commit b064cfaa99
28 changed files with 2026 additions and 680 deletions
@@ -315,6 +315,9 @@ public class DappsModel implements KeyringServiceObserver {
@Override
public void accountsChanged() {}
@Override
public void accountsAdded(int coin, String[] addresses) {}
@Override
public void autoLockMinutesChanged() {}
@@ -329,6 +329,9 @@ public class KeyringModel implements KeyringServiceObserver {
update();
}
@Override
public void accountsAdded(int coin, String[] addresses) {}
@Override
public void autoLockMinutesChanged() {}
@@ -17,6 +17,7 @@ public class KeyringServiceObserverImpl implements KeyringServiceObserver {
default void keyringReset() {}
default void unlocked() {}
default void accountsChanged() {}
default void accountsAdded(int coin, String[] addresses) {}
default void autoLockMinutesChanged() {}
default void selectedAccountChanged(int coin) {}
}
@@ -76,6 +77,13 @@ public class KeyringServiceObserverImpl implements KeyringServiceObserver {
mDelegate.accountsChanged();
}
@Override
public void accountsAdded(int coin, String[] addresses) {
if (mDelegate == null) return;
mDelegate.accountsAdded(coin, addresses);
}
@Override
public void autoLockMinutesChanged() {
if (mDelegate == null) return;