@metamask-previews/earn-controller 4.0.0-preview-fed19434 → 4.0.0-preview-e0bc4b4b

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.
@@ -1,10 +1,10 @@
1
1
  import type { AccountsControllerGetSelectedAccountAction, AccountsControllerSelectedAccountChangeEvent } from "@metamask/accounts-controller";
2
2
  import type { ControllerGetStateAction, ControllerStateChangeEvent, RestrictedMessenger } from "@metamask/base-controller";
3
3
  import { BaseController } from "@metamask/base-controller";
4
- import type { NetworkControllerGetNetworkClientByIdAction, NetworkControllerGetStateAction, NetworkControllerStateChangeEvent } from "@metamask/network-controller";
4
+ import type { NetworkControllerGetNetworkClientByIdAction, NetworkControllerStateChangeEvent } from "@metamask/network-controller";
5
5
  import { type LendingMarket, type PooledStake, type VaultData, type VaultDailyApy, type VaultApyAverages, type LendingPosition, type GasLimitParams, type HistoricLendingMarketApys, EarnEnvironments } from "@metamask/stake-sdk";
6
6
  import { type TransactionController, type TransactionControllerTransactionConfirmedEvent } from "@metamask/transaction-controller";
7
- import type { RefreshEarnEligibilityOptions, RefreshLendingEligibilityOptions, RefreshLendingPositionsOptions, RefreshPooledStakesOptions, RefreshPooledStakingDataOptions } from "./types.mjs";
7
+ import type { RefreshEarnEligibilityOptions, RefreshLendingEligibilityOptions, RefreshLendingPositionsOptions, RefreshPooledStakesOptions, RefreshPooledStakingDataOptions, RefreshPooledStakingVaultDailyApysOptions } from "./types.mjs";
8
8
  export declare const controllerName = "EarnController";
