@toruslabs/ethereum-controllers 4.11.0 → 5.0.1

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.
@@ -1031,14 +1031,6 @@ class AccountTrackerController extends base_controllers_namespaceObject.BaseCont
1031
1031
  this.provider = provider;
1032
1032
  this.blockTracker = blockTracker;
1033
1033
  this.ethersProvider = new external_ethers_namespaceObject.BrowserProvider(this.provider, "any");
1034
-
1035
- // Initiate block tracker internal tracking.
1036
- this.blockTracker.on("latest", block => {
1037
- this.configure({
1038
- _currentBlock: block
1039
- });
1040
- this.refresh();
1041
- });
1042
1034
  this.getIdentities = getIdentities;
1043
1035
  this.getCurrentChainId = getCurrentChainId;
1044
1036
  onPreferencesStateChange(() => {
@@ -1046,6 +1038,24 @@ class AccountTrackerController extends base_controllers_namespaceObject.BaseCont
1046
1038
  const refreshNeeded = this.syncAccounts();
1047
1039
  if (refreshNeeded) this.refresh();
1048
1040
  });
1041
+ this.blockTrackerListener = this.blockTrackerListener.bind(this);
1042
+ }
1043
+ blockTrackerListener(block) {
1044
+ this.configure({
1045
+ _currentBlock: block
1046
+ });
1047
+ this.refresh();
1048
+ }
1049
+ startPolling() {
1050
+ this.stopPolling();
1051
+ // Initiate block tracker internal tracking.
1052
+ if (Object.keys(this.state.accounts).length > 0) {
1053
+ // Adding this listener on block tracker triggers it to start polling.
1054
+ this.blockTracker.on("latest", this.blockTrackerListener);
1055
+ }
1056
+ }
1057
+ stopPolling() {
1058
+ this.blockTracker.removeListener("latest", this.blockTrackerListener);
1049
1059
  }
1050
1060
  syncAccounts() {
1051
1061
  const {
@@ -4023,7 +4033,6 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4023
4033
  config,
4024
4034
  state,
4025
4035
  provider,
4026
- blockTracker,
4027
4036
  signAuthMessage,
4028
4037
  getProviderConfig,
4029
4038
  setProviderConfig
@@ -4043,12 +4052,9 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4043
4052
  defineProperty_default()(this, "getProviderConfig", void 0);
4044
4053
  defineProperty_default()(this, "setProviderConfig", void 0);
4045
4054
  defineProperty_default()(this, "provider", void 0);
4046
- defineProperty_default()(this, "blockTracker", void 0);
4047
4055
  this.provider = provider;
4048
4056
  this.getProviderConfig = getProviderConfig;
4049
4057
  this.setProviderConfig = setProviderConfig;
4050
- this.blockTracker = blockTracker;
4051
- external_loglevel_default().info(this.blockTracker);
4052
4058
  }
4053
4059
  async poll(interval) {
4054
4060
  var _this$getAddressState;
@@ -4078,14 +4084,18 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4078
4084
  locale = "en-US",
4079
4085
  type,
4080
4086
  signatures,
4081
- network,
4082
- web3AuthClientId
4087
+ web3AuthClientId,
4088
+ web3AuthNetwork
4083
4089
  } = params;
4084
- await super.init(address, userInfo, jwtToken, {
4090
+ await super.init({
4091
+ address,
4092
+ userInfo,
4093
+ idToken: jwtToken,
4085
4094
  type,
4086
- email: userInfo.email,
4087
- signatures,
4088
- network
4095
+ metadata: {
4096
+ email: userInfo.email,
4097
+ signatures
4098
+ }
4089
4099
  });
4090
4100
  const {
4091
4101
  aggregateVerifier,
@@ -4101,10 +4111,12 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4101
4111
  verifier: aggregateVerifier || verifier,
4102
4112
  verifierId,
4103
4113
  locale,
4104
- address
4114
+ address,
4115
+ type,
4116
+ web3AuthNetwork
4105
4117
  });
4106
4118
  }
4107
- if (!rehydrate) await this.storeUserLogin({
4119
+ await this.storeUserLogin({
4108
4120
  verifier: aggregateVerifier || verifier,
4109
4121
  verifierId,
4110
4122
  options: {
@@ -4112,7 +4124,8 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4112
4124
  rehydrate
4113
4125
  },
4114
4126
  address,
4115
- web3AuthClientId
4127
+ web3AuthClientId,
4128
+ web3AuthNetwork
4116
4129
  });
4117
4130
  }
4118
4131
  getSelectedAddress() {
@@ -4131,7 +4144,8 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4131
4144
  default_public_address: defaultPublicAddress,
4132
4145
  customNetworks,
4133
4146
  customTokens,
4134
- customNfts
4147
+ customNfts,
4148
+ account_type: accountType
4135
4149
  } = user || {};
4136
4150
 
4137
4151
  // update latest data in state.
@@ -4143,7 +4157,8 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4143
4157
  defaultPublicAddress: defaultPublicAddress || userPublicAddress,
4144
4158
  customTokens,
4145
4159
  customNfts,
4146
- customNetworks
4160
+ customNetworks,
4161
+ accountType: accountType
4147
4162
  }, address);
4148
4163
  return true;
4149
4164
  }
@@ -4204,17 +4219,20 @@ class PreferencesController extends base_controllers_namespaceObject.BasePrefere
4204
4219
  var _this$getAddressState3;
4205
4220
  const selectedAddress = address || this.state.selectedAddress;
4206
4221
  if ((_this$getAddressState3 = this.getAddressState(selectedAddress)) !== null && _this$getAddressState3 !== void 0 && _this$getAddressState3.jwtToken) {
4207
- // const selectedNetwork = this.getProviderConfig().rpcTarget;
4208
- // if (ETHERSCAN_SUPPORTED_NETWORKS.has(selectedNetwork)) {
4209
- // const data = await this.fetchEtherscanTx({ selectedAddress, selectedNetwork });
4210
- // if (data.length) {
4211
- // this.emit("addEtherscanTransactions", data, selectedNetwork);
4212
- // }
4213
- // }
4222
+ const {
4223
+ chainId
4224
+ } = this.getProviderConfig();
4225
+ if (ETHERSCAN_SUPPORTED_CHAINS.includes(chainId)) {
4226
+ return this.fetchEtherscanTx({
4227
+ selectedAddress,
4228
+ chainId: this.getProviderConfig().chainId
4229
+ });
4230
+ }
4214
4231
  }
4215
4232
  }
4216
4233
  async fetchEtherscanTx(parameters) {
4217
4234
  try {
4235
+ // TODO: rewrite this api to use chainId
4218
4236
  const url = new URL(`${this.config.api}/etherscan`);
4219
4237
  Object.keys(parameters).forEach(key => url.searchParams.append(key, parameters[key]));
4220
4238
  const response = await (0,http_helpers_namespaceObject.get)(url.href, this.headers(parameters.selectedAddress));