@toruslabs/ethereum-controllers 4.11.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -851,14 +851,6 @@ class AccountTrackerController extends BaseController {
851
851
  this.provider = provider;
852
852
  this.blockTracker = blockTracker;
853
853
  this.ethersProvider = new BrowserProvider(this.provider, "any");
854
-
855
- // Initiate block tracker internal tracking.
856
- this.blockTracker.on("latest", block => {
857
- this.configure({
858
- _currentBlock: block
859
- });
860
- this.refresh();
861
- });
862
854
  this.getIdentities = getIdentities;
863
855
  this.getCurrentChainId = getCurrentChainId;
864
856
  onPreferencesStateChange(() => {
@@ -866,6 +858,24 @@ class AccountTrackerController extends BaseController {
866
858
  const refreshNeeded = this.syncAccounts();
867
859
  if (refreshNeeded) this.refresh();
868
860
  });
861
+ this.blockTrackerListener = this.blockTrackerListener.bind(this);
862
+ }
863
+ blockTrackerListener(block) {
864
+ this.configure({
865
+ _currentBlock: block
866
+ });
867
+ this.refresh();
868
+ }
869
+ startPolling() {
870
+ this.stopPolling();
871
+ // Initiate block tracker internal tracking.
872
+ if (Object.keys(this.state.accounts).length > 0) {
873
+ // Adding this listener on block tracker triggers it to start polling.
874
+ this.blockTracker.on("latest", this.blockTrackerListener);
875
+ }
876
+ }
877
+ stopPolling() {
878
+ this.blockTracker.removeListener("latest", this.blockTrackerListener);
869
879
  }
870
880
  syncAccounts() {
871
881
  const {
@@ -3549,7 +3559,6 @@ class PreferencesController extends BasePreferencesController {
3549
3559
  config,
3550
3560
  state,
3551
3561
  provider,
3552
- blockTracker,
3553
3562
  signAuthMessage,
3554
3563
  getProviderConfig,
3555
3564
  setProviderConfig
@@ -3569,12 +3578,9 @@ class PreferencesController extends BasePreferencesController {
3569
3578
  _defineProperty(this, "getProviderConfig", void 0);
3570
3579
  _defineProperty(this, "setProviderConfig", void 0);
3571
3580
  _defineProperty(this, "provider", void 0);
3572
- _defineProperty(this, "blockTracker", void 0);
3573
3581
  this.provider = provider;
3574
3582
  this.getProviderConfig = getProviderConfig;
3575
3583
  this.setProviderConfig = setProviderConfig;
3576
- this.blockTracker = blockTracker;
3577
- log.info(this.blockTracker);
3578
3584
  }
3579
3585
  async poll(interval) {
3580
3586
  var _this$getAddressState;
@@ -3604,14 +3610,18 @@ class PreferencesController extends BasePreferencesController {
3604
3610
  locale = "en-US",
3605
3611
  type,
3606
3612
  signatures,
3607
- network,
3608
- web3AuthClientId
3613
+ web3AuthClientId,
3614
+ web3AuthNetwork
3609
3615
  } = params;
3610
- await super.init(address, userInfo, jwtToken, {
3616
+ await super.init({
3617
+ address,
3618
+ userInfo,
3619
+ idToken: jwtToken,
3611
3620
  type,
3612
- email: userInfo.email,
3613
- signatures,
3614
- network
3621
+ metadata: {
3622
+ email: userInfo.email,
3623
+ signatures
3624
+ }
3615
3625
  });
3616
3626
  const {
3617
3627
  aggregateVerifier,
@@ -3627,10 +3637,12 @@ class PreferencesController extends BasePreferencesController {
3627
3637
  verifier: aggregateVerifier || verifier,
3628
3638
  verifierId,
3629
3639
  locale,
3630
- address
3640
+ address,
3641
+ type,
3642
+ web3AuthNetwork
3631
3643
  });
3632
3644
  }
3633
- if (!rehydrate) await this.storeUserLogin({
3645
+ await this.storeUserLogin({
3634
3646
  verifier: aggregateVerifier || verifier,
3635
3647
  verifierId,
3636
3648
  options: {
@@ -3638,7 +3650,8 @@ class PreferencesController extends BasePreferencesController {
3638
3650
  rehydrate
3639
3651
  },
3640
3652
  address,
3641
- web3AuthClientId
3653
+ web3AuthClientId,
3654
+ web3AuthNetwork
3642
3655
  });
3643
3656
  }
3644
3657
  getSelectedAddress() {
@@ -3657,7 +3670,8 @@ class PreferencesController extends BasePreferencesController {
3657
3670
  default_public_address: defaultPublicAddress,
3658
3671
  customNetworks,
3659
3672
  customTokens,
3660
- customNfts
3673
+ customNfts,
3674
+ account_type: accountType
3661
3675
  } = user || {};
3662
3676
 
3663
3677
  // update latest data in state.
@@ -3669,7 +3683,8 @@ class PreferencesController extends BasePreferencesController {
3669
3683
  defaultPublicAddress: defaultPublicAddress || userPublicAddress,
3670
3684
  customTokens,
3671
3685
  customNfts,
3672
- customNetworks
3686
+ customNetworks,
3687
+ accountType: accountType
3673
3688
  }, address);
3674
3689
  return true;
3675
3690
  }
@@ -3729,10 +3744,21 @@ class PreferencesController extends BasePreferencesController {
3729
3744
  async refetchEtherscanTx(address) {
3730
3745
  var _this$getAddressState3;
3731
3746
  const selectedAddress = address || this.state.selectedAddress;
3732
- if ((_this$getAddressState3 = this.getAddressState(selectedAddress)) !== null && _this$getAddressState3 !== void 0 && _this$getAddressState3.jwtToken) ;
3747
+ if ((_this$getAddressState3 = this.getAddressState(selectedAddress)) !== null && _this$getAddressState3 !== void 0 && _this$getAddressState3.jwtToken) {
3748
+ const {
3749
+ chainId
3750
+ } = this.getProviderConfig();
3751
+ if (ETHERSCAN_SUPPORTED_CHAINS.includes(chainId)) {
3752
+ return this.fetchEtherscanTx({
3753
+ selectedAddress,
3754
+ chainId: this.getProviderConfig().chainId
3755
+ });
3756
+ }
3757
+ }
3733
3758
  }
3734
3759
  async fetchEtherscanTx(parameters) {
3735
3760
  try {
3761
+ // TODO: rewrite this api to use chainId
3736
3762
  const url = new URL(`${this.config.api}/etherscan`);
3737
3763
  Object.keys(parameters).forEach(key => url.searchParams.append(key, parameters[key]));
3738
3764
  const response = await get(url.href, this.headers(parameters.selectedAddress));