@metamask/assets-controllers 101.0.1 → 103.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.
- package/CHANGELOG.md +54 -1
- package/dist/AccountTrackerController-method-action-types.cjs +1 -1
- package/dist/AccountTrackerController-method-action-types.cjs.map +1 -1
- package/dist/AccountTrackerController-method-action-types.d.cts +1 -1
- package/dist/AccountTrackerController-method-action-types.d.mts +1 -1
- package/dist/AccountTrackerController-method-action-types.mjs +1 -1
- package/dist/AccountTrackerController-method-action-types.mjs.map +1 -1
- package/dist/AssetsContractController-method-action-types.cjs +1 -1
- package/dist/AssetsContractController-method-action-types.cjs.map +1 -1
- package/dist/AssetsContractController-method-action-types.d.cts +1 -1
- package/dist/AssetsContractController-method-action-types.d.mts +1 -1
- package/dist/AssetsContractController-method-action-types.mjs +1 -1
- package/dist/AssetsContractController-method-action-types.mjs.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.cjs +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.cjs.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.cts +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.d.mts +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.mjs +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController-method-action-types.mjs.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController.cjs +1 -4
- package/dist/MultichainAssetsController/MultichainAssetsController.cjs.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController.d.cts +2 -2
- package/dist/MultichainAssetsController/MultichainAssetsController.d.cts.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController.d.mts +2 -2
- package/dist/MultichainAssetsController/MultichainAssetsController.d.mts.map +1 -1
- package/dist/MultichainAssetsController/MultichainAssetsController.mjs +1 -4
- package/dist/MultichainAssetsController/MultichainAssetsController.mjs.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.cjs +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.cjs.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.cts +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.d.mts +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.mjs +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController-method-action-types.mjs.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.cjs.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.cts +2 -2
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.cts.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts +2 -2
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.d.mts.map +1 -1
- package/dist/MultichainAssetsRatesController/MultichainAssetsRatesController.mjs.map +1 -1
- package/dist/MultichainBalancesController/MultichainBalancesController.cjs.map +1 -1
- package/dist/MultichainBalancesController/MultichainBalancesController.d.cts +2 -2
- package/dist/MultichainBalancesController/MultichainBalancesController.d.cts.map +1 -1
- package/dist/MultichainBalancesController/MultichainBalancesController.d.mts +2 -2
- package/dist/MultichainBalancesController/MultichainBalancesController.d.mts.map +1 -1
- package/dist/MultichainBalancesController/MultichainBalancesController.mjs.map +1 -1
- package/dist/TokenBalancesController-method-action-types.cjs +1 -1
- package/dist/TokenBalancesController-method-action-types.cjs.map +1 -1
- package/dist/TokenBalancesController-method-action-types.d.cts +1 -1
- package/dist/TokenBalancesController-method-action-types.d.mts +1 -1
- package/dist/TokenBalancesController-method-action-types.mjs +1 -1
- package/dist/TokenBalancesController-method-action-types.mjs.map +1 -1
- package/dist/TokenBalancesController.cjs +73 -39
- package/dist/TokenBalancesController.cjs.map +1 -1
- package/dist/TokenBalancesController.d.cts +20 -5
- package/dist/TokenBalancesController.d.cts.map +1 -1
- package/dist/TokenBalancesController.d.mts +20 -5
- package/dist/TokenBalancesController.d.mts.map +1 -1
- package/dist/TokenBalancesController.mjs +72 -39
- package/dist/TokenBalancesController.mjs.map +1 -1
- package/dist/TokenDetectionController-method-action-types.cjs +1 -1
- package/dist/TokenDetectionController-method-action-types.cjs.map +1 -1
- package/dist/TokenDetectionController-method-action-types.d.cts +1 -1
- package/dist/TokenDetectionController-method-action-types.d.mts +1 -1
- package/dist/TokenDetectionController-method-action-types.mjs +1 -1
- package/dist/TokenDetectionController-method-action-types.mjs.map +1 -1
- package/dist/TokensController-method-action-types.cjs +1 -1
- package/dist/TokensController-method-action-types.cjs.map +1 -1
- package/dist/TokensController-method-action-types.d.cts +1 -1
- package/dist/TokensController-method-action-types.d.mts +1 -1
- package/dist/TokensController-method-action-types.mjs +1 -1
- package/dist/TokensController-method-action-types.mjs.map +1 -1
- package/dist/multicall.cjs +2 -0
- package/dist/multicall.cjs.map +1 -1
- package/dist/multicall.d.cts.map +1 -1
- package/dist/multicall.d.mts.map +1 -1
- package/dist/multicall.mjs +2 -0
- package/dist/multicall.mjs.map +1 -1
- package/dist/selectors/token-selectors.cjs +2 -3
- package/dist/selectors/token-selectors.cjs.map +1 -1
- package/dist/selectors/token-selectors.d.cts +4 -42
- package/dist/selectors/token-selectors.d.cts.map +1 -1
- package/dist/selectors/token-selectors.d.mts +4 -42
- package/dist/selectors/token-selectors.d.mts.map +1 -1
- package/dist/selectors/token-selectors.mjs +2 -3
- package/dist/selectors/token-selectors.mjs.map +1 -1
- package/dist/token-prices-service/codefi-v2.cjs +9 -5
- package/dist/token-prices-service/codefi-v2.cjs.map +1 -1
- package/dist/token-prices-service/codefi-v2.d.cts +4 -2
- package/dist/token-prices-service/codefi-v2.d.cts.map +1 -1
- package/dist/token-prices-service/codefi-v2.d.mts +4 -2
- package/dist/token-prices-service/codefi-v2.d.mts.map +1 -1
- package/dist/token-prices-service/codefi-v2.mjs +9 -5
- package/dist/token-prices-service/codefi-v2.mjs.map +1 -1
- package/dist/utils/create-batch-handler.cjs +54 -0
- package/dist/utils/create-batch-handler.cjs.map +1 -0
- package/dist/utils/create-batch-handler.d.cts +16 -0
- package/dist/utils/create-batch-handler.d.cts.map +1 -0
- package/dist/utils/create-batch-handler.d.mts +16 -0
- package/dist/utils/create-batch-handler.d.mts.map +1 -0
- package/dist/utils/create-batch-handler.mjs +51 -0
- package/dist/utils/create-batch-handler.mjs.map +1 -0
- package/package.json +22 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenBalancesController.d.cts","sourceRoot":"","sources":["../src/TokenBalancesController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0CAA0C,EAC1C,oCAAoC,EACpC,+CAA+C,EAChD,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AAQnC,OAAO,KAAK,EAEV,yCAAyC,EACzC,wCAAwC,EACzC,+BAA+B;AAChC,OAAO,KAAK,EACV,oCAAoC,EACpC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,qCAAqC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,2CAA2C,EAC3C,+BAA+B,EAC/B,iCAAiC,EAElC,qCAAqC;AAEtC,OAAO,KAAK,EACV,mCAAmC,EACnC,qCAAqC,EACtC,yCAAyC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,0CAA0C;AAClF,OAAO,KAAK,EACV,sDAAsD,EACtD,8CAA8C,EAC/C,yCAAyC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAW3C,OAAO,KAAK,EAAE,sCAAsC,EAAE,uCAAmC;AACzF,OAAO,KAAK,EACV,kDAAkD,EAClD,kDAAkD,EACnD,2DAAuD;AASxD,OAAO,KAAK,EAAE,oCAAoC,EAAE,0DAAsD;AAC1G,OAAO,KAAK,EACV,yDAAyD,EACzD,oDAAoD,EACpD,0CAA0C,EAC3C,2DAAuD;AACxD,OAAO,KAAK,EACV,8BAA8B,EAE9B,gCAAgC,EACjC,+BAA2B;
|
|
1
|
+
{"version":3,"file":"TokenBalancesController.d.cts","sourceRoot":"","sources":["../src/TokenBalancesController.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,25 @@ import type { TokensControllerGetStateAction, TokensControllerStateChangeEvent }
|
|
|
16
16
|
export type ChainIdHex = Hex;
|
|
17
17
|
export type ChecksumAddress = Hex;
|
|
18
18
|
declare const CONTROLLER: "TokenBalancesController";
|
|
19
|
+
/** Debounce wait (ms) for coalescing rapid updateBalances calls before flush */
|
|
20
|
+
export declare const UPDATE_BALANCES_BATCH_MS = 200;
|
|
21
|
+
export type UpdateBalancesOptions = {
|
|
22
|
+
chainIds?: ChainIdHex[];
|
|
23
|
+
tokenAddresses?: string[];
|
|
24
|
+
queryAllAccounts?: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Merges two UpdateBalancesOptions per queue-and-merge rules:
|
|
28
|
+
* - chainIds: union of both lists when each option includes `chainIds`; if either omits `chainIds`, the merged field is undefined (all chains).
|
|
29
|
+
* - tokenAddresses: union of both lists when each option includes `tokenAddresses`; if either omits `tokenAddresses`, the merged field is undefined (all tokens).
|
|
30
|
+
* - queryAllAccounts: true if either is true.
|
|
31
|
+
* Exported for tests.
|
|
32
|
+
*
|
|
33
|
+
* @param a - First options (e.g. accumulated).
|
|
34
|
+
* @param b - Second options to merge in.
|
|
35
|
+
* @returns New merged options.
|
|
36
|
+
*/
|
|
37
|
+
export declare function mergeUpdateBalancesOptions(a: UpdateBalancesOptions, b: UpdateBalancesOptions): UpdateBalancesOptions;
|
|
19
38
|
export type TokenBalances = Record<ChecksumAddress, Record<ChainIdHex, Record<ChecksumAddress, Hex>>>;
|
|
20
39
|
export type TokenBalancesControllerState = {
|
|
21
40
|
tokenBalances: TokenBalances;
|
|
@@ -124,11 +143,7 @@ export declare class TokenBalancesController extends TokenBalancesController_bas
|
|
|
124
143
|
queryAllAccounts?: boolean;
|
|
125
144
|
}): Promise<void>;
|
|
126
145
|
updateChainPollingConfigs(configs: Record<ChainIdHex, ChainPollingConfig>, options?: UpdateChainPollingConfigsOptions): void;
|
|
127
|
-
updateBalances(
|
|
128
|
-
chainIds?: ChainIdHex[];
|
|
129
|
-
tokenAddresses?: string[];
|
|
130
|
-
queryAllAccounts?: boolean;
|
|
131
|
-
}): Promise<void>;
|
|
146
|
+
updateBalances(options?: UpdateBalancesOptions): Promise<void>;
|
|
132
147
|
resetState(): void;
|
|
133
148
|
destroy(): void;
|
|
134
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenBalancesController.d.mts","sourceRoot":"","sources":["../src/TokenBalancesController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0CAA0C,EAC1C,oCAAoC,EACpC,+CAA+C,EAChD,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AAQnC,OAAO,KAAK,EAEV,yCAAyC,EACzC,wCAAwC,EACzC,+BAA+B;AAChC,OAAO,KAAK,EACV,oCAAoC,EACpC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,qCAAqC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,2CAA2C,EAC3C,+BAA+B,EAC/B,iCAAiC,EAElC,qCAAqC;AAEtC,OAAO,KAAK,EACV,mCAAmC,EACnC,qCAAqC,EACtC,yCAAyC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,0CAA0C;AAClF,OAAO,KAAK,EACV,sDAAsD,EACtD,8CAA8C,EAC/C,yCAAyC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAW3C,OAAO,KAAK,EAAE,sCAAsC,EAAE,uCAAmC;AACzF,OAAO,KAAK,EACV,kDAAkD,EAClD,kDAAkD,EACnD,2DAAuD;AASxD,OAAO,KAAK,EAAE,oCAAoC,EAAE,0DAAsD;AAC1G,OAAO,KAAK,EACV,yDAAyD,EACzD,oDAAoD,EACpD,0CAA0C,EAC3C,2DAAuD;AACxD,OAAO,KAAK,EACV,8BAA8B,EAE9B,gCAAgC,EACjC,+BAA2B;
|
|
1
|
+
{"version":3,"file":"TokenBalancesController.d.mts","sourceRoot":"","sources":["../src/TokenBalancesController.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0CAA0C,EAC1C,oCAAoC,EACpC,+CAA+C,EAChD,sCAAsC;AACvC,OAAO,KAAK,EACV,wBAAwB,EACxB,0BAA0B,EAE3B,kCAAkC;AAQnC,OAAO,KAAK,EAEV,yCAAyC,EACzC,wCAAwC,EACzC,+BAA+B;AAChC,OAAO,KAAK,EACV,oCAAoC,EACpC,+BAA+B,EAC/B,0BAA0B,EAC1B,4BAA4B,EAC7B,qCAAqC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,4BAA4B;AACrD,OAAO,KAAK,EACV,2CAA2C,EAC3C,+BAA+B,EAC/B,iCAAiC,EAElC,qCAAqC;AAEtC,OAAO,KAAK,EACV,mCAAmC,EACnC,qCAAqC,EACtC,yCAAyC;AAC1C,OAAO,KAAK,EAAE,wBAAwB,EAAE,0CAA0C;AAClF,OAAO,KAAK,EACV,sDAAsD,EACtD,8CAA8C,EAC/C,yCAAyC;AAC1C,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAW3C,OAAO,KAAK,EAAE,sCAAsC,EAAE,uCAAmC;AACzF,OAAO,KAAK,EACV,kDAAkD,EAClD,kDAAkD,EACnD,2DAAuD;AASxD,OAAO,KAAK,EAAE,oCAAoC,EAAE,0DAAsD;AAC1G,OAAO,KAAK,EACV,yDAAyD,EACzD,oDAAoD,EACpD,0CAA0C,EAC3C,2DAAuD;AACxD,OAAO,KAAK,EACV,8BAA8B,EAE9B,gCAAgC,EACjC,+BAA2B;AAG5B,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC;AAC7B,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC;AAElC,QAAA,MAAM,UAAU,2BAAqC,CAAC;AAItD,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,qBAAqB,EACxB,CAAC,EAAE,qBAAqB,GACvB,qBAAqB,CASvB;AAWD,MAAM,MAAM,aAAa,GAAG,MAAM,CAChC,eAAe,EACf,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CACjD,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG,wBAAwB,CAC1E,OAAO,UAAU,EACjB,4BAA4B,CAC7B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GACtC,qCAAqC,GACrC,oCAAoC,CAAC;AAEzC,MAAM,MAAM,uCAAuC,GACjD,0BAA0B,CAAC,OAAO,UAAU,EAAE,4BAA4B,CAAC,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,GAAG,OAAO,UAAU,uBAAuB,CAAC;IAClD,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GACrC,uCAAuC,GACvC,kBAAkB,CAAC;AAEvB,MAAM,MAAM,cAAc,GACtB,2CAA2C,GAC3C,+BAA+B,GAC/B,8BAA8B,GAC9B,yDAAyD,GACzD,oDAAoD,GACpD,0CAA0C,GAC1C,mCAAmC,GACnC,0CAA0C,GAC1C,oCAAoC,GACpC,sCAAsC,GACtC,kDAAkD,GAClD,kDAAkD,GAClD,+BAA+B,GAC/B,wBAAwB,CAAC,4CAA4C,CAAC;AAE1E,MAAM,MAAM,aAAa,GACrB,gCAAgC,GAChC,qCAAqC,GACrC,iCAAiC,GACjC,oCAAoC,GACpC,0BAA0B,GAC1B,4BAA4B,GAC5B,yCAAyC,GACzC,wCAAwC,GACxC,+CAA+C,GAC/C,8CAA8C,GAC9C,sDAAsD,CAAC;AAE3D,MAAM,MAAM,gCAAgC,GAAG,SAAS,CACtD,OAAO,UAAU,EACjB,8BAA8B,GAAG,cAAc,EAC/C,6BAA6B,GAAG,aAAa,CAC9C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,gCAAgC,CAAC;IAC5C,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC9C,kEAAkE;IAClE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qFAAqF;IACrF,mBAAmB,CAAC,EAAE,MAAM,UAAU,EAAE,CAAC;IACzC,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC;IACtC,qBAAqB;IACrB,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAClC,gFAAgF;IAChF,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B,CAAC;AAWF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,YAAa,MAAM,KAAG,UAUlD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,cAAe,MAAM,KAAG;IAAC,MAAM;IAAE,OAAO;CAAC,GAAG,IAgBtE,CAAC;;;;;;;kBAcU,UAAU,EAAE;;;;;kBAAZ,UAAU,EAAE;;;kBAAZ,UAAU,EAAE;;;kBAAZ,UAAU,EAAE;;;;;kBAAZ,UAAU,EAAE;;kBAAZ,UAAU,EAAE;;;AADxB,qBAAa,uBAAwB,SAAQ,6BAG3C,OAAO,UAAU,EACjB,4BAA4B,EAC5B,gCAAgC,CACjC;;gBAqDa,EACV,SAAS,EACT,QAA8B,EAC9B,8BAA6E,EAC7E,qBAA0B,EAC1B,KAAU,EACV,qBAA4B,EAC5B,mBAA4C,EAC5C,qBAA2C,EAC3C,QAAQ,EACR,WAAiC,GAClC,EAAE,8BAA8B;IA0IjC;;;;;OAKG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IA+FQ,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,IAAI;IAyE7D,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA+BlE,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,kBAAkB;IAQ/C,YAAY,CAAC,EAC1B,QAAQ,EACR,gBAAwB,GACzB,EAAE;QACD,QAAQ,EAAE,UAAU,EAAE,CAAC;QACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjB,yBAAyB,CACvB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAC/C,OAAO,GAAE,gCAA4D,GACpE,IAAI;IAWD,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA8cxE,UAAU,IAAI,IAAI;IAmWT,OAAO,IAAI,IAAI;CAYzB;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -9,20 +9,42 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
10
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
11
|
};
|
|
12
|
-
var _TokenBalancesController_instances, _TokenBalancesController_platform, _TokenBalancesController_queryAllAccounts, _TokenBalancesController_accountsApiChainIds, _TokenBalancesController_allowExternalServices, _TokenBalancesController_isOnboarded, _TokenBalancesController_balanceFetchers, _TokenBalancesController_allTokens, _TokenBalancesController_detectedTokens, _TokenBalancesController_allIgnoredTokens, _TokenBalancesController_defaultInterval, _TokenBalancesController_websocketActivePollingInterval, _TokenBalancesController_chainPollingConfig, _TokenBalancesController_intervalPollingTimers, _TokenBalancesController_isControllerPollingActive, _TokenBalancesController_isUnlocked, _TokenBalancesController_requestedChainIds, _TokenBalancesController_statusChangeDebouncer, _TokenBalancesController_subscribeToControllers, _TokenBalancesController_normalizeAccountAddresses, _TokenBalancesController_chainIdsWithTokens, _TokenBalancesController_getProvider, _TokenBalancesController_getNetworkClient, _TokenBalancesController_createAccountsApiFetcher, _TokenBalancesController_startIntervalGroupPolling, _TokenBalancesController_startPollingForInterval, _TokenBalancesController_setPollingTimer, _TokenBalancesController_stopAllPolling, _TokenBalancesController_getTargetChains, _TokenBalancesController_getAccountsAndJwt, _TokenBalancesController_fetchAllBalances, _TokenBalancesController_filterByTokenAddresses, _TokenBalancesController_getAccountsToProcess, _TokenBalancesController_applyTokenBalancesToState, _TokenBalancesController_buildNativeBalanceUpdates, _TokenBalancesController_buildStakedBalanceUpdates, _TokenBalancesController_importUntrackedTokens, _TokenBalancesController_isTokenTracked, _TokenBalancesController_onTokensChanged, _TokenBalancesController_onNetworkChanged, _TokenBalancesController_onAccountRemoved, _TokenBalancesController_onAccountChanged, _TokenBalancesController_prepareBalanceUpdates, _TokenBalancesController_onAccountActivityBalanceUpdate, _TokenBalancesController_onAccountActivityStatusChanged, _TokenBalancesController_processAccumulatedStatusChanges;
|
|
12
|
+
var _TokenBalancesController_instances, _TokenBalancesController_platform, _TokenBalancesController_queryAllAccounts, _TokenBalancesController_accountsApiChainIds, _TokenBalancesController_allowExternalServices, _TokenBalancesController_isOnboarded, _TokenBalancesController_balanceFetchers, _TokenBalancesController_allTokens, _TokenBalancesController_detectedTokens, _TokenBalancesController_allIgnoredTokens, _TokenBalancesController_defaultInterval, _TokenBalancesController_websocketActivePollingInterval, _TokenBalancesController_chainPollingConfig, _TokenBalancesController_intervalPollingTimers, _TokenBalancesController_isControllerPollingActive, _TokenBalancesController_isUnlocked, _TokenBalancesController_requestedChainIds, _TokenBalancesController_statusChangeDebouncer, _TokenBalancesController_batchedUpdateBalances, _TokenBalancesController_subscribeToControllers, _TokenBalancesController_normalizeAccountAddresses, _TokenBalancesController_chainIdsWithTokens, _TokenBalancesController_getProvider, _TokenBalancesController_getNetworkClient, _TokenBalancesController_createAccountsApiFetcher, _TokenBalancesController_startIntervalGroupPolling, _TokenBalancesController_startPollingForInterval, _TokenBalancesController_setPollingTimer, _TokenBalancesController_stopAllPolling, _TokenBalancesController_executeUpdateBalances, _TokenBalancesController_getTargetChains, _TokenBalancesController_getAccountsAndJwt, _TokenBalancesController_fetchAllBalances, _TokenBalancesController_filterByTokenAddresses, _TokenBalancesController_getAccountsToProcess, _TokenBalancesController_applyTokenBalancesToState, _TokenBalancesController_buildNativeBalanceUpdates, _TokenBalancesController_buildStakedBalanceUpdates, _TokenBalancesController_importUntrackedTokens, _TokenBalancesController_isTokenTracked, _TokenBalancesController_onTokensChanged, _TokenBalancesController_onNetworkChanged, _TokenBalancesController_onAccountRemoved, _TokenBalancesController_onAccountChanged, _TokenBalancesController_prepareBalanceUpdates, _TokenBalancesController_onAccountActivityBalanceUpdate, _TokenBalancesController_onAccountActivityStatusChanged, _TokenBalancesController_processAccumulatedStatusChanges;
|
|
13
13
|
import { Web3Provider } from "@ethersproject/providers";
|
|
14
14
|
import { BNToHex, isValidHexAddress, safelyExecuteWithTimeout, toChecksumHexAddress, toHex } from "@metamask/controller-utils";
|
|
15
15
|
import { StaticIntervalPollingController } from "@metamask/polling-controller";
|
|
16
16
|
import { isCaipAssetType, isCaipChainId, isStrictHexString, parseCaipAssetType, parseCaipChainId } from "@metamask/utils";
|
|
17
17
|
import { produce } from "immer";
|
|
18
18
|
import $lodash from "lodash";
|
|
19
|
-
const { isEqual } = $lodash;
|
|
19
|
+
const { isEqual, union } = $lodash;
|
|
20
20
|
import { STAKING_CONTRACT_ADDRESS_BY_CHAINID } from "./AssetsContractController.mjs";
|
|
21
21
|
import { AccountsApiBalanceFetcher } from "./multi-chain-accounts-service/api-balance-fetcher.mjs";
|
|
22
22
|
import { RpcBalanceFetcher } from "./rpc-service/rpc-balance-fetcher.mjs";
|
|
23
|
+
import { createBatchedHandler } from "./utils/create-batch-handler.mjs";
|
|
23
24
|
const CONTROLLER = 'TokenBalancesController';
|
|
24
25
|
const DEFAULT_INTERVAL_MS = 30000; // 30 seconds
|
|
25
26
|
const DEFAULT_WEBSOCKET_ACTIVE_POLLING_INTERVAL_MS = 300000; // 5 minutes
|
|
27
|
+
/** Debounce wait (ms) for coalescing rapid updateBalances calls before flush */
|
|
28
|
+
export const UPDATE_BALANCES_BATCH_MS = 200;
|
|
29
|
+
/**
|
|
30
|
+
* Merges two UpdateBalancesOptions per queue-and-merge rules:
|
|
31
|
+
* - chainIds: union of both lists when each option includes `chainIds`; if either omits `chainIds`, the merged field is undefined (all chains).
|
|
32
|
+
* - tokenAddresses: union of both lists when each option includes `tokenAddresses`; if either omits `tokenAddresses`, the merged field is undefined (all tokens).
|
|
33
|
+
* - queryAllAccounts: true if either is true.
|
|
34
|
+
* Exported for tests.
|
|
35
|
+
*
|
|
36
|
+
* @param a - First options (e.g. accumulated).
|
|
37
|
+
* @param b - Second options to merge in.
|
|
38
|
+
* @returns New merged options.
|
|
39
|
+
*/
|
|
40
|
+
export function mergeUpdateBalancesOptions(a, b) {
|
|
41
|
+
const chainIds = a.chainIds && b.chainIds && union(a.chainIds, b.chainIds);
|
|
42
|
+
const tokenAddresses = a.tokenAddresses &&
|
|
43
|
+
b.tokenAddresses &&
|
|
44
|
+
union(a.tokenAddresses, b.tokenAddresses);
|
|
45
|
+
const queryAllAccounts = Boolean(a.queryAllAccounts) || Boolean(b.queryAllAccounts);
|
|
46
|
+
return { chainIds, tokenAddresses, queryAllAccounts };
|
|
47
|
+
}
|
|
26
48
|
const metadata = {
|
|
27
49
|
tokenBalances: {
|
|
28
50
|
includeInStateLogs: false,
|
|
@@ -109,6 +131,7 @@ export class TokenBalancesController extends StaticIntervalPollingController() {
|
|
|
109
131
|
timer: null,
|
|
110
132
|
pendingChanges: new Map(),
|
|
111
133
|
});
|
|
134
|
+
_TokenBalancesController_batchedUpdateBalances.set(this, void 0);
|
|
112
135
|
_TokenBalancesController_getProvider.set(this, (chainId) => {
|
|
113
136
|
const { networkConfigurationsByChainId } = this.messenger.call('NetworkController:getState');
|
|
114
137
|
const networkConfig = networkConfigurationsByChainId[chainId];
|
|
@@ -313,6 +336,11 @@ export class TokenBalancesController extends StaticIntervalPollingController() {
|
|
|
313
336
|
__classPrivateFieldSet(this, _TokenBalancesController_allIgnoredTokens, allIgnoredTokens, "f");
|
|
314
337
|
const { isUnlocked } = this.messenger.call('KeyringController:getState');
|
|
315
338
|
__classPrivateFieldSet(this, _TokenBalancesController_isUnlocked, isUnlocked, "f");
|
|
339
|
+
__classPrivateFieldSet(this, _TokenBalancesController_batchedUpdateBalances, createBatchedHandler((buffer) => buffer.length === 0
|
|
340
|
+
? {}
|
|
341
|
+
: buffer
|
|
342
|
+
.slice(1)
|
|
343
|
+
.reduce((acc, opts) => mergeUpdateBalancesOptions(acc, opts), buffer[0]), UPDATE_BALANCES_BATCH_MS, (merged) => __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_executeUpdateBalances).call(this, merged)), "f");
|
|
316
344
|
__classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_subscribeToControllers).call(this);
|
|
317
345
|
messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
|
|
318
346
|
}
|
|
@@ -355,7 +383,7 @@ export class TokenBalancesController extends StaticIntervalPollingController() {
|
|
|
355
383
|
});
|
|
356
384
|
}
|
|
357
385
|
async _executePoll({ chainIds, queryAllAccounts = false, }) {
|
|
358
|
-
await this.
|
|
386
|
+
await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_executeUpdateBalances).call(this, { chainIds, queryAllAccounts });
|
|
359
387
|
}
|
|
360
388
|
updateChainPollingConfigs(configs, options = { immediateUpdate: true }) {
|
|
361
389
|
Object.assign(__classPrivateFieldGet(this, _TokenBalancesController_chainPollingConfig, "f"), configs);
|
|
@@ -363,44 +391,11 @@ export class TokenBalancesController extends StaticIntervalPollingController() {
|
|
|
363
391
|
__classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_startIntervalGroupPolling).call(this, __classPrivateFieldGet(this, _TokenBalancesController_requestedChainIds, "f"), options.immediateUpdate);
|
|
364
392
|
}
|
|
365
393
|
}
|
|
366
|
-
async updateBalances(
|
|
394
|
+
async updateBalances(options = {}) {
|
|
367
395
|
if (!this.isActive) {
|
|
368
396
|
return;
|
|
369
397
|
}
|
|
370
|
-
|
|
371
|
-
if (!targetChains.length) {
|
|
372
|
-
return;
|
|
373
|
-
}
|
|
374
|
-
const { selectedAccount, allAccounts, jwtToken } = await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_getAccountsAndJwt).call(this);
|
|
375
|
-
const aggregatedBalances = await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_fetchAllBalances).call(this, {
|
|
376
|
-
targetChains,
|
|
377
|
-
selectedAccount,
|
|
378
|
-
allAccounts,
|
|
379
|
-
jwtToken,
|
|
380
|
-
queryAllAccounts: queryAllAccounts ?? __classPrivateFieldGet(this, _TokenBalancesController_queryAllAccounts, "f"),
|
|
381
|
-
});
|
|
382
|
-
const filteredAggregated = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_filterByTokenAddresses).call(this, aggregatedBalances, tokenAddresses);
|
|
383
|
-
const accountsToProcess = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_getAccountsToProcess).call(this, queryAllAccounts, allAccounts, selectedAccount);
|
|
384
|
-
const prev = this.state;
|
|
385
|
-
const next = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_applyTokenBalancesToState).call(this, {
|
|
386
|
-
prev,
|
|
387
|
-
targetChains,
|
|
388
|
-
accountsToProcess,
|
|
389
|
-
balances: filteredAggregated,
|
|
390
|
-
});
|
|
391
|
-
if (!isEqual(prev, next)) {
|
|
392
|
-
this.update(() => next);
|
|
393
|
-
const accountTrackerState = this.messenger.call('AccountTrackerController:getState');
|
|
394
|
-
const nativeUpdates = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_buildNativeBalanceUpdates).call(this, filteredAggregated, accountTrackerState);
|
|
395
|
-
if (nativeUpdates.length > 0) {
|
|
396
|
-
this.messenger.call('AccountTrackerController:updateNativeBalances', nativeUpdates);
|
|
397
|
-
}
|
|
398
|
-
const stakedUpdates = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_buildStakedBalanceUpdates).call(this, filteredAggregated, accountTrackerState);
|
|
399
|
-
if (stakedUpdates.length > 0) {
|
|
400
|
-
this.messenger.call('AccountTrackerController:updateStakedBalances', stakedUpdates);
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_importUntrackedTokens).call(this, filteredAggregated);
|
|
398
|
+
await __classPrivateFieldGet(this, _TokenBalancesController_batchedUpdateBalances, "f").call(this, options);
|
|
404
399
|
}
|
|
405
400
|
resetState() {
|
|
406
401
|
this.update(() => ({ tokenBalances: {} }));
|
|
@@ -416,7 +411,7 @@ export class TokenBalancesController extends StaticIntervalPollingController() {
|
|
|
416
411
|
super.destroy();
|
|
417
412
|
}
|
|
418
413
|
}
|
|
419
|
-
_TokenBalancesController_platform = new WeakMap(), _TokenBalancesController_queryAllAccounts = new WeakMap(), _TokenBalancesController_accountsApiChainIds = new WeakMap(), _TokenBalancesController_allowExternalServices = new WeakMap(), _TokenBalancesController_isOnboarded = new WeakMap(), _TokenBalancesController_balanceFetchers = new WeakMap(), _TokenBalancesController_allTokens = new WeakMap(), _TokenBalancesController_detectedTokens = new WeakMap(), _TokenBalancesController_allIgnoredTokens = new WeakMap(), _TokenBalancesController_defaultInterval = new WeakMap(), _TokenBalancesController_websocketActivePollingInterval = new WeakMap(), _TokenBalancesController_chainPollingConfig = new WeakMap(), _TokenBalancesController_intervalPollingTimers = new WeakMap(), _TokenBalancesController_isControllerPollingActive = new WeakMap(), _TokenBalancesController_isUnlocked = new WeakMap(), _TokenBalancesController_requestedChainIds = new WeakMap(), _TokenBalancesController_statusChangeDebouncer = new WeakMap(), _TokenBalancesController_getProvider = new WeakMap(), _TokenBalancesController_getNetworkClient = new WeakMap(), _TokenBalancesController_createAccountsApiFetcher = new WeakMap(), _TokenBalancesController_onTokensChanged = new WeakMap(), _TokenBalancesController_onNetworkChanged = new WeakMap(), _TokenBalancesController_onAccountRemoved = new WeakMap(), _TokenBalancesController_onAccountChanged = new WeakMap(), _TokenBalancesController_onAccountActivityBalanceUpdate = new WeakMap(), _TokenBalancesController_onAccountActivityStatusChanged = new WeakMap(), _TokenBalancesController_instances = new WeakSet(), _TokenBalancesController_subscribeToControllers = function _TokenBalancesController_subscribeToControllers() {
|
|
414
|
+
_TokenBalancesController_platform = new WeakMap(), _TokenBalancesController_queryAllAccounts = new WeakMap(), _TokenBalancesController_accountsApiChainIds = new WeakMap(), _TokenBalancesController_allowExternalServices = new WeakMap(), _TokenBalancesController_isOnboarded = new WeakMap(), _TokenBalancesController_balanceFetchers = new WeakMap(), _TokenBalancesController_allTokens = new WeakMap(), _TokenBalancesController_detectedTokens = new WeakMap(), _TokenBalancesController_allIgnoredTokens = new WeakMap(), _TokenBalancesController_defaultInterval = new WeakMap(), _TokenBalancesController_websocketActivePollingInterval = new WeakMap(), _TokenBalancesController_chainPollingConfig = new WeakMap(), _TokenBalancesController_intervalPollingTimers = new WeakMap(), _TokenBalancesController_isControllerPollingActive = new WeakMap(), _TokenBalancesController_isUnlocked = new WeakMap(), _TokenBalancesController_requestedChainIds = new WeakMap(), _TokenBalancesController_statusChangeDebouncer = new WeakMap(), _TokenBalancesController_batchedUpdateBalances = new WeakMap(), _TokenBalancesController_getProvider = new WeakMap(), _TokenBalancesController_getNetworkClient = new WeakMap(), _TokenBalancesController_createAccountsApiFetcher = new WeakMap(), _TokenBalancesController_onTokensChanged = new WeakMap(), _TokenBalancesController_onNetworkChanged = new WeakMap(), _TokenBalancesController_onAccountRemoved = new WeakMap(), _TokenBalancesController_onAccountChanged = new WeakMap(), _TokenBalancesController_onAccountActivityBalanceUpdate = new WeakMap(), _TokenBalancesController_onAccountActivityStatusChanged = new WeakMap(), _TokenBalancesController_instances = new WeakSet(), _TokenBalancesController_subscribeToControllers = function _TokenBalancesController_subscribeToControllers() {
|
|
420
415
|
this.messenger.subscribe('TokensController:stateChange', (tokensState) => {
|
|
421
416
|
__classPrivateFieldGet(this, _TokenBalancesController_onTokensChanged, "f").call(this, tokensState).catch((error) => {
|
|
422
417
|
console.warn('Error handling token state change:', error);
|
|
@@ -523,6 +518,44 @@ _TokenBalancesController_platform = new WeakMap(), _TokenBalancesController_quer
|
|
|
523
518
|
__classPrivateFieldSet(this, _TokenBalancesController_requestedChainIds, [], "f");
|
|
524
519
|
__classPrivateFieldGet(this, _TokenBalancesController_intervalPollingTimers, "f").forEach((timer) => clearInterval(timer));
|
|
525
520
|
__classPrivateFieldGet(this, _TokenBalancesController_intervalPollingTimers, "f").clear();
|
|
521
|
+
}, _TokenBalancesController_executeUpdateBalances = async function _TokenBalancesController_executeUpdateBalances({ chainIds, tokenAddresses, queryAllAccounts = false, } = {}) {
|
|
522
|
+
if (!this.isActive) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
const targetChains = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_getTargetChains).call(this, chainIds);
|
|
526
|
+
if (!targetChains.length) {
|
|
527
|
+
return;
|
|
528
|
+
}
|
|
529
|
+
const { selectedAccount, allAccounts, jwtToken } = await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_getAccountsAndJwt).call(this);
|
|
530
|
+
const aggregatedBalances = await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_fetchAllBalances).call(this, {
|
|
531
|
+
targetChains,
|
|
532
|
+
selectedAccount,
|
|
533
|
+
allAccounts,
|
|
534
|
+
jwtToken,
|
|
535
|
+
queryAllAccounts: queryAllAccounts ?? __classPrivateFieldGet(this, _TokenBalancesController_queryAllAccounts, "f"),
|
|
536
|
+
});
|
|
537
|
+
const filteredAggregated = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_filterByTokenAddresses).call(this, aggregatedBalances, tokenAddresses);
|
|
538
|
+
const accountsToProcess = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_getAccountsToProcess).call(this, queryAllAccounts, allAccounts, selectedAccount);
|
|
539
|
+
const prev = this.state;
|
|
540
|
+
const next = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_applyTokenBalancesToState).call(this, {
|
|
541
|
+
prev,
|
|
542
|
+
targetChains,
|
|
543
|
+
accountsToProcess,
|
|
544
|
+
balances: filteredAggregated,
|
|
545
|
+
});
|
|
546
|
+
if (!isEqual(prev, next)) {
|
|
547
|
+
this.update(() => next);
|
|
548
|
+
const accountTrackerState = this.messenger.call('AccountTrackerController:getState');
|
|
549
|
+
const nativeUpdates = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_buildNativeBalanceUpdates).call(this, filteredAggregated, accountTrackerState);
|
|
550
|
+
if (nativeUpdates.length > 0) {
|
|
551
|
+
this.messenger.call('AccountTrackerController:updateNativeBalances', nativeUpdates);
|
|
552
|
+
}
|
|
553
|
+
const stakedUpdates = __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_buildStakedBalanceUpdates).call(this, filteredAggregated, accountTrackerState);
|
|
554
|
+
if (stakedUpdates.length > 0) {
|
|
555
|
+
this.messenger.call('AccountTrackerController:updateStakedBalances', stakedUpdates);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
await __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_importUntrackedTokens).call(this, filteredAggregated);
|
|
526
559
|
}, _TokenBalancesController_getTargetChains = function _TokenBalancesController_getTargetChains(chainIds) {
|
|
527
560
|
return chainIds?.length ? chainIds : __classPrivateFieldGet(this, _TokenBalancesController_instances, "m", _TokenBalancesController_chainIdsWithTokens).call(this);
|
|
528
561
|
}, _TokenBalancesController_getAccountsAndJwt = async function _TokenBalancesController_getAccountsAndJwt() {
|