Skip to content

Commit ce61b87

Browse files
authored
fix: parallelize fetch native balances (#5680)
1 parent 9ed0318 commit ce61b87

File tree

3 files changed

+128
-67
lines changed

3 files changed

+128
-67
lines changed

packages/assets-controllers/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
- Refactor `TokenRatesController` to support processing multiple chains simultaneously ([#5645](https://github.com/MetaMask/core/pull/5645))
1919
- The controller now accepts an array of chain IDs instead of a single value, streamlining the polling process by iterating over all chains in one loop
20+
- Refactor `AccountTrackerController` to support processing multiple chains simultaneously ([#5680](https://github.com/MetaMask/core/pull/5680))
21+
- The controller now accepts an array of chain IDs instead of a single value, streamlining the polling process by iterating over all chains in one loop
2022

2123
### Removed
2224

2325
- **BREAKING:** Eliminate legacy network dependency handling in `TokenRatesController` ([#5645](https://github.com/MetaMask/core/pull/5645))
2426
- We're no longer relying on the currently selected network.
27+
- **BREAKING:** Eliminate legacy network dependency handling in `AccountTrackerController` ([#5680](https://github.com/MetaMask/core/pull/5680))
28+
- We're no longer relying on the currently selected network.
2529

2630
## [58.0.0]
2731

packages/assets-controllers/src/AccountTrackerController.test.ts

+25-25
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ describe('AccountTrackerController', () => {
127127
listAccounts: [mockAccount1, mockAccount2],
128128
},
129129
async ({ controller }) => {
130-
await controller.refresh();
130+
await controller.refresh(['mainnet']);
131131
expect(controller.state).toStrictEqual({
132132
accountsByChainId: {
133133
'0x1': {
@@ -154,7 +154,7 @@ describe('AccountTrackerController', () => {
154154
listAccounts: [ACCOUNT_1],
155155
},
156156
async ({ controller }) => {
157-
await controller.refresh();
157+
await controller.refresh(['mainnet']);
158158

159159
expect(controller.state).toStrictEqual({
160160
accountsByChainId: {
@@ -181,7 +181,7 @@ describe('AccountTrackerController', () => {
181181
listAccounts: [ACCOUNT_1, ACCOUNT_2],
182182
},
183183
async ({ controller }) => {
184-
await controller.refresh();
184+
await controller.refresh(['mainnet']);
185185

186186
expect(controller.state).toStrictEqual({
187187
accountsByChainId: {
@@ -207,7 +207,7 @@ describe('AccountTrackerController', () => {
207207
listAccounts: [ACCOUNT_1, ACCOUNT_2],
208208
},
209209
async ({ controller }) => {
210-
await controller.refresh();
210+
await controller.refresh(['mainnet']);
211211

212212
expect(controller.state).toStrictEqual({
213213
accountsByChainId: {
@@ -237,7 +237,7 @@ describe('AccountTrackerController', () => {
237237
listAccounts: [ACCOUNT_1, ACCOUNT_2],
238238
},
239239
async ({ controller }) => {
240-
await controller.refresh();
240+
await controller.refresh(['mainnet']);
241241

242242
expect(controller.state).toStrictEqual({
243243
accountsByChainId: {
@@ -272,7 +272,7 @@ describe('AccountTrackerController', () => {
272272
listAccounts: [ACCOUNT_1, ACCOUNT_2],
273273
},
274274
async ({ controller }) => {
275-
await controller.refresh();
275+
await controller.refresh(['mainnet']);
276276

277277
expect(controller.state).toStrictEqual({
278278
accountsByChainId: {
@@ -306,7 +306,7 @@ describe('AccountTrackerController', () => {
306306
listAccounts: [ACCOUNT_1, ACCOUNT_2],
307307
},
308308
async ({ controller }) => {
309-
await controller.refresh();
309+
await controller.refresh(['mainnet']);
310310

311311
expect(controller.state).toStrictEqual({
312312
accountsByChainId: {
@@ -366,7 +366,7 @@ describe('AccountTrackerController', () => {
366366
},
367367
},
368368
async ({ controller }) => {
369-
await controller.refresh(networkClientId);
369+
await controller.refresh(['networkClientId1']);
370370
expect(controller.state).toStrictEqual({
371371
accountsByChainId: {
372372
'0x1': {
@@ -403,7 +403,7 @@ describe('AccountTrackerController', () => {
403403
},
404404
},
405405
async ({ controller }) => {
406-
await controller.refresh(networkClientId);
406+
await controller.refresh(['networkClientId1']);
407407

408408
expect(controller.state).toStrictEqual({
409409
accountsByChainId: {
@@ -441,7 +441,7 @@ describe('AccountTrackerController', () => {
441441
},
442442
},
443443
async ({ controller }) => {
444-
await controller.refresh(networkClientId);
444+
await controller.refresh(['networkClientId1']);
445445

446446
expect(controller.state).toStrictEqual({
447447
accountsByChainId: {
@@ -477,7 +477,7 @@ describe('AccountTrackerController', () => {
477477
},
478478
},
479479
async ({ controller }) => {
480-
await controller.refresh(networkClientId);
480+
await controller.refresh(['networkClientId1']);
481481

482482
expect(controller.state).toStrictEqual({
483483
accountsByChainId: {
@@ -517,7 +517,7 @@ describe('AccountTrackerController', () => {
517517
},
518518
},
519519
async ({ controller }) => {
520-
await controller.refresh();
520+
await controller.refresh(['mainnet']);
521521

522522
expect(controller.state).toStrictEqual({
523523
accountsByChainId: {
@@ -558,7 +558,7 @@ describe('AccountTrackerController', () => {
558558
},
559559
},
560560
async ({ controller }) => {
561-
await controller.refresh();
561+
await controller.refresh(['mainnet']);
562562

563563
expect(controller.state).toStrictEqual({
564564
accountsByChainId: {
@@ -598,7 +598,7 @@ describe('AccountTrackerController', () => {
598598
},
599599
},
600600
async ({ controller }) => {
601-
await controller.refresh();
601+
await controller.refresh(['mainnet']);
602602

603603
expect(controller.state).toStrictEqual({
604604
accountsByChainId: {
@@ -640,7 +640,7 @@ describe('AccountTrackerController', () => {
640640
},
641641
},
642642
async ({ controller }) => {
643-
await controller.refresh();
643+
await controller.refresh(['mainnet']);
644644

645645
expect(controller.state).toStrictEqual({
646646
accountsByChainId: {
@@ -726,7 +726,7 @@ describe('AccountTrackerController', () => {
726726
jest.spyOn(controller, 'refresh').mockResolvedValue();
727727

728728
await controller.startPolling({
729-
networkClientId: 'networkClientId1',
729+
networkClientIds: ['networkClientId1'],
730730
});
731731
await advanceTime({ clock, duration: 1 });
732732

@@ -759,34 +759,34 @@ describe('AccountTrackerController', () => {
759759
.mockResolvedValue();
760760

761761
controller.startPolling({
762-
networkClientId: networkClientId1,
762+
networkClientIds: [networkClientId1],
763763
});
764764

765765
await advanceTime({ clock, duration: 0 });
766-
expect(refreshSpy).toHaveBeenNthCalledWith(1, networkClientId1);
766+
expect(refreshSpy).toHaveBeenNthCalledWith(1, [networkClientId1]);
767767
expect(refreshSpy).toHaveBeenCalledTimes(1);
768768
await advanceTime({ clock, duration: 50 });
769769
expect(refreshSpy).toHaveBeenCalledTimes(1);
770770
await advanceTime({ clock, duration: 50 });
771-
expect(refreshSpy).toHaveBeenNthCalledWith(2, networkClientId1);
771+
expect(refreshSpy).toHaveBeenNthCalledWith(2, [networkClientId1]);
772772
expect(refreshSpy).toHaveBeenCalledTimes(2);
773773

774774
const pollToken = controller.startPolling({
775-
networkClientId: networkClientId2,
775+
networkClientIds: [networkClientId2],
776776
});
777777

778778
await advanceTime({ clock, duration: 0 });
779-
expect(refreshSpy).toHaveBeenNthCalledWith(3, networkClientId2);
779+
expect(refreshSpy).toHaveBeenNthCalledWith(3, [networkClientId2]);
780780
expect(refreshSpy).toHaveBeenCalledTimes(3);
781781
await advanceTime({ clock, duration: 100 });
782-
expect(refreshSpy).toHaveBeenNthCalledWith(4, networkClientId1);
783-
expect(refreshSpy).toHaveBeenNthCalledWith(5, networkClientId2);
782+
expect(refreshSpy).toHaveBeenNthCalledWith(4, [networkClientId1]);
783+
expect(refreshSpy).toHaveBeenNthCalledWith(5, [networkClientId2]);
784784
expect(refreshSpy).toHaveBeenCalledTimes(5);
785785

786786
controller.stopPollingByPollingToken(pollToken);
787787

788788
await advanceTime({ clock, duration: 100 });
789-
expect(refreshSpy).toHaveBeenNthCalledWith(6, networkClientId1);
789+
expect(refreshSpy).toHaveBeenNthCalledWith(6, [networkClientId1]);
790790
expect(refreshSpy).toHaveBeenCalledTimes(6);
791791

792792
controller.stopAllPolling();
@@ -810,7 +810,7 @@ describe('AccountTrackerController', () => {
810810

811811
expect(refreshSpy).not.toHaveBeenCalled();
812812
controller.startPolling({
813-
networkClientId: 'networkClientId1',
813+
networkClientIds: ['networkClientId1'],
814814
});
815815

816816
await advanceTime({ clock, duration: 1 });

0 commit comments

Comments
 (0)