@reown/appkit-core 1.7.0-rc.3.0 → 1.7.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/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/esm/exports/modal.js +0 -2
- package/dist/esm/exports/modal.js.map +0 -1
- package/dist/esm/src/controllers/AccountController.js +0 -160
- package/dist/esm/src/controllers/AccountController.js.map +0 -1
- package/dist/esm/src/controllers/AlertController.js +0 -35
- package/dist/esm/src/controllers/AlertController.js.map +0 -1
- package/dist/esm/src/controllers/ApiController.js +0 -246
- package/dist/esm/src/controllers/ApiController.js.map +0 -1
- package/dist/esm/src/controllers/AssetController.js +0 -43
- package/dist/esm/src/controllers/AssetController.js.map +0 -1
- package/dist/esm/src/controllers/BlockchainApiController.js +0 -472
- package/dist/esm/src/controllers/BlockchainApiController.js.map +0 -1
- package/dist/esm/src/controllers/ChainController.js +0 -486
- package/dist/esm/src/controllers/ChainController.js.map +0 -1
- package/dist/esm/src/controllers/ConnectionController.js +0 -195
- package/dist/esm/src/controllers/ConnectionController.js.map +0 -1
- package/dist/esm/src/controllers/ConnectorController.js +0 -218
- package/dist/esm/src/controllers/ConnectorController.js.map +0 -1
- package/dist/esm/src/controllers/EnsController.js +0 -144
- package/dist/esm/src/controllers/EnsController.js.map +0 -1
- package/dist/esm/src/controllers/EventsController.js +0 -76
- package/dist/esm/src/controllers/EventsController.js.map +0 -1
- package/dist/esm/src/controllers/ModalController.js +0 -102
- package/dist/esm/src/controllers/ModalController.js.map +0 -1
- package/dist/esm/src/controllers/OnRampController.js +0 -132
- package/dist/esm/src/controllers/OnRampController.js.map +0 -1
- package/dist/esm/src/controllers/OptionsController.js +0 -146
- package/dist/esm/src/controllers/OptionsController.js.map +0 -1
- package/dist/esm/src/controllers/PublicStateController.js +0 -20
- package/dist/esm/src/controllers/PublicStateController.js.map +0 -1
- package/dist/esm/src/controllers/RouterController.js +0 -125
- package/dist/esm/src/controllers/RouterController.js.map +0 -1
- package/dist/esm/src/controllers/SendController.js +0 -305
- package/dist/esm/src/controllers/SendController.js.map +0 -1
- package/dist/esm/src/controllers/SnackController.js +0 -62
- package/dist/esm/src/controllers/SnackController.js.map +0 -1
- package/dist/esm/src/controllers/SwapController.js +0 -674
- package/dist/esm/src/controllers/SwapController.js.map +0 -1
- package/dist/esm/src/controllers/ThemeController.js +0 -55
- package/dist/esm/src/controllers/ThemeController.js.map +0 -1
- package/dist/esm/src/controllers/TooltipController.js +0 -41
- package/dist/esm/src/controllers/TooltipController.js.map +0 -1
- package/dist/esm/src/controllers/TransactionsController.js +0 -113
- package/dist/esm/src/controllers/TransactionsController.js.map +0 -1
- package/dist/esm/src/utils/AssetUtil.js +0 -85
- package/dist/esm/src/utils/AssetUtil.js.map +0 -1
- package/dist/esm/src/utils/ConstantsUtil.js +0 -237
- package/dist/esm/src/utils/ConstantsUtil.js.map +0 -1
- package/dist/esm/src/utils/CoreHelperUtil.js +0 -354
- package/dist/esm/src/utils/CoreHelperUtil.js.map +0 -1
- package/dist/esm/src/utils/ERC7811Util.js +0 -111
- package/dist/esm/src/utils/ERC7811Util.js.map +0 -1
- package/dist/esm/src/utils/EnsUtil.js +0 -10
- package/dist/esm/src/utils/EnsUtil.js.map +0 -1
- package/dist/esm/src/utils/FetchUtil.js +0 -73
- package/dist/esm/src/utils/FetchUtil.js.map +0 -1
- package/dist/esm/src/utils/MobileWallet.js +0 -31
- package/dist/esm/src/utils/MobileWallet.js.map +0 -1
- package/dist/esm/src/utils/OptionsUtil.js +0 -29
- package/dist/esm/src/utils/OptionsUtil.js.map +0 -1
- package/dist/esm/src/utils/RouterUtil.js +0 -23
- package/dist/esm/src/utils/RouterUtil.js.map +0 -1
- package/dist/esm/src/utils/SIWXUtil.js +0 -258
- package/dist/esm/src/utils/SIWXUtil.js.map +0 -1
- package/dist/esm/src/utils/SendApiUtil.js +0 -65
- package/dist/esm/src/utils/SendApiUtil.js.map +0 -1
- package/dist/esm/src/utils/StorageUtil.js +0 -485
- package/dist/esm/src/utils/StorageUtil.js.map +0 -1
- package/dist/esm/src/utils/SwapApiUtil.js +0 -89
- package/dist/esm/src/utils/SwapApiUtil.js.map +0 -1
- package/dist/esm/src/utils/SwapCalculationUtil.js +0 -74
- package/dist/esm/src/utils/SwapCalculationUtil.js.map +0 -1
- package/dist/esm/src/utils/TypeUtil.js +0 -2
- package/dist/esm/src/utils/TypeUtil.js.map +0 -1
- package/dist/esm/tests/constants/OnrampTransactions.js +0 -151
- package/dist/esm/tests/constants/OnrampTransactions.js.map +0 -1
- package/dist/esm/tests/controllers/AccountController.test.js +0 -186
- package/dist/esm/tests/controllers/AccountController.test.js.map +0 -1
- package/dist/esm/tests/controllers/AlertController.test.js +0 -48
- package/dist/esm/tests/controllers/AlertController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ApiController.test.js +0 -594
- package/dist/esm/tests/controllers/ApiController.test.js.map +0 -1
- package/dist/esm/tests/controllers/AssetController.test.js +0 -92
- package/dist/esm/tests/controllers/AssetController.test.js.map +0 -1
- package/dist/esm/tests/controllers/BlockchainApiController.test.js +0 -38
- package/dist/esm/tests/controllers/BlockchainApiController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ChainController.test.js +0 -385
- package/dist/esm/tests/controllers/ChainController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ConnectionController.test.js +0 -151
- package/dist/esm/tests/controllers/ConnectionController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ConnectorController.test.js +0 -282
- package/dist/esm/tests/controllers/ConnectorController.test.js.map +0 -1
- package/dist/esm/tests/controllers/EnsController.test.js +0 -186
- package/dist/esm/tests/controllers/EnsController.test.js.map +0 -1
- package/dist/esm/tests/controllers/EventsController.test.js +0 -47
- package/dist/esm/tests/controllers/EventsController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ModalController.test.js +0 -32
- package/dist/esm/tests/controllers/ModalController.test.js.map +0 -1
- package/dist/esm/tests/controllers/OnRampController.test.js +0 -118
- package/dist/esm/tests/controllers/OnRampController.test.js.map +0 -1
- package/dist/esm/tests/controllers/OptionsController.test.js +0 -42
- package/dist/esm/tests/controllers/OptionsController.test.js.map +0 -1
- package/dist/esm/tests/controllers/PublicStateController.test.js +0 -33
- package/dist/esm/tests/controllers/PublicStateController.test.js.map +0 -1
- package/dist/esm/tests/controllers/RouterController.test.js +0 -103
- package/dist/esm/tests/controllers/RouterController.test.js.map +0 -1
- package/dist/esm/tests/controllers/SendController.test.js +0 -136
- package/dist/esm/tests/controllers/SendController.test.js.map +0 -1
- package/dist/esm/tests/controllers/SnackController.test.js +0 -86
- package/dist/esm/tests/controllers/SnackController.test.js.map +0 -1
- package/dist/esm/tests/controllers/SwapController.test.js +0 -105
- package/dist/esm/tests/controllers/SwapController.test.js.map +0 -1
- package/dist/esm/tests/controllers/ThemeController.test.js +0 -26
- package/dist/esm/tests/controllers/ThemeController.test.js.map +0 -1
- package/dist/esm/tests/controllers/TooltipController.test.js +0 -40
- package/dist/esm/tests/controllers/TooltipController.test.js.map +0 -1
- package/dist/esm/tests/controllers/TransactionsController.test.js +0 -239
- package/dist/esm/tests/controllers/TransactionsController.test.js.map +0 -1
- package/dist/esm/tests/hooks/react.test.js +0 -149
- package/dist/esm/tests/hooks/react.test.js.map +0 -1
- package/dist/esm/tests/hooks/vue.test.js +0 -56
- package/dist/esm/tests/hooks/vue.test.js.map +0 -1
- package/dist/esm/tests/mocks/ChainController.js +0 -24
- package/dist/esm/tests/mocks/ChainController.js.map +0 -1
- package/dist/esm/tests/mocks/SwapController.js +0 -118
- package/dist/esm/tests/mocks/SwapController.js.map +0 -1
- package/dist/esm/tests/mocks/useAppKitAccount.js +0 -41
- package/dist/esm/tests/mocks/useAppKitAccount.js.map +0 -1
- package/dist/esm/tests/utils/AssetUtil.test.js +0 -108
- package/dist/esm/tests/utils/AssetUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/CoreHelperUtil.test.js +0 -67
- package/dist/esm/tests/utils/CoreHelperUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/ERC7811.test.js +0 -268
- package/dist/esm/tests/utils/ERC7811.test.js.map +0 -1
- package/dist/esm/tests/utils/EnsUtil.test.js +0 -23
- package/dist/esm/tests/utils/EnsUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/FetchUtil.test.js +0 -175
- package/dist/esm/tests/utils/FetchUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/MobileWallet.test.js +0 -72
- package/dist/esm/tests/utils/MobileWallet.test.js.map +0 -1
- package/dist/esm/tests/utils/OptionsUtil.test.js +0 -20
- package/dist/esm/tests/utils/OptionsUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/RouterUtil.test.js +0 -62
- package/dist/esm/tests/utils/RouterUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/SendApiUtil.test.js +0 -340
- package/dist/esm/tests/utils/SendApiUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/StorageUtil.test.js +0 -162
- package/dist/esm/tests/utils/StorageUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/SwapApiUtil.test.js +0 -213
- package/dist/esm/tests/utils/SwapApiUtil.test.js.map +0 -1
- package/dist/esm/tests/utils/SwapCalculationUtil.test.js +0 -80
- package/dist/esm/tests/utils/SwapCalculationUtil.test.js.map +0 -1
- package/dist/types/exports/modal.d.ts +0 -2
- package/dist/types/src/controllers/AccountController.d.ts +0 -56
- package/dist/types/src/controllers/AlertController.d.ts +0 -17
- package/dist/types/src/controllers/ApiController.d.ts +0 -51
- package/dist/types/src/controllers/AssetController.d.ts +0 -22
- package/dist/types/src/controllers/BlockchainApiController.d.ts +0 -76
- package/dist/types/src/controllers/ChainController.d.ts +0 -65
- package/dist/types/src/controllers/ConnectionController.d.ts +0 -86
- package/dist/types/src/controllers/ConnectorController.d.ts +0 -49
- package/dist/types/src/controllers/EnsController.d.ts +0 -26
- package/dist/types/src/controllers/EventsController.d.ts +0 -17
- package/dist/types/src/controllers/ModalController.d.ts +0 -22
- package/dist/types/src/controllers/OnRampController.d.ts +0 -55
- package/dist/types/src/controllers/OptionsController.d.ts +0 -364
- package/dist/types/src/controllers/PublicStateController.d.ts +0 -33
- package/dist/types/src/controllers/RouterController.d.ts +0 -56
- package/dist/types/src/controllers/SendController.d.ts +0 -52
- package/dist/types/src/controllers/SnackController.d.ts +0 -29
- package/dist/types/src/controllers/SwapController.d.ts +0 -127
- package/dist/types/src/controllers/ThemeController.d.ts +0 -30
- package/dist/types/src/controllers/TooltipController.d.ts +0 -25
- package/dist/types/src/controllers/TransactionsController.d.ts +0 -25
- package/dist/types/src/utils/AssetUtil.d.ts +0 -15
- package/dist/types/src/utils/ConstantsUtil.d.ts +0 -85
- package/dist/types/src/utils/CoreHelperUtil.d.ts +0 -56
- package/dist/types/src/utils/ERC7811Util.d.ts +0 -67
- package/dist/types/src/utils/EnsUtil.d.ts +0 -3
- package/dist/types/src/utils/FetchUtil.d.ts +0 -26
- package/dist/types/src/utils/MobileWallet.d.ts +0 -9
- package/dist/types/src/utils/OptionsUtil.d.ts +0 -5
- package/dist/types/src/utils/RouterUtil.d.ts +0 -4
- package/dist/types/src/utils/SIWXUtil.d.ts +0 -183
- package/dist/types/src/utils/SendApiUtil.d.ts +0 -13
- package/dist/types/src/utils/StorageUtil.d.ts +0 -99
- package/dist/types/src/utils/SwapApiUtil.d.ts +0 -27
- package/dist/types/src/utils/SwapCalculationUtil.d.ts +0 -22
- package/dist/types/src/utils/TypeUtil.d.ts +0 -981
- package/dist/types/tests/constants/OnrampTransactions.d.ts +0 -138
- package/dist/types/tests/controllers/AccountController.test.d.ts +0 -1
- package/dist/types/tests/controllers/AlertController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ApiController.test.d.ts +0 -1
- package/dist/types/tests/controllers/AssetController.test.d.ts +0 -1
- package/dist/types/tests/controllers/BlockchainApiController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ChainController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ConnectionController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ConnectorController.test.d.ts +0 -1
- package/dist/types/tests/controllers/EnsController.test.d.ts +0 -1
- package/dist/types/tests/controllers/EventsController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ModalController.test.d.ts +0 -1
- package/dist/types/tests/controllers/OnRampController.test.d.ts +0 -1
- package/dist/types/tests/controllers/OptionsController.test.d.ts +0 -1
- package/dist/types/tests/controllers/PublicStateController.test.d.ts +0 -1
- package/dist/types/tests/controllers/RouterController.test.d.ts +0 -1
- package/dist/types/tests/controllers/SendController.test.d.ts +0 -1
- package/dist/types/tests/controllers/SnackController.test.d.ts +0 -1
- package/dist/types/tests/controllers/SwapController.test.d.ts +0 -1
- package/dist/types/tests/controllers/ThemeController.test.d.ts +0 -1
- package/dist/types/tests/controllers/TooltipController.test.d.ts +0 -1
- package/dist/types/tests/controllers/TransactionsController.test.d.ts +0 -1
- package/dist/types/tests/hooks/react.test.d.ts +0 -1
- package/dist/types/tests/hooks/vue.test.d.ts +0 -2
- package/dist/types/tests/mocks/ChainController.d.ts +0 -2
- package/dist/types/tests/mocks/SwapController.d.ts +0 -75
- package/dist/types/tests/mocks/useAppKitAccount.d.ts +0 -40
- package/dist/types/tests/utils/AssetUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/CoreHelperUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/ERC7811.test.d.ts +0 -1
- package/dist/types/tests/utils/EnsUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/FetchUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/MobileWallet.test.d.ts +0 -1
- package/dist/types/tests/utils/OptionsUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/RouterUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/SendApiUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/StorageUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/SwapApiUtil.test.d.ts +0 -1
- package/dist/types/tests/utils/SwapCalculationUtil.test.d.ts +0 -1
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { AssetController } from '../../exports/index.js';
|
|
3
|
-
// -- Constants ----------------------------------------------------------------
|
|
4
|
-
const walletImage = 'w3mWallet.png';
|
|
5
|
-
const walletImage2 = 'w3mWallet2.png';
|
|
6
|
-
const networkImage = 'ethereum.png';
|
|
7
|
-
const networkImage2 = 'polygon.png';
|
|
8
|
-
const connectorImage = 'email-connector.png';
|
|
9
|
-
const connectorImage2 = 'metamask-connector.png';
|
|
10
|
-
const tokenImage = 'eth.png';
|
|
11
|
-
const tokenImage2 = 'usdc.png';
|
|
12
|
-
const currencyImage = 'usd.png';
|
|
13
|
-
const currencyImage2 = 'eur.png';
|
|
14
|
-
const wallet = 'w3m';
|
|
15
|
-
const wallet2 = 'w4m';
|
|
16
|
-
const network = 'ethereum';
|
|
17
|
-
const network2 = 'polygon';
|
|
18
|
-
const connector = 'w3m-email';
|
|
19
|
-
const connector2 = 'mm-connector';
|
|
20
|
-
const token = 'ETH';
|
|
21
|
-
const token2 = 'MATIC';
|
|
22
|
-
const currency = 'USD';
|
|
23
|
-
const currency2 = 'EUR';
|
|
24
|
-
// -- Tests --------------------------------------------------------------------
|
|
25
|
-
describe('AssetController', () => {
|
|
26
|
-
it('should have valid default state', () => {
|
|
27
|
-
expect(AssetController.state).toEqual({
|
|
28
|
-
chainImages: {},
|
|
29
|
-
walletImages: {},
|
|
30
|
-
networkImages: {},
|
|
31
|
-
connectorImages: {},
|
|
32
|
-
tokenImages: {},
|
|
33
|
-
currencyImages: {}
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
it('should update state properly on setWalletImage()', () => {
|
|
37
|
-
AssetController.setWalletImage(wallet, walletImage);
|
|
38
|
-
expect(AssetController.state.walletImages).toEqual({ [wallet]: walletImage });
|
|
39
|
-
AssetController.setWalletImage(wallet, walletImage2);
|
|
40
|
-
expect(AssetController.state.walletImages).toEqual({ [wallet]: walletImage2 });
|
|
41
|
-
AssetController.setWalletImage(wallet2, walletImage2);
|
|
42
|
-
expect(AssetController.state.walletImages).toEqual({
|
|
43
|
-
[wallet]: walletImage2,
|
|
44
|
-
[wallet2]: walletImage2
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
it('should update state properly on setNetworkImage()', () => {
|
|
48
|
-
AssetController.setNetworkImage(network, networkImage);
|
|
49
|
-
expect(AssetController.state.networkImages).toEqual({ [network]: networkImage });
|
|
50
|
-
AssetController.setNetworkImage(network, networkImage2);
|
|
51
|
-
expect(AssetController.state.networkImages).toEqual({ [network]: networkImage2 });
|
|
52
|
-
AssetController.setNetworkImage(network2, networkImage2);
|
|
53
|
-
expect(AssetController.state.networkImages).toEqual({
|
|
54
|
-
[network]: networkImage2,
|
|
55
|
-
[network2]: networkImage2
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
it('should update state properly on setConnectorImage()', () => {
|
|
59
|
-
AssetController.setConnectorImage(connector, connectorImage);
|
|
60
|
-
expect(AssetController.state.connectorImages).toEqual({ [connector]: connectorImage });
|
|
61
|
-
AssetController.setConnectorImage(connector, connectorImage2);
|
|
62
|
-
expect(AssetController.state.connectorImages).toEqual({ [connector]: connectorImage2 });
|
|
63
|
-
AssetController.setConnectorImage(connector2, connectorImage2);
|
|
64
|
-
expect(AssetController.state.connectorImages).toEqual({
|
|
65
|
-
[connector]: connectorImage2,
|
|
66
|
-
[connector2]: connectorImage2
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
it('should update state properly on setTokenImage()', () => {
|
|
70
|
-
AssetController.setTokenImage(token, tokenImage);
|
|
71
|
-
expect(AssetController.state.tokenImages).toEqual({ [token]: tokenImage });
|
|
72
|
-
AssetController.setTokenImage(token, tokenImage2);
|
|
73
|
-
expect(AssetController.state.tokenImages).toEqual({ [token]: tokenImage2 });
|
|
74
|
-
AssetController.setTokenImage(token2, tokenImage2);
|
|
75
|
-
expect(AssetController.state.tokenImages).toEqual({
|
|
76
|
-
[token]: tokenImage2,
|
|
77
|
-
[token2]: tokenImage2
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
it('should update state properly on setCurrencyImage()', () => {
|
|
81
|
-
AssetController.setCurrencyImage(currency, currencyImage);
|
|
82
|
-
expect(AssetController.state.currencyImages).toEqual({ [currency]: currencyImage });
|
|
83
|
-
AssetController.setCurrencyImage(currency, currencyImage2);
|
|
84
|
-
expect(AssetController.state.currencyImages).toEqual({ [currency]: currencyImage2 });
|
|
85
|
-
AssetController.setCurrencyImage(currency2, currencyImage2);
|
|
86
|
-
expect(AssetController.state.currencyImages).toEqual({
|
|
87
|
-
[currency]: currencyImage2,
|
|
88
|
-
[currency2]: currencyImage2
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=AssetController.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssetController.test.js","sourceRoot":"","sources":["../../../../tests/controllers/AssetController.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { BlockchainApiController, FetchUtil, OptionsController } from '../../exports/index.js';
|
|
3
|
-
// -- Tests --------------------------------------------------------------------
|
|
4
|
-
describe('BlockchainApiController', () => {
|
|
5
|
-
it('should include sdk properties when fetching swap allowance data', async () => {
|
|
6
|
-
vi.spyOn(FetchUtil.prototype, 'get').mockResolvedValue({});
|
|
7
|
-
vi.spyOn(BlockchainApiController, 'isNetworkSupported').mockResolvedValue(true);
|
|
8
|
-
OptionsController.state.projectId = 'test-project-id';
|
|
9
|
-
const swapAllowance = {
|
|
10
|
-
tokenAddress: '0x123',
|
|
11
|
-
userAddress: '0x456'
|
|
12
|
-
};
|
|
13
|
-
await BlockchainApiController.fetchSwapAllowance(swapAllowance);
|
|
14
|
-
expect(FetchUtil.prototype.get).toHaveBeenCalledWith(expect.objectContaining({
|
|
15
|
-
path: '/v1/convert/allowance',
|
|
16
|
-
params: {
|
|
17
|
-
projectId: 'test-project-id',
|
|
18
|
-
...swapAllowance,
|
|
19
|
-
...BlockchainApiController.getSdkProperties()
|
|
20
|
-
}
|
|
21
|
-
}));
|
|
22
|
-
});
|
|
23
|
-
it('should include sdk properties when fetching identity data', async () => {
|
|
24
|
-
const address = '0x123';
|
|
25
|
-
vi.spyOn(FetchUtil.prototype, 'get').mockResolvedValue({});
|
|
26
|
-
vi.spyOn(BlockchainApiController, 'isNetworkSupported').mockResolvedValue(true);
|
|
27
|
-
OptionsController.state.projectId = 'test-project-id';
|
|
28
|
-
await BlockchainApiController.fetchIdentity({ address, caipNetworkId: 'eip155:1' });
|
|
29
|
-
expect(FetchUtil.prototype.get).toHaveBeenCalledWith(expect.objectContaining({
|
|
30
|
-
path: `/v1/identity/${address}`,
|
|
31
|
-
params: {
|
|
32
|
-
projectId: 'test-project-id',
|
|
33
|
-
...BlockchainApiController.getSdkProperties()
|
|
34
|
-
}
|
|
35
|
-
}));
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=BlockchainApiController.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BlockchainApiController.test.js","sourceRoot":"","sources":["../../../../tests/controllers/BlockchainApiController.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE9F,gFAAgF;AAChF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAC1D,EAAE,CAAC,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC/E,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAA;QAErD,MAAM,aAAa,GAAG;YACpB,YAAY,EAAE,OAAO;YACrB,WAAW,EAAE,OAAO;SACrB,CAAA;QAED,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA;QAE/D,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAClD,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE;gBACN,SAAS,EAAE,iBAAiB;gBAC5B,GAAG,aAAa;gBAChB,GAAG,uBAAuB,CAAC,gBAAgB,EAAE;aAC9C;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,OAAO,GAAG,OAAO,CAAA;QACvB,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAA;QAC1D,EAAE,CAAC,KAAK,CAAC,uBAAuB,EAAE,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC/E,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAA;QAErD,MAAM,uBAAuB,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;QAEnF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,oBAAoB,CAClD,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,gBAAgB,OAAO,EAAE;YAC/B,MAAM,EAAE;gBACN,SAAS,EAAE,iBAAiB;gBAC5B,GAAG,uBAAuB,CAAC,gBAAgB,EAAE;aAC9C;SACF,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { ConstantsUtil, SafeLocalStorageKeys } from '@reown/appkit-common';
|
|
3
|
-
import { SafeLocalStorage } from '@reown/appkit-common';
|
|
4
|
-
import { ChainController } from '../../src/controllers/ChainController.js';
|
|
5
|
-
import {} from '../../src/controllers/ConnectionController.js';
|
|
6
|
-
import { ConnectionController } from '../../src/controllers/ConnectionController.js';
|
|
7
|
-
import { EventsController } from '../../src/controllers/EventsController.js';
|
|
8
|
-
import { RouterController } from '../../src/controllers/RouterController.js';
|
|
9
|
-
import { StorageUtil } from '../../src/utils/StorageUtil.js';
|
|
10
|
-
// -- Setup --------------------------------------------------------------------
|
|
11
|
-
const chainNamespace = 'eip155';
|
|
12
|
-
const caipAddress = 'eip155:1:0x123';
|
|
13
|
-
const approvedCaipNetworkIds = ['eip155:1', 'eip155:4'];
|
|
14
|
-
const requestedCaipNetworks = [
|
|
15
|
-
{
|
|
16
|
-
id: 1,
|
|
17
|
-
caipNetworkId: 'eip155:1',
|
|
18
|
-
name: 'Ethereum',
|
|
19
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
20
|
-
nativeCurrency: {
|
|
21
|
-
name: 'Ethereum',
|
|
22
|
-
symbol: 'ETH',
|
|
23
|
-
decimals: 18
|
|
24
|
-
},
|
|
25
|
-
rpcUrls: {
|
|
26
|
-
default: { http: ['https://rpc.infura.com/v1/'] }
|
|
27
|
-
},
|
|
28
|
-
blockExplorers: {
|
|
29
|
-
default: { name: 'Etherscan', url: 'https://etherscan.io' }
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: 42161,
|
|
34
|
-
caipNetworkId: 'eip155:42161',
|
|
35
|
-
name: 'Arbitrum One',
|
|
36
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
37
|
-
nativeCurrency: {
|
|
38
|
-
name: 'Arbitrum',
|
|
39
|
-
symbol: 'ARB',
|
|
40
|
-
decimals: 18
|
|
41
|
-
},
|
|
42
|
-
rpcUrls: {
|
|
43
|
-
default: { http: ['https://rpc.infura.com/v1/'] }
|
|
44
|
-
},
|
|
45
|
-
blockExplorers: {
|
|
46
|
-
default: { name: 'Arbitrum Explorer', url: 'https://explorer.arbitrum.io' }
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: 43114,
|
|
51
|
-
caipNetworkId: 'eip155:43114',
|
|
52
|
-
name: 'Avalanche C-Chain',
|
|
53
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
54
|
-
nativeCurrency: {
|
|
55
|
-
name: 'Avalanche',
|
|
56
|
-
symbol: 'AVAX',
|
|
57
|
-
decimals: 18
|
|
58
|
-
},
|
|
59
|
-
rpcUrls: {
|
|
60
|
-
default: { http: ['https://rpc.infura.com/v1/'] }
|
|
61
|
-
},
|
|
62
|
-
blockExplorers: {
|
|
63
|
-
default: { name: 'Avalanche C-Chain', url: 'https://cchain.explorer.avax.network' }
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
];
|
|
67
|
-
const mainnetCaipNetwork = {
|
|
68
|
-
id: 1,
|
|
69
|
-
name: 'Ethereum',
|
|
70
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
71
|
-
caipNetworkId: 'eip155:1',
|
|
72
|
-
nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 },
|
|
73
|
-
rpcUrls: { default: { http: ['https://rpc.infura.com/v1/'] } },
|
|
74
|
-
blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' } }
|
|
75
|
-
};
|
|
76
|
-
const solanaCaipNetwork = {
|
|
77
|
-
id: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
|
|
78
|
-
caipNetworkId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
|
|
79
|
-
name: 'Solana',
|
|
80
|
-
chainNamespace: ConstantsUtil.CHAIN.SOLANA,
|
|
81
|
-
nativeCurrency: { name: 'Solana', symbol: 'SOL', decimals: 9 },
|
|
82
|
-
rpcUrls: { default: { http: ['https://rpc.infura.com/v1/'] } },
|
|
83
|
-
blockExplorers: { default: { name: 'Solscan', url: 'https://solscan.io' } }
|
|
84
|
-
};
|
|
85
|
-
const connectionControllerClient = {
|
|
86
|
-
connectWalletConnect: async () => Promise.resolve(),
|
|
87
|
-
disconnect: async () => Promise.resolve(),
|
|
88
|
-
estimateGas: async () => Promise.resolve(BigInt(0)),
|
|
89
|
-
signMessage: async (message) => Promise.resolve(message),
|
|
90
|
-
parseUnits: value => BigInt(value),
|
|
91
|
-
formatUnits: value => value.toString(),
|
|
92
|
-
sendTransaction: () => Promise.resolve('0x'),
|
|
93
|
-
writeContract: () => Promise.resolve('0x'),
|
|
94
|
-
getEnsAddress: async (value) => Promise.resolve(value),
|
|
95
|
-
getEnsAvatar: async (value) => Promise.resolve(value),
|
|
96
|
-
getCapabilities: async () => Promise.resolve(''),
|
|
97
|
-
grantPermissions: async () => Promise.resolve(''),
|
|
98
|
-
revokePermissions: async () => Promise.resolve('0x'),
|
|
99
|
-
walletGetAssets: async () => Promise.resolve({})
|
|
100
|
-
};
|
|
101
|
-
const networkControllerClient = {
|
|
102
|
-
switchCaipNetwork: async (_caipNetwork) => Promise.resolve(),
|
|
103
|
-
getApprovedCaipNetworksData: async () => Promise.resolve({ approvedCaipNetworkIds: [], supportsAllNetworks: false })
|
|
104
|
-
};
|
|
105
|
-
const evmAdapter = {
|
|
106
|
-
namespace: ConstantsUtil.CHAIN.EVM,
|
|
107
|
-
connectionControllerClient,
|
|
108
|
-
networkControllerClient,
|
|
109
|
-
caipNetworks: [mainnetCaipNetwork]
|
|
110
|
-
};
|
|
111
|
-
const solanaAdapter = {
|
|
112
|
-
namespace: ConstantsUtil.CHAIN.SOLANA,
|
|
113
|
-
connectionControllerClient,
|
|
114
|
-
networkControllerClient,
|
|
115
|
-
caipNetworks: [solanaCaipNetwork]
|
|
116
|
-
};
|
|
117
|
-
beforeEach(() => {
|
|
118
|
-
vi.resetAllMocks();
|
|
119
|
-
ChainController.state.noAdapters = false;
|
|
120
|
-
ChainController.initialize([evmAdapter], requestedCaipNetworks, {
|
|
121
|
-
connectionControllerClient,
|
|
122
|
-
networkControllerClient
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
// -- Tests --------------------------------------------------------------------
|
|
126
|
-
describe('ChainController', () => {
|
|
127
|
-
it('should be initialized as expected', () => {
|
|
128
|
-
expect(ChainController.state.activeChain).toEqual(ConstantsUtil.CHAIN.EVM);
|
|
129
|
-
expect(ChainController.getConnectionControllerClient()).toEqual(connectionControllerClient);
|
|
130
|
-
expect(ChainController.getNetworkControllerClient()).toEqual(networkControllerClient);
|
|
131
|
-
});
|
|
132
|
-
it('should update account state as expected', () => {
|
|
133
|
-
ChainController.setAccountProp('caipAddress', caipAddress, chainNamespace);
|
|
134
|
-
expect(ChainController.getAccountProp('caipAddress')).toEqual(caipAddress);
|
|
135
|
-
});
|
|
136
|
-
it('should update network state as expected', () => {
|
|
137
|
-
ChainController.setAdapterNetworkState(ConstantsUtil.CHAIN.EVM, {
|
|
138
|
-
approvedCaipNetworkIds
|
|
139
|
-
});
|
|
140
|
-
expect(ChainController.getNetworkProp('approvedCaipNetworkIds', ConstantsUtil.CHAIN.EVM)).toEqual(approvedCaipNetworkIds);
|
|
141
|
-
});
|
|
142
|
-
it('should update state correctly on setApprovedCaipNetworkIds()', async () => {
|
|
143
|
-
const networkController = { ...networkControllerClient };
|
|
144
|
-
const networkControllerSpy = vi
|
|
145
|
-
.spyOn(networkController, 'getApprovedCaipNetworksData')
|
|
146
|
-
.mockResolvedValueOnce({
|
|
147
|
-
approvedCaipNetworkIds,
|
|
148
|
-
supportsAllNetworks: false
|
|
149
|
-
});
|
|
150
|
-
const evmAdapter = {
|
|
151
|
-
namespace: chainNamespace,
|
|
152
|
-
connectionControllerClient,
|
|
153
|
-
networkControllerClient: networkController,
|
|
154
|
-
caipNetworks: []
|
|
155
|
-
};
|
|
156
|
-
// Need to re-initialize to set the spy properly
|
|
157
|
-
ChainController.initialize([evmAdapter], requestedCaipNetworks, {
|
|
158
|
-
connectionControllerClient,
|
|
159
|
-
networkControllerClient: networkController
|
|
160
|
-
});
|
|
161
|
-
await ChainController.setApprovedCaipNetworksData(chainNamespace);
|
|
162
|
-
expect(ChainController.getApprovedCaipNetworkIds(chainNamespace)).toEqual(approvedCaipNetworkIds);
|
|
163
|
-
expect(networkControllerSpy).toHaveBeenCalled();
|
|
164
|
-
});
|
|
165
|
-
it('should update state correctly on setCaipNetwork()', () => {
|
|
166
|
-
ChainController.setActiveCaipNetwork({
|
|
167
|
-
id: 1,
|
|
168
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
169
|
-
caipNetworkId: 'eip155:1',
|
|
170
|
-
name: 'Ethereum',
|
|
171
|
-
nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 },
|
|
172
|
-
rpcUrls: { default: { http: ['https://rpc.infura.com/v1/'] } },
|
|
173
|
-
blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' } }
|
|
174
|
-
});
|
|
175
|
-
expect(ChainController.state.activeCaipNetwork).toEqual(mainnetCaipNetwork);
|
|
176
|
-
});
|
|
177
|
-
it('should check correctly if smart accounts are enabled on the network', () => {
|
|
178
|
-
ChainController.setActiveCaipNetwork(mainnetCaipNetwork);
|
|
179
|
-
ChainController.setSmartAccountEnabledNetworks([1], chainNamespace);
|
|
180
|
-
expect(ChainController.checkIfSmartAccountEnabled()).toEqual(true);
|
|
181
|
-
ChainController.setSmartAccountEnabledNetworks([], chainNamespace);
|
|
182
|
-
expect(ChainController.checkIfSmartAccountEnabled()).toEqual(false);
|
|
183
|
-
ChainController.setSmartAccountEnabledNetworks([2], chainNamespace);
|
|
184
|
-
expect(ChainController.checkIfSmartAccountEnabled()).toEqual(false);
|
|
185
|
-
ChainController.setActiveCaipNetwork({
|
|
186
|
-
id: 2,
|
|
187
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
188
|
-
caipNetworkId: 'eip155:2',
|
|
189
|
-
name: 'Ethereum',
|
|
190
|
-
nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 },
|
|
191
|
-
rpcUrls: { default: { http: ['https://rpc.infura.com/v1/'] } },
|
|
192
|
-
blockExplorers: { default: { name: 'Etherscan', url: 'https://etherscan.io' } }
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
it('should check if network supports names feature', () => {
|
|
196
|
-
ChainController.setActiveCaipNetwork(mainnetCaipNetwork);
|
|
197
|
-
expect(ChainController.checkIfNamesSupported()).toEqual(true);
|
|
198
|
-
ChainController.setActiveCaipNetwork(solanaCaipNetwork);
|
|
199
|
-
expect(ChainController.checkIfNamesSupported()).toEqual(false);
|
|
200
|
-
});
|
|
201
|
-
it('should get correct active network token address', () => {
|
|
202
|
-
let mock = vi
|
|
203
|
-
.spyOn(ChainController.state, 'activeCaipNetwork', 'get')
|
|
204
|
-
.mockReturnValue(undefined);
|
|
205
|
-
expect(ChainController.getActiveNetworkTokenAddress()).toEqual('eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee');
|
|
206
|
-
mock.mockReturnValue(mainnetCaipNetwork);
|
|
207
|
-
expect(ChainController.getActiveNetworkTokenAddress()).toEqual('eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee');
|
|
208
|
-
mock.mockReturnValue(solanaCaipNetwork);
|
|
209
|
-
expect(ChainController.getActiveNetworkTokenAddress()).toEqual('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp:So11111111111111111111111111111111111111111');
|
|
210
|
-
mock.mockClear();
|
|
211
|
-
});
|
|
212
|
-
it('should update state correctly on setRequestedCaipNetworks()', () => {
|
|
213
|
-
ChainController.setRequestedCaipNetworks(requestedCaipNetworks, chainNamespace);
|
|
214
|
-
const requestedNetworks = ChainController.getRequestedCaipNetworks(chainNamespace);
|
|
215
|
-
expect(requestedNetworks).toEqual(requestedCaipNetworks);
|
|
216
|
-
});
|
|
217
|
-
it('should reset state correctly on resetNetwork()', () => {
|
|
218
|
-
const namespace = 'eip155';
|
|
219
|
-
ChainController.resetNetwork(namespace);
|
|
220
|
-
const requestedCaipNetworks = ChainController.getRequestedCaipNetworks(namespace);
|
|
221
|
-
const approvedCaipNetworkIds = ChainController.getApprovedCaipNetworkIds(namespace);
|
|
222
|
-
const smartAccountEnabledNetworks = ChainController.getNetworkProp('smartAccountEnabledNetworks', chainNamespace);
|
|
223
|
-
expect(approvedCaipNetworkIds).toEqual([]);
|
|
224
|
-
expect(requestedCaipNetworks).toEqual(requestedCaipNetworks);
|
|
225
|
-
expect(smartAccountEnabledNetworks).toEqual([]);
|
|
226
|
-
});
|
|
227
|
-
it('should reset account as expected', () => {
|
|
228
|
-
ChainController.resetAccount(chainNamespace);
|
|
229
|
-
expect(ChainController.getAccountProp('smartAccountDeployed', chainNamespace)).toEqual(false);
|
|
230
|
-
expect(ChainController.getAccountProp('currentTab', chainNamespace)).toEqual(0);
|
|
231
|
-
expect(ChainController.getAccountProp('caipAddress', chainNamespace)).toEqual(undefined);
|
|
232
|
-
expect(ChainController.getAccountProp('address', chainNamespace)).toEqual(undefined);
|
|
233
|
-
expect(ChainController.getAccountProp('balance', chainNamespace)).toEqual(undefined);
|
|
234
|
-
expect(ChainController.getAccountProp('balanceSymbol', chainNamespace)).toEqual(undefined);
|
|
235
|
-
expect(ChainController.getAccountProp('profileName', chainNamespace)).toEqual(undefined);
|
|
236
|
-
expect(ChainController.getAccountProp('profileImage', chainNamespace)).toEqual(undefined);
|
|
237
|
-
expect(ChainController.getAccountProp('addressExplorerUrl', chainNamespace)).toEqual(undefined);
|
|
238
|
-
expect(ChainController.getAccountProp('tokenBalance', chainNamespace)).toEqual([]);
|
|
239
|
-
expect(ChainController.getAccountProp('connectedWalletInfo', chainNamespace)).toEqual(undefined);
|
|
240
|
-
expect(ChainController.getAccountProp('preferredAccountType', chainNamespace)).toEqual(undefined);
|
|
241
|
-
expect(ChainController.getAccountProp('status', chainNamespace)).toEqual('disconnected');
|
|
242
|
-
expect(ChainController.getAccountProp('socialProvider', chainNamespace)).toEqual(undefined);
|
|
243
|
-
expect(ChainController.getAccountProp('socialWindow', chainNamespace)).toEqual(undefined);
|
|
244
|
-
});
|
|
245
|
-
it('Expect modal to close after switching from unsupported network to supported network', async () => {
|
|
246
|
-
// Mock RouterController.goBack
|
|
247
|
-
const routerGoBackSpy = vi.spyOn(RouterController, 'goBack');
|
|
248
|
-
// Setup adapter with limited network support
|
|
249
|
-
const limitedEvmAdapter = {
|
|
250
|
-
namespace: ConstantsUtil.CHAIN.EVM,
|
|
251
|
-
connectionControllerClient,
|
|
252
|
-
networkControllerClient,
|
|
253
|
-
caipNetworks: [
|
|
254
|
-
{
|
|
255
|
-
id: 1,
|
|
256
|
-
caipNetworkId: 'eip155:1',
|
|
257
|
-
name: 'Ethereum',
|
|
258
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM
|
|
259
|
-
}
|
|
260
|
-
]
|
|
261
|
-
};
|
|
262
|
-
ChainController.state.activeCaipNetwork = {
|
|
263
|
-
id: 42161,
|
|
264
|
-
caipNetworkId: 'eip155:42161',
|
|
265
|
-
name: 'Arbitrum One',
|
|
266
|
-
chainNamespace: ConstantsUtil.CHAIN.EVM,
|
|
267
|
-
nativeCurrency: {
|
|
268
|
-
name: 'Arbitrum',
|
|
269
|
-
symbol: 'ARB',
|
|
270
|
-
decimals: 18
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
ChainController.state.chains.set(ConstantsUtil.CHAIN.EVM, limitedEvmAdapter);
|
|
274
|
-
await ChainController.switchActiveNetwork(mainnetCaipNetwork);
|
|
275
|
-
expect(routerGoBackSpy).toHaveBeenCalled();
|
|
276
|
-
routerGoBackSpy.mockRestore();
|
|
277
|
-
});
|
|
278
|
-
it('should initialize with active network from local storage', () => {
|
|
279
|
-
const getItemSpy = vi.spyOn(SafeLocalStorage, 'getItem').mockReturnValue('eip155');
|
|
280
|
-
ChainController.initialize([evmAdapter], requestedCaipNetworks, {
|
|
281
|
-
connectionControllerClient,
|
|
282
|
-
networkControllerClient
|
|
283
|
-
});
|
|
284
|
-
expect(getItemSpy).toHaveBeenCalledWith(SafeLocalStorageKeys.ACTIVE_NAMESPACE);
|
|
285
|
-
expect(ChainController.state.activeChain).toEqual(ConstantsUtil.CHAIN.EVM);
|
|
286
|
-
getItemSpy.mockRestore();
|
|
287
|
-
});
|
|
288
|
-
it('should initialize with first adapter when stored network not found', () => {
|
|
289
|
-
const getItemSpy = vi.spyOn(SafeLocalStorage, 'getItem').mockReturnValue('solana');
|
|
290
|
-
ChainController.initialize([solanaAdapter, evmAdapter], requestedCaipNetworks, {
|
|
291
|
-
connectionControllerClient,
|
|
292
|
-
networkControllerClient
|
|
293
|
-
});
|
|
294
|
-
expect(getItemSpy).toHaveBeenCalledWith(SafeLocalStorageKeys.ACTIVE_NAMESPACE);
|
|
295
|
-
expect(ChainController.state.activeChain).toEqual(ConstantsUtil.CHAIN.SOLANA);
|
|
296
|
-
getItemSpy.mockRestore();
|
|
297
|
-
});
|
|
298
|
-
it('should set noAdapters flag when no adapters provided', () => {
|
|
299
|
-
ChainController.initialize([], requestedCaipNetworks, {
|
|
300
|
-
connectionControllerClient,
|
|
301
|
-
networkControllerClient
|
|
302
|
-
});
|
|
303
|
-
expect(ChainController.state.noAdapters).toBe(true);
|
|
304
|
-
});
|
|
305
|
-
it('should set noAdapters flag when no adapter provided', () => {
|
|
306
|
-
ChainController.initialize([], requestedCaipNetworks, {
|
|
307
|
-
connectionControllerClient,
|
|
308
|
-
networkControllerClient
|
|
309
|
-
});
|
|
310
|
-
expect(ChainController.state.noAdapters).toBe(true);
|
|
311
|
-
});
|
|
312
|
-
it('should properly handle disconnect', async () => {
|
|
313
|
-
const resetAccountSpy = vi.spyOn(ChainController, 'resetAccount');
|
|
314
|
-
const resetNetworkSpy = vi.spyOn(ChainController, 'resetNetwork');
|
|
315
|
-
const deleteConnectorSpy = vi.spyOn(StorageUtil, 'deleteConnectedConnectorId');
|
|
316
|
-
const deleteConnectedSocialProviderSpy = vi.spyOn(StorageUtil, 'deleteConnectedSocialProvider');
|
|
317
|
-
const resetWcConnectionSpy = vi.spyOn(ConnectionController, 'resetWcConnection');
|
|
318
|
-
const sendEventSpy = vi.spyOn(EventsController, 'sendEvent');
|
|
319
|
-
const connectionController = {
|
|
320
|
-
...connectionControllerClient,
|
|
321
|
-
disconnect: vi.fn()
|
|
322
|
-
};
|
|
323
|
-
const evmAdapterCustom = {
|
|
324
|
-
...evmAdapter,
|
|
325
|
-
connectionControllerClient: connectionController
|
|
326
|
-
};
|
|
327
|
-
const solanaAdapterCustom = {
|
|
328
|
-
...solanaAdapter,
|
|
329
|
-
connectionControllerClient: connectionController
|
|
330
|
-
};
|
|
331
|
-
ChainController.initialize([evmAdapterCustom, solanaAdapterCustom], [...requestedCaipNetworks, solanaCaipNetwork], {
|
|
332
|
-
connectionControllerClient: connectionController,
|
|
333
|
-
networkControllerClient
|
|
334
|
-
});
|
|
335
|
-
await ChainController.disconnect();
|
|
336
|
-
expect(connectionController.disconnect).toHaveBeenCalledTimes(2);
|
|
337
|
-
expect(resetAccountSpy).toHaveBeenCalledWith(ConstantsUtil.CHAIN.EVM);
|
|
338
|
-
expect(resetAccountSpy).toHaveBeenCalledWith(ConstantsUtil.CHAIN.SOLANA);
|
|
339
|
-
expect(resetNetworkSpy).toHaveBeenCalledWith(ConstantsUtil.CHAIN.EVM);
|
|
340
|
-
expect(resetNetworkSpy).toHaveBeenCalledWith(ConstantsUtil.CHAIN.SOLANA);
|
|
341
|
-
expect(deleteConnectorSpy).toHaveBeenCalled();
|
|
342
|
-
expect(deleteConnectedSocialProviderSpy).toHaveBeenCalled();
|
|
343
|
-
expect(resetWcConnectionSpy).toHaveBeenCalled();
|
|
344
|
-
expect(sendEventSpy).toHaveBeenCalledWith({
|
|
345
|
-
type: 'track',
|
|
346
|
-
event: 'DISCONNECT_SUCCESS'
|
|
347
|
-
});
|
|
348
|
-
resetAccountSpy.mockRestore();
|
|
349
|
-
resetNetworkSpy.mockRestore();
|
|
350
|
-
deleteConnectorSpy.mockRestore();
|
|
351
|
-
resetWcConnectionSpy.mockRestore();
|
|
352
|
-
sendEventSpy.mockRestore();
|
|
353
|
-
});
|
|
354
|
-
it('should handle disconnect errors gracefully', async () => {
|
|
355
|
-
const evmConnectionController = {
|
|
356
|
-
disconnect: vi.fn().mockRejectedValue(new Error('EVM disconnect failed'))
|
|
357
|
-
};
|
|
358
|
-
const customEvmAdapter = {
|
|
359
|
-
...evmAdapter,
|
|
360
|
-
connectionControllerClient: evmConnectionController
|
|
361
|
-
};
|
|
362
|
-
const sendEventSpy = vi.spyOn(EventsController, 'sendEvent');
|
|
363
|
-
const consoleSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
364
|
-
ChainController.initialize([customEvmAdapter], requestedCaipNetworks, {
|
|
365
|
-
connectionControllerClient: evmConnectionController,
|
|
366
|
-
networkControllerClient
|
|
367
|
-
});
|
|
368
|
-
await ChainController.disconnect();
|
|
369
|
-
expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('EVM disconnect failed'));
|
|
370
|
-
expect(sendEventSpy).toHaveBeenCalledWith({
|
|
371
|
-
type: 'track',
|
|
372
|
-
event: 'DISCONNECT_ERROR',
|
|
373
|
-
properties: {
|
|
374
|
-
message: expect.stringContaining('EVM disconnect failed')
|
|
375
|
-
}
|
|
376
|
-
});
|
|
377
|
-
expect(sendEventSpy).not.toHaveBeenCalledWith({
|
|
378
|
-
type: 'track',
|
|
379
|
-
event: 'DISCONNECT_SUCCESS'
|
|
380
|
-
});
|
|
381
|
-
sendEventSpy.mockRestore();
|
|
382
|
-
consoleSpy.mockRestore();
|
|
383
|
-
});
|
|
384
|
-
});
|
|
385
|
-
//# sourceMappingURL=ChainController.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChainController.test.js","sourceRoot":"","sources":["../../../../tests/controllers/ChainController.test.ts"],"names":[],"mappings":"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"}
|