9
9
  export type PooledStakingState = {
10
10
  [chainId: number]: {
@@ -77,7 +77,7 @@ export type EarnControllerActions = EarnControllerGetStateAction;
77
77
  /**
78
78
  * All actions that EarnController calls internally.
79
79
  */
80
- export type AllowedActions = NetworkControllerGetNetworkClientByIdAction | NetworkControllerGetStateAction | AccountsControllerGetSelectedAccountAction;
80
+ export type AllowedActions = NetworkControllerGetNetworkClientByIdAction | AccountsControllerGetSelectedAccountAction;
81
81
  /**
82
82
  * The event that EarnController publishes when updating state.
83
83
  */
@@ -89,7 +89,7 @@ export type EarnControllerEvents = EarnControllerStateChangeEvent;
89
89
  /**
90
90
  * All events that EarnController subscribes to internally.
91
91
  */
92
- export type AllowedEvents = AccountsControllerSelectedAccountChangeEvent | NetworkControllerStateChangeEvent | TransactionControllerTransactionConfirmedEvent;
92
+ export type AllowedEvents = AccountsControllerSelectedAccountChangeEvent | TransactionControllerTransactionConfirmedEvent | NetworkControllerStateChangeEvent;
93
93
  /**
94
94
  * The messenger which is restricted to actions and events accessed by
95
95
  * EarnController.
@@ -100,10 +100,11 @@ export type EarnControllerMessenger = RestrictedMessenger<typeof controllerName,
100
100
  */
101
101
  export declare class EarnController extends BaseController<typeof controllerName, EarnControllerState, EarnControllerMessenger> {
102
102
  #private;
103
- constructor({ messenger, state, addTransactionFn, env, }: {
103
+ constructor({ messenger, state, addTransactionFn, selectedNetworkClientId, env, }: {
104
104
  messenger: EarnControllerMessenger;
105
105
  state?: Partial<EarnControllerState>;
106
106
  addTransactionFn: typeof TransactionController.prototype.addTransaction;
107
+ selectedNetworkClientId: string;
107
108
  env?: EarnEnvironments;
108
109
  });
109
110
  /**
@@ -114,9 +115,10 @@ export declare class EarnController extends BaseController<typeof controllerName
114
115
  * @param options - Optional arguments
115
116
  * @param [options.resetCache] - Control whether the BE cache should be invalidated (optional).
116
117
  * @param [options.address] - The address to refresh pooled stakes for (optional).
118
+ * @param [options.chainId] - The chain id to refresh pooled stakes for (optional).
117
119
  * @returns A promise that resolves when the stakes data has been updated
118
120
  */
119
- refreshPooledStakes({ resetCache, address, }?: RefreshPooledStakesOptions): Promise<void>;
121
+ refreshPooledStakes({ resetCache, address, chainId, }?: RefreshPooledStakesOptions): Promise<void>;
120
122
  /**
121
123
  * Refreshes the earn eligibility status for the current account.
122
124
  * Updates the eligibility status in the controller state based on the location and address blocklist for compliance.
@@ -133,25 +135,29 @@ export declare class EarnController extends BaseController<typeof controllerName
133
135
  * Updates the vault metadata in the controller state including APY, capacity,
134
136
  * fee percentage, total assets, and vault address.
135
137
  *
138
+ * @param [chainId] - The chain id to refresh pooled staking vault metadata for (optional).
136
139
  * @returns A promise that resolves when the vault metadata has been updated
137
140
  */
138
- refreshPooledStakingVaultMetadata(): Promise<void>;
141
+ refreshPooledStakingVaultMetadata(chainId?: number): Promise<void>;
139
142
  /**
140
143
  * Refreshes pooled staking vault daily apys for the current chain.
141
144
  * Updates the pooled staking vault daily apys controller state.
142
145
  *
143
- * @param days - The number of days to fetch pooled staking vault daily apys for (defaults to 365).
144
- * @param order - The order in which to fetch pooled staking vault daily apys. Descending order fetches the latest N days (latest working backwards). Ascending order fetches the oldest N days (oldest working forwards) (defaults to 'desc').
146
+ * @param [options] - The options for refreshing pooled staking vault daily apys.
147
+ * @param [options.chainId] - The chain id to refresh pooled staking vault daily apys for (defaults to Ethereum).
148
+ * @param [options.days] - The number of days to fetch pooled staking vault daily apys for (defaults to 365).
149
+ * @param [options.order] - The order in which to fetch pooled staking vault daily apys. Descending order fetches the latest N days (latest working backwards). Ascending order fetches the oldest N days (oldest working forwards) (defaults to 'desc').
145
150
  * @returns A promise that resolves when the pooled staking vault daily apys have been updated.
146
151
  */
147
- refreshPooledStakingVaultDailyApys(days?: number, order?: 'asc' | 'desc'): Promise<void>;
152
+ refreshPooledStakingVaultDailyApys({ chainId, days, order, }?: RefreshPooledStakingVaultDailyApysOptions): Promise<void>;
148
153
  /**
149
154
  * Refreshes pooled staking vault apy averages for the current chain.
150
155
  * Updates the pooled staking vault apy averages controller state.
151
156
  *
157
+ * @param [chainId] - The chain id to refresh pooled staking vault apy averages for (optional).
152
158
  * @returns A promise that resolves when the pooled staking vault apy averages have been updated.
153
159
  */
154
- refreshPooledStakingVaultApyAverages(): Promise<void>;
160
+ refreshPooledStakingVaultApyAverages(chainId?: number): Promise<void>;
155
161
  /**
156
162
  * Refreshes all pooled staking related data including stakes, eligibility, and vault data.
157
163
  * This method allows partial success, meaning some data may update while other requests fail.
@@ -203,7 +209,7 @@ export declare class EarnController extends BaseController<typeof controllerName
203
209
  *
204
210
  * @param options - Optional arguments
205
211
  * @param [options.address] - The address to get lending position history for (optional).
206
- * @param [options.chainId] - The chain id to get lending position history for (optional).
212
+ * @param options.chainId - The chain id to get lending position history for.
207
213
  * @param [options.positionId] - The position id to get lending position history for.
208
214
  * @param [options.marketId] - The market id to get lending position history for.
209
215
  * @param [options.marketAddress] - The market address to get lending position history for.
@@ -213,7 +219,7 @@ export declare class EarnController extends BaseController<typeof controllerName
213
219
  */
214
220
  getLendingPositionHistory({ address, chainId, positionId, marketId, marketAddress, protocol, days, }: {
215
221
  address?: string;
216
- chainId?: number;
222
+ chainId: number;
217
223
  positionId: string;
218
224
  marketId: string;
219
225
  marketAddress: string;
@@ -224,14 +230,14 @@ export declare class EarnController extends BaseController<typeof controllerName
224
230
  * Gets the lending market daily apys and averages for the current chain.
225
231
  *
226
232
  * @param options - Optional arguments
227
- * @param [options.chainId] - The chain id to get lending market daily apys and averages for (optional).
233
+ * @param options.chainId - The chain id to get lending market daily apys and averages for.
228
234
  * @param [options.protocol] - The protocol to get lending market daily apys and averages for.
229
235
  * @param [options.marketId] - The market id to get lending market daily apys and averages for.
230
236
  * @param [options.days] - The number of days to get lending market daily apys and averages for (optional).
231
237
  * @returns A promise that resolves when the lending market daily apys and averages have been updated
232
238
  */
233
239
  getLendingMarketDailyApysAndAverages({ chainId, protocol, marketId, days, }: {
234
- chainId?: number;
240
+ chainId: number;
235
241
  protocol: string;
236
242
  marketId: string;
237
243
  days?: number;
@@ -241,6 +247,7 @@ export declare class EarnController extends BaseController<typeof controllerName
241
247
  *
242
248
  * @param options - The options for the lending deposit transaction.
243
249
  * @param options.amount - The amount to deposit.
250
+ * @param options.chainId - The chain ID for the lending deposit transaction.
244
251
  * @param options.protocol - The protocol of the lending market.
245
252
  * @param options.underlyingTokenAddress - The address of the underlying token.
246
253
  * @param options.gasOptions - The gas options for the transaction.
@@ -249,8 +256,9 @@ export declare class EarnController extends BaseController<typeof controllerName
249
256
  * @param options.txOptions - The transaction options for the transaction.
250
257
  * @returns A promise that resolves to the transaction hash.
251
258
  */
252
- executeLendingDeposit({ amount, protocol, underlyingTokenAddress, gasOptions, txOptions, }: {
259
+ executeLendingDeposit({ amount, chainId, protocol, underlyingTokenAddress, gasOptions, txOptions, }: {
253
260
  amount: string;
261
+ chainId: string;
254
262
  protocol: LendingMarket['protocol'];
255
263
  underlyingTokenAddress: string;
256
264
  gasOptions: {
@@ -264,6 +272,7 @@ export declare class EarnController extends BaseController<typeof controllerName
264
272
  *
265
273
  * @param options - The options for the lending withdraw transaction.
266
274
  * @param options.amount - The amount to withdraw.
275
+ * @param options.chainId - The chain ID for the lending withdraw transaction.
267
276
  * @param options.protocol - The protocol of the lending market.
268
277
  * @param options.underlyingTokenAddress - The address of the underlying token.
269
278
  * @param options.gasOptions - The gas options for the transaction.
@@ -272,8 +281,9 @@ export declare class EarnController extends BaseController<typeof controllerName
272
281
  * @param options.txOptions - The transaction options for the transaction.
273
282
  * @returns A promise that resolves to the transaction hash.
274
283
  */
275
- executeLendingWithdraw({ amount, protocol, underlyingTokenAddress, gasOptions, txOptions, }: {
284
+ executeLendingWithdraw({ amount, chainId, protocol, underlyingTokenAddress, gasOptions, txOptions, }: {
276
285
  amount: string;
286
+ chainId: string;
277
287
  protocol: LendingMarket['protocol'];
278
288
  underlyingTokenAddress: string;
279
289
  gasOptions: {
@@ -287,6 +297,7 @@ export declare class EarnController extends BaseController<typeof controllerName
287
297
  *
288
298
  * @param options - The options for the lending token approve transaction.
289
299
  * @param options.amount - The amount to approve.
300
+ * @param options.chainId - The chain ID for the lending token approve transaction.
290
301
  * @param options.protocol - The protocol of the lending market.
291
302
  * @param options.underlyingTokenAddress - The address of the underlying token.
292
303
  * @param options.gasOptions - The gas options for the transaction.
@@ -295,9 +306,10 @@ export declare class EarnController extends BaseController<typeof controllerName
295
306
  * @param options.txOptions - The transaction options for the transaction.
296
307
  * @returns A promise that resolves to the transaction hash.
297
308
  */
298
- executeLendingTokenApprove({ protocol, amount, underlyingTokenAddress, gasOptions, txOptions, }: {
309
+ executeLendingTokenApprove({ protocol, amount, chainId, underlyingTokenAddress, gasOptions, txOptions, }: {
299
310
  protocol: LendingMarket['protocol'];
300
311
  amount: string;
312
+ chainId: string;
301
313
  underlyingTokenAddress: string;
302
314
  gasOptions: {
303
315
  gasLimit?: GasLimitParams;
@@ -1 +1 @@
1
- {"version":3,"file":"EarnController.d.mts","sourceRoot":"","sources":["../src/EarnController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EarnController.d.mts","sourceRoot":"","sources":["../src/EarnController.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,12 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
9
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _EarnController_instances, _EarnController_earnSDK, _EarnController_selectedNetworkClientId, _EarnController_earnApiService, _EarnController_addTransactionFn, _EarnController_supportedPooledStakingChains, _EarnController_env, _EarnController_initializeSDK, _EarnController_getCurrentAccount, _EarnController_getCurrentChainId, _EarnController_getActivePooledStakingChainId;
12
+ var _EarnController_instances, _EarnController_earnSDK, _EarnController_selectedNetworkClientId, _EarnController_earnApiService, _EarnController_addTransactionFn, _EarnController_supportedPooledStakingChains, _EarnController_env, _EarnController_initializeSDK, _EarnController_getCurrentAccount;
13
13
  import { Web3Provider } from "@ethersproject/providers";
14
14
  import { BaseController } from "@metamask/base-controller";
15
15
  import { convertHexToDecimal, toHex } from "@metamask/controller-utils";
16
- import { EarnSdk, EarnApiService, isSupportedLendingChain, EarnEnvironments } from "@metamask/stake-sdk";
17
- import { TransactionType, CHAIN_IDS } from "@metamask/transaction-controller";
18
- import { HOODI_TESTNET_CHAIN_ID_HEX } from "./constants.mjs";
16
+ import { EarnSdk, EarnApiService, isSupportedLendingChain, EarnEnvironments, ChainId, isSupportedPooledStakingChain } from "@metamask/stake-sdk";
17
+ import { TransactionType } from "@metamask/transaction-controller";
19
18
  export const controllerName = 'EarnController';
20
19
  const stakingTransactionTypes = new Set([
21
20
  TransactionType.stakingDeposit,
@@ -128,7 +127,7 @@ export function getDefaultEarnControllerState() {
128
127
  * EarnController manages DeFi earning opportunities across different protocols and chains.
129
128
  */
130
129
  export class EarnController extends BaseController {
131
- constructor({ messenger, state = {}, addTransactionFn, env = EarnEnvironments.PROD, }) {
130
+ constructor({ messenger, state = {}, addTransactionFn, selectedNetworkClientId, env = EarnEnvironments.PROD, }) {
132
131
  super({
133
132
  name: controllerName,
134
133
  metadata: earnControllerMetadata,
@@ -150,16 +149,12 @@ export class EarnController extends BaseController {
150
149
  // temporary array of supported chains
151
150
  // TODO: remove this once we export a supported chains list from the sdk
152
151
  // from sdk or api to get lending and pooled staking chains
153
- __classPrivateFieldSet(this, _EarnController_supportedPooledStakingChains, [
154
- CHAIN_IDS.MAINNET,
155
- HOODI_TESTNET_CHAIN_ID_HEX,
156
- ], "f");
152
+ __classPrivateFieldSet(this, _EarnController_supportedPooledStakingChains, [ChainId.ETHEREUM, ChainId.HOODI], "f");
157
153
  __classPrivateFieldSet(this, _EarnController_addTransactionFn, addTransactionFn, "f");
158
- __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_initializeSDK).call(this).catch(console.error);
154
+ __classPrivateFieldSet(this, _EarnController_selectedNetworkClientId, selectedNetworkClientId, "f");
155
+ __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_initializeSDK).call(this, selectedNetworkClientId).catch(console.error);
159
156
  this.refreshPooledStakingData().catch(console.error);
160
157
  this.refreshLendingData().catch(console.error);
161
- const { selectedNetworkClientId } = this.messagingSystem.call('NetworkController:getState');
162
- __classPrivateFieldSet(this, _EarnController_selectedNetworkClientId, selectedNetworkClientId, "f");
163
158
  // Listen for network changes
164
159
  this.messagingSystem.subscribe('NetworkController:stateChange', (networkControllerState) => {
165
160
  if (networkControllerState.selectedNetworkClientId !==
@@ -218,18 +213,22 @@ export class EarnController extends BaseController {
218
213
  * @param options - Optional arguments
219
214
  * @param [options.resetCache] - Control whether the BE cache should be invalidated (optional).
220
215
  * @param [options.address] - The address to refresh pooled stakes for (optional).
216
+ * @param [options.chainId] - The chain id to refresh pooled stakes for (optional).
221
217
  * @returns A promise that resolves when the stakes data has been updated
222
218
  */
223
- async refreshPooledStakes({ resetCache = false, address, } = {}) {
219
+ async refreshPooledStakes({ resetCache = false, address, chainId = ChainId.ETHEREUM, } = {}) {
224
220
  const addressToUse = address ?? __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentAccount).call(this)?.address;
225
221
  if (!addressToUse) {
226
222
  return;
227
223
  }
228
- const chainId = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getActivePooledStakingChainId).call(this);
229
- const { accounts, exchangeRate } = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getPooledStakes([addressToUse], chainId, resetCache);
224
+ const chainIdToUse = isSupportedPooledStakingChain(chainId)
225
+ ? chainId
226
+ : ChainId.ETHEREUM;
227
+ const { accounts, exchangeRate } = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getPooledStakes([addressToUse], chainIdToUse, resetCache);
230
228
  this.update((state) => {
231
- const chainState = state.pooled_staking[chainId] ?? DEFAULT_POOLED_STAKING_CHAIN_STATE;
232
- state.pooled_staking[chainId] = {
229
+ const chainState = state.pooled_staking[chainIdToUse] ??
230
+ DEFAULT_POOLED_STAKING_CHAIN_STATE;
231
+ state.pooled_staking[chainIdToUse] = {
233
232
  ...chainState,
234
233
  pooledStakes: accounts[0],
235
234
  exchangeRate,
@@ -264,14 +263,18 @@ export class EarnController extends BaseController {
264
263
  * Updates the vault metadata in the controller state including APY, capacity,
265
264
  * fee percentage, total assets, and vault address.
266
265
  *
266
+ * @param [chainId] - The chain id to refresh pooled staking vault metadata for (optional).
267
267
  * @returns A promise that resolves when the vault metadata has been updated
268
268
  */
269
- async refreshPooledStakingVaultMetadata() {
270
- const chainId = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getActivePooledStakingChainId).call(this);
271
- const vaultMetadata = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultData(chainId);
269
+ async refreshPooledStakingVaultMetadata(chainId = ChainId.ETHEREUM) {
270
+ const chainIdToUse = isSupportedPooledStakingChain(chainId)
271
+ ? chainId
272
+ : ChainId.ETHEREUM;
273
+ const vaultMetadata = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultData(chainIdToUse);
272
274
  this.update((state) => {
273
- const chainState = state.pooled_staking[chainId] ?? DEFAULT_POOLED_STAKING_CHAIN_STATE;
274
- state.pooled_staking[chainId] = {
275
+ const chainState = state.pooled_staking[chainIdToUse] ??
276
+ DEFAULT_POOLED_STAKING_CHAIN_STATE;
277
+ state.pooled_staking[chainIdToUse] = {
275
278
  ...chainState,
276
279
  vaultMetadata,
277
280
  };
@@ -281,16 +284,21 @@ export class EarnController extends BaseController {
281
284
  * Refreshes pooled staking vault daily apys for the current chain.
282
285
  * Updates the pooled staking vault daily apys controller state.
283
286
  *
284
- * @param days - The number of days to fetch pooled staking vault daily apys for (defaults to 365).
285
- * @param order - The order in which to fetch pooled staking vault daily apys. Descending order fetches the latest N days (latest working backwards). Ascending order fetches the oldest N days (oldest working forwards) (defaults to 'desc').
287
+ * @param [options] - The options for refreshing pooled staking vault daily apys.
288
+ * @param [options.chainId] - The chain id to refresh pooled staking vault daily apys for (defaults to Ethereum).
289
+ * @param [options.days] - The number of days to fetch pooled staking vault daily apys for (defaults to 365).
290
+ * @param [options.order] - The order in which to fetch pooled staking vault daily apys. Descending order fetches the latest N days (latest working backwards). Ascending order fetches the oldest N days (oldest working forwards) (defaults to 'desc').
286
291
  * @returns A promise that resolves when the pooled staking vault daily apys have been updated.
287
292
  */
288
- async refreshPooledStakingVaultDailyApys(days = 365, order = 'desc') {
289
- const chainId = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getActivePooledStakingChainId).call(this);
290
- const vaultDailyApys = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultDailyApys(chainId, days, order);
293
+ async refreshPooledStakingVaultDailyApys({ chainId = ChainId.ETHEREUM, days = 365, order = 'desc', } = {}) {
294
+ const chainIdToUse = isSupportedPooledStakingChain(chainId)
295
+ ? chainId
296
+ : ChainId.ETHEREUM;
297
+ const vaultDailyApys = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultDailyApys(chainIdToUse, days, order);
291
298
  this.update((state) => {
292
- const chainState = state.pooled_staking[chainId] ?? DEFAULT_POOLED_STAKING_CHAIN_STATE;
293
- state.pooled_staking[chainId] = {
299
+ const chainState = state.pooled_staking[chainIdToUse] ??
300
+ DEFAULT_POOLED_STAKING_CHAIN_STATE;
301
+ state.pooled_staking[chainIdToUse] = {
294
302
  ...chainState,
295
303
  vaultDailyApys,
296
304
  };
@@ -300,14 +308,18 @@ export class EarnController extends BaseController {
300
308
  * Refreshes pooled staking vault apy averages for the current chain.
301
309
  * Updates the pooled staking vault apy averages controller state.
302
310
  *
311
+ * @param [chainId] - The chain id to refresh pooled staking vault apy averages for (optional).
303
312
  * @returns A promise that resolves when the pooled staking vault apy averages have been updated.
304
313
  */
305
- async refreshPooledStakingVaultApyAverages() {
306
- const chainId = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getActivePooledStakingChainId).call(this);
307
- const vaultApyAverages = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultApyAverages(chainId);
314
+ async refreshPooledStakingVaultApyAverages(chainId = ChainId.ETHEREUM) {
315
+ const chainIdToUse = isSupportedPooledStakingChain(chainId)
316
+ ? chainId
317
+ : ChainId.ETHEREUM;
318
+ const vaultApyAverages = await __classPrivateFieldGet(this, _EarnController_earnApiService, "f").pooledStaking.getVaultApyAverages(chainIdToUse);
308
319
  this.update((state) => {
309
- const chainState = state.pooled_staking[chainId] ?? DEFAULT_POOLED_STAKING_CHAIN_STATE;
310
- state.pooled_staking[chainId] = {
320
+ const chainState = state.pooled_staking[chainIdToUse] ??
321
+ DEFAULT_POOLED_STAKING_CHAIN_STATE;
322
+ state.pooled_staking[chainIdToUse] = {
311
323
  ...chainState,
312
324
  vaultApyAverages,
313
325
  };
@@ -326,23 +338,25 @@ export class EarnController extends BaseController {
326
338
  */
327
339
  async refreshPooledStakingData({ resetCache, address, } = {}) {
328
340
  const errors = [];
329
- await Promise.all([
330
- this.refreshPooledStakes({ resetCache, address }).catch((error) => {
331
- errors.push(error);
332
- }),
333
- this.refreshEarnEligibility({ address }).catch((error) => {
334
- errors.push(error);
335
- }),
336
- this.refreshPooledStakingVaultMetadata().catch((error) => {
337
- errors.push(error);
338
- }),
339
- this.refreshPooledStakingVaultDailyApys().catch((error) => {
340
- errors.push(error);
341
- }),
342
- this.refreshPooledStakingVaultApyAverages().catch((error) => {
343
- errors.push(error);
344
- }),
345
- ]);
341
+ for (const chainId of __classPrivateFieldGet(this, _EarnController_supportedPooledStakingChains, "f")) {
342
+ await Promise.all([
343
+ this.refreshPooledStakes({ resetCache, address, chainId }).catch((error) => {
344
+ errors.push(error);
345
+ }),
346
+ this.refreshEarnEligibility({ address }).catch((error) => {
347
+ errors.push(error);
348
+ }),
349
+ this.refreshPooledStakingVaultMetadata(chainId).catch((error) => {
350
+ errors.push(error);
351
+ }),
352
+ this.refreshPooledStakingVaultDailyApys({ chainId }).catch((error) => {
353
+ errors.push(error);
354
+ }),
355
+ this.refreshPooledStakingVaultApyAverages(chainId).catch((error) => {
356
+ errors.push(error);
357
+ }),
358
+ ]);
359
+ }
346
360
  if (errors.length > 0) {
347
361
  throw new Error(`Failed to refresh some staking data: ${errors
348
362
  .map((e) => e.message)
@@ -443,7 +457,7 @@ export class EarnController extends BaseController {
443
457
  *
444
458
  * @param options - Optional arguments
445
459
  * @param [options.address] - The address to get lending position history for (optional).
446
- * @param [options.chainId] - The chain id to get lending position history for (optional).
460
+ * @param options.chainId - The chain id to get lending position history for.
447
461
  * @param [options.positionId] - The position id to get lending position history for.
448
462
  * @param [options.marketId] - The market id to get lending position history for.
449
463
  * @param [options.marketAddress] - The market address to get lending position history for.
@@ -453,34 +467,33 @@ export class EarnController extends BaseController {
453
467
  */
454
468
  getLendingPositionHistory({ address, chainId, positionId, marketId, marketAddress, protocol, days = 730, }) {
455
469
  const addressToUse = address ?? __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentAccount).call(this)?.address;
456
- const chainIdToUse = chainId ?? __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this);
457
- if (!addressToUse || !isSupportedLendingChain(chainIdToUse)) {
470
+ if (!addressToUse || !isSupportedLendingChain(chainId)) {
458
471
  return [];
459
472
  }
460
- return __classPrivateFieldGet(this, _EarnController_earnApiService, "f").lending.getPositionHistory(addressToUse, chainIdToUse, protocol, marketId, marketAddress, positionId, days);
473
+ return __classPrivateFieldGet(this, _EarnController_earnApiService, "f").lending.getPositionHistory(addressToUse, chainId, protocol, marketId, marketAddress, positionId, days);
461
474
  }
462
475
  /**
463
476
  * Gets the lending market daily apys and averages for the current chain.
464
477
  *
465
478
  * @param options - Optional arguments
466
- * @param [options.chainId] - The chain id to get lending market daily apys and averages for (optional).
479
+ * @param options.chainId - The chain id to get lending market daily apys and averages for.
467
480
  * @param [options.protocol] - The protocol to get lending market daily apys and averages for.
468
481
  * @param [options.marketId] - The market id to get lending market daily apys and averages for.
469
482
  * @param [options.days] - The number of days to get lending market daily apys and averages for (optional).
470
483
  * @returns A promise that resolves when the lending market daily apys and averages have been updated
471
484
  */
472
485
  getLendingMarketDailyApysAndAverages({ chainId, protocol, marketId, days = 365, }) {
473
- const chainIdToUse = chainId ?? __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this);
474
- if (!isSupportedLendingChain(chainIdToUse)) {
486
+ if (!isSupportedLendingChain(chainId)) {
475
487
  return undefined;
476
488
  }
477
- return __classPrivateFieldGet(this, _EarnController_earnApiService, "f").lending.getHistoricMarketApys(chainIdToUse, protocol, marketId, days);
489
+ return __classPrivateFieldGet(this, _EarnController_earnApiService, "f").lending.getHistoricMarketApys(chainId, protocol, marketId, days);
478
490
  }
479
491
  /**
480
492
  * Executes a lending deposit transaction.
481
493
  *
482
494
  * @param options - The options for the lending deposit transaction.
483
495
  * @param options.amount - The amount to deposit.
496
+ * @param options.chainId - The chain ID for the lending deposit transaction.
484
497
  * @param options.protocol - The protocol of the lending market.
485
498
  * @param options.underlyingTokenAddress - The address of the underlying token.
486
499
  * @param options.gasOptions - The gas options for the transaction.
@@ -489,7 +502,7 @@ export class EarnController extends BaseController {
489
502
  * @param options.txOptions - The transaction options for the transaction.
490
503
  * @returns A promise that resolves to the transaction hash.
491
504
  */
492
- async executeLendingDeposit({ amount, protocol, underlyingTokenAddress, gasOptions, txOptions, }) {
505
+ async executeLendingDeposit({ amount, chainId, protocol, underlyingTokenAddress, gasOptions, txOptions, }) {
493
506
  const address = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentAccount).call(this)?.address;
494
507
  const transactionData = await __classPrivateFieldGet(this, _EarnController_earnSDK, "f")?.contracts?.lending?.[protocol]?.[underlyingTokenAddress]?.encodeDepositTransactionData(amount, address, gasOptions);
495
508
  if (!transactionData) {
@@ -504,7 +517,7 @@ export class EarnController extends BaseController {
504
517
  const txHash = await __classPrivateFieldGet(this, _EarnController_addTransactionFn, "f").call(this, {
505
518
  ...transactionData,
506
519
  value: transactionData.value.toString(),
507
- chainId: toHex(__classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this)),
520
+ chainId: toHex(chainId),
508
521
  gasLimit,
509
522
  }, {
510
523
  ...txOptions,
@@ -517,6 +530,7 @@ export class EarnController extends BaseController {
517
530
  *
518
531
  * @param options - The options for the lending withdraw transaction.
519
532
  * @param options.amount - The amount to withdraw.
533
+ * @param options.chainId - The chain ID for the lending withdraw transaction.
520
534
  * @param options.protocol - The protocol of the lending market.
521
535
  * @param options.underlyingTokenAddress - The address of the underlying token.
522
536
  * @param options.gasOptions - The gas options for the transaction.
@@ -525,7 +539,7 @@ export class EarnController extends BaseController {
525
539
  * @param options.txOptions - The transaction options for the transaction.
526
540
  * @returns A promise that resolves to the transaction hash.
527
541
  */
528
- async executeLendingWithdraw({ amount, protocol, underlyingTokenAddress, gasOptions, txOptions, }) {
542
+ async executeLendingWithdraw({ amount, chainId, protocol, underlyingTokenAddress, gasOptions, txOptions, }) {
529
543
  const address = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentAccount).call(this)?.address;
530
544
  const transactionData = await __classPrivateFieldGet(this, _EarnController_earnSDK, "f")?.contracts?.lending?.[protocol]?.[underlyingTokenAddress]?.encodeWithdrawTransactionData(amount, address, gasOptions);
531
545
  if (!transactionData) {
@@ -540,7 +554,7 @@ export class EarnController extends BaseController {
540
554
  const txHash = await __classPrivateFieldGet(this, _EarnController_addTransactionFn, "f").call(this, {
541
555
  ...transactionData,
542
556
  value: transactionData.value.toString(),
543
- chainId: toHex(__classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this)),
557
+ chainId: toHex(chainId),
544
558
  gasLimit,
545
559
  }, {
546
560
  ...txOptions,
@@ -553,6 +567,7 @@ export class EarnController extends BaseController {
553
567
  *
554
568
  * @param options - The options for the lending token approve transaction.
555
569
  * @param options.amount - The amount to approve.
570
+ * @param options.chainId - The chain ID for the lending token approve transaction.
556
571
  * @param options.protocol - The protocol of the lending market.
557
572
  * @param options.underlyingTokenAddress - The address of the underlying token.
558
573
  * @param options.gasOptions - The gas options for the transaction.
@@ -561,7 +576,7 @@ export class EarnController extends BaseController {
561
576
  * @param options.txOptions - The transaction options for the transaction.
562
577
  * @returns A promise that resolves to the transaction hash.
563
578
  */
564
- async executeLendingTokenApprove({ protocol, amount, underlyingTokenAddress, gasOptions, txOptions, }) {
579
+ async executeLendingTokenApprove({ protocol, amount, chainId, underlyingTokenAddress, gasOptions, txOptions, }) {
565
580
  const address = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentAccount).call(this)?.address;
566
581
  const transactionData = await __classPrivateFieldGet(this, _EarnController_earnSDK, "f")?.contracts?.lending?.[protocol]?.[underlyingTokenAddress]?.encodeUnderlyingTokenApproveTransactionData(amount, address, gasOptions);
567
582
  if (!transactionData) {
@@ -576,7 +591,7 @@ export class EarnController extends BaseController {
576
591
  const txHash = await __classPrivateFieldGet(this, _EarnController_addTransactionFn, "f").call(this, {
577
592
  ...transactionData,
578
593
  value: transactionData.value.toString(),
579
- chainId: toHex(__classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this)),
594
+ chainId: toHex(chainId),
580
595
  gasLimit,
581
596
  }, {
582
597
  ...txOptions,
@@ -625,13 +640,10 @@ _EarnController_earnSDK = new WeakMap(), _EarnController_selectedNetworkClientId
625
640
  /**
626
641
  * Initializes the Earn SDK.
627
642
  *
628
- * @param networkClientId - The network client id to initialize the Earn SDK for (optional).
643
+ * @param networkClientId - The network client id to initialize the Earn SDK for.
629
644
  */
630
645
  async function _EarnController_initializeSDK(networkClientId) {
631
- const { selectedNetworkClientId } = networkClientId
632
- ? { selectedNetworkClientId: networkClientId }
633
- : this.messagingSystem.call('NetworkController:getState');
634
- const networkClient = this.messagingSystem.call('NetworkController:getNetworkClientById', selectedNetworkClientId);
646
+ const networkClient = this.messagingSystem.call('NetworkController:getNetworkClientById', networkClientId);
635
647
  if (!networkClient?.provider) {
636
648
  __classPrivateFieldSet(this, _EarnController_earnSDK, null, "f");
637
649
  return;
@@ -656,19 +668,5 @@ async function _EarnController_initializeSDK(networkClientId) {
656
668
  }
657
669
  }, _EarnController_getCurrentAccount = function _EarnController_getCurrentAccount() {
658
670
  return this.messagingSystem.call('AccountsController:getSelectedAccount');
659
- }, _EarnController_getCurrentChainId = function _EarnController_getCurrentChainId(networkClientId) {
660
- const networkClientIdToUse = networkClientId ??
661
- this.messagingSystem.call('NetworkController:getState')
662
- .selectedNetworkClientId;
663
- const { configuration: { chainId }, } = this.messagingSystem.call('NetworkController:getNetworkClientById', networkClientIdToUse);
664
- return convertHexToDecimal(chainId);
665
- }, _EarnController_getActivePooledStakingChainId = function _EarnController_getActivePooledStakingChainId() {
666
- const activeChainId = __classPrivateFieldGet(this, _EarnController_instances, "m", _EarnController_getCurrentChainId).call(this);
667
- if (!activeChainId ||
668
- !__classPrivateFieldGet(this, _EarnController_supportedPooledStakingChains, "f").includes(toHex(activeChainId))) {
669
- // Fallback to Ethereum Mainnet if chainId is not supported.
670
- return convertHexToDecimal(CHAIN_IDS.MAINNET);
671
- }
672
- return activeChainId;
673
671
  };
674
672
  //# sourceMappingURL=EarnController.mjs.map