@spacesops/wdk-react-native-core 1.0.0-beta.69 → 1.0.0-beta.71

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.
Files changed (142) hide show
  1. package/dist/hooks/useBalance.js +50 -7
  2. package/dist/hooks/useBalance.js.map +1 -1
  3. package/dist/hooks/useTransactions.d.ts +21 -0
  4. package/dist/hooks/useTransactions.js +64 -0
  5. package/dist/hooks/useTransactions.js.map +1 -0
  6. package/dist/index.d.ts +5 -2
  7. package/dist/index.js +3 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/provider/WdkAppProvider.d.ts +7 -2
  10. package/dist/provider/WdkAppProvider.js +6 -1
  11. package/dist/provider/WdkAppProvider.js.map +1 -1
  12. package/dist/services/transactionService.d.ts +27 -0
  13. package/dist/services/transactionService.js +173 -0
  14. package/dist/services/transactionService.js.map +1 -0
  15. package/dist/store/indexerConfigStore.d.ts +7 -0
  16. package/dist/store/indexerConfigStore.js +14 -0
  17. package/dist/store/indexerConfigStore.js.map +1 -0
  18. package/dist/types.d.ts +39 -0
  19. package/dist/utils/constants.d.ts +18 -0
  20. package/dist/utils/constants.js +18 -0
  21. package/dist/utils/constants.js.map +1 -1
  22. package/dist/utils/mmkvKeyManager.js +3 -3
  23. package/dist/utils/mmkvKeyManager.js.map +1 -1
  24. package/dist/utils/operationMutex.js.map +1 -1
  25. package/dist/utils/retryUtils.d.ts +19 -0
  26. package/dist/utils/retryUtils.js +55 -0
  27. package/dist/utils/retryUtils.js.map +1 -0
  28. package/dist/utils/schemas.d.ts +15 -3
  29. package/dist/utils/schemas.js +27 -2
  30. package/dist/utils/schemas.js.map +1 -1
  31. package/dist/utils/typeGuards.d.ts +1 -1
  32. package/dist/utils/typeGuards.js +3 -3
  33. package/dist/utils/typeGuards.js.map +1 -1
  34. package/package.json +2 -1
  35. package/src/__tests__/services/transactionService.test.ts +22 -0
  36. package/src/hooks/useBalance.ts +2 -3
  37. package/src/services/transactionService.ts +28 -5
  38. package/src/types.ts +6 -0
  39. package/src/utils/mmkvKeyManager.ts +3 -3
  40. package/src/utils/operationMutex.ts +1 -1
  41. package/dist/__mocks__/react.d.ts +0 -40
  42. package/dist/__mocks__/react.js +0 -33
  43. package/dist/__mocks__/react.js.map +0 -1
  44. package/dist/__mocks__/secureStorage.d.ts +0 -27
  45. package/dist/__mocks__/secureStorage.js +0 -81
  46. package/dist/__mocks__/secureStorage.js.map +0 -1
  47. package/dist/__tests__/hooks/useBalance.test.d.ts +0 -6
  48. package/dist/__tests__/hooks/useBalance.test.js +0 -217
  49. package/dist/__tests__/hooks/useBalance.test.js.map +0 -1
  50. package/dist/__tests__/hooks/useWallet.test.d.ts +0 -6
  51. package/dist/__tests__/hooks/useWallet.test.js +0 -105
  52. package/dist/__tests__/hooks/useWallet.test.js.map +0 -1
  53. package/dist/__tests__/hooks/useWalletManager.test.d.ts +0 -6
  54. package/dist/__tests__/hooks/useWalletManager.test.js +0 -193
  55. package/dist/__tests__/hooks/useWalletManager.test.js.map +0 -1
  56. package/dist/__tests__/hooks/useWdkApp.test.d.ts +0 -6
  57. package/dist/__tests__/hooks/useWdkApp.test.js +0 -55
  58. package/dist/__tests__/hooks/useWdkApp.test.js.map +0 -1
  59. package/dist/__tests__/hooks/useWorklet.test.d.ts +0 -6
  60. package/dist/__tests__/hooks/useWorklet.test.js +0 -168
  61. package/dist/__tests__/hooks/useWorklet.test.js.map +0 -1
  62. package/dist/__tests__/provider/WdkAppProvider.test.d.ts +0 -6
  63. package/dist/__tests__/provider/WdkAppProvider.test.js +0 -57
  64. package/dist/__tests__/provider/WdkAppProvider.test.js.map +0 -1
  65. package/dist/__tests__/services/accountService.test.d.ts +0 -6
  66. package/dist/__tests__/services/accountService.test.js +0 -263
  67. package/dist/__tests__/services/accountService.test.js.map +0 -1
  68. package/dist/__tests__/services/addressService.test.d.ts +0 -6
  69. package/dist/__tests__/services/addressService.test.js +0 -258
  70. package/dist/__tests__/services/addressService.test.js.map +0 -1
  71. package/dist/__tests__/services/balanceService.test.d.ts +0 -6
  72. package/dist/__tests__/services/balanceService.test.js +0 -333
  73. package/dist/__tests__/services/balanceService.test.js.map +0 -1
  74. package/dist/__tests__/services/walletSetupService.test.d.ts +0 -6
  75. package/dist/__tests__/services/walletSetupService.test.js +0 -304
  76. package/dist/__tests__/services/walletSetupService.test.js.map +0 -1
  77. package/dist/__tests__/services/walletSwitchingService.test.d.ts +0 -6
  78. package/dist/__tests__/services/walletSwitchingService.test.js +0 -209
  79. package/dist/__tests__/services/walletSwitchingService.test.js.map +0 -1
  80. package/dist/__tests__/services/workletLifecycleService.test.d.ts +0 -6
  81. package/dist/__tests__/services/workletLifecycleService.test.js +0 -451
  82. package/dist/__tests__/services/workletLifecycleService.test.js.map +0 -1
  83. package/dist/__tests__/setup.d.ts +0 -4
  84. package/dist/__tests__/setup.js +0 -49
  85. package/dist/__tests__/setup.js.map +0 -1
  86. package/dist/__tests__/storage/mmkvStorage.test.d.ts +0 -6
  87. package/dist/__tests__/storage/mmkvStorage.test.js +0 -213
  88. package/dist/__tests__/storage/mmkvStorage.test.js.map +0 -1
  89. package/dist/__tests__/store/walletStore.test.d.ts +0 -4
  90. package/dist/__tests__/store/walletStore.test.js +0 -86
  91. package/dist/__tests__/store/walletStore.test.js.map +0 -1
  92. package/dist/__tests__/store/workletStore.test.d.ts +0 -4
  93. package/dist/__tests__/store/workletStore.test.js +0 -255
  94. package/dist/__tests__/store/workletStore.test.js.map +0 -1
  95. package/dist/__tests__/types/hrpc.test.d.ts +0 -4
  96. package/dist/__tests__/types/hrpc.test.js +0 -99
  97. package/dist/__tests__/types/hrpc.test.js.map +0 -1
  98. package/dist/__tests__/utils/balanceUtils.test.d.ts +0 -4
  99. package/dist/__tests__/utils/balanceUtils.test.js +0 -133
  100. package/dist/__tests__/utils/balanceUtils.test.js.map +0 -1
  101. package/dist/__tests__/utils/errorHandling.test.d.ts +0 -6
  102. package/dist/__tests__/utils/errorHandling.test.js +0 -119
  103. package/dist/__tests__/utils/errorHandling.test.js.map +0 -1
  104. package/dist/__tests__/utils/errorUtils.test.d.ts +0 -4
  105. package/dist/__tests__/utils/errorUtils.test.js +0 -133
  106. package/dist/__tests__/utils/errorUtils.test.js.map +0 -1
  107. package/dist/__tests__/utils/initializationState.test.d.ts +0 -6
  108. package/dist/__tests__/utils/initializationState.test.js +0 -243
  109. package/dist/__tests__/utils/initializationState.test.js.map +0 -1
  110. package/dist/__tests__/utils/jsonUtils.test.d.ts +0 -4
  111. package/dist/__tests__/utils/jsonUtils.test.js +0 -118
  112. package/dist/__tests__/utils/jsonUtils.test.js.map +0 -1
  113. package/dist/__tests__/utils/mmkvKeyManager.test.d.ts +0 -6
  114. package/dist/__tests__/utils/mmkvKeyManager.test.js +0 -158
  115. package/dist/__tests__/utils/mmkvKeyManager.test.js.map +0 -1
  116. package/dist/__tests__/utils/mnemonicUtils.test.d.ts +0 -4
  117. package/dist/__tests__/utils/mnemonicUtils.test.js +0 -40
  118. package/dist/__tests__/utils/mnemonicUtils.test.js.map +0 -1
  119. package/dist/__tests__/utils/raceConditions.test.d.ts +0 -6
  120. package/dist/__tests__/utils/raceConditions.test.js +0 -239
  121. package/dist/__tests__/utils/raceConditions.test.js.map +0 -1
  122. package/dist/__tests__/utils/result.test.d.ts +0 -4
  123. package/dist/__tests__/utils/result.test.js +0 -66
  124. package/dist/__tests__/utils/result.test.js.map +0 -1
  125. package/dist/__tests__/utils/schemas.test.d.ts +0 -4
  126. package/dist/__tests__/utils/schemas.test.js +0 -66
  127. package/dist/__tests__/utils/schemas.test.js.map +0 -1
  128. package/dist/__tests__/utils/storeHelpers.test.d.ts +0 -4
  129. package/dist/__tests__/utils/storeHelpers.test.js +0 -227
  130. package/dist/__tests__/utils/storeHelpers.test.js.map +0 -1
  131. package/dist/__tests__/utils/typeGuards.test.d.ts +0 -4
  132. package/dist/__tests__/utils/typeGuards.test.js +0 -175
  133. package/dist/__tests__/utils/typeGuards.test.js.map +0 -1
  134. package/dist/__tests__/utils/validation.test.d.ts +0 -4
  135. package/dist/__tests__/utils/validation.test.js +0 -167
  136. package/dist/__tests__/utils/validation.test.js.map +0 -1
  137. package/dist/__tests__/utils/walletUtils.test.d.ts +0 -4
  138. package/dist/__tests__/utils/walletUtils.test.js +0 -156
  139. package/dist/__tests__/utils/walletUtils.test.js.map +0 -1
  140. package/dist/utils/types.js +0 -6
  141. package/dist/utils/utils/schemas.js +0 -173
  142. package/dist/utils/utils/validation.js +0 -151
@@ -1,451 +0,0 @@
1
- /**
2
- * Tests for WorkletLifecycleService
3
- *
4
- * Tests worklet initialization with various network configurations
5
- */
6
- import { WorkletLifecycleService } from '../../services/workletLifecycleService';
7
- import { getWorkletStore } from '../../store/workletStore';
8
- // Mock dependencies
9
- const mockWorkletInstance = {
10
- start: jest.fn(),
11
- IPC: {
12
- send: jest.fn(),
13
- on: jest.fn(),
14
- },
15
- };
16
- jest.mock('@spacesops/react-native-bare-kit', () => ({
17
- Worklet: jest.fn().mockImplementation(() => mockWorkletInstance),
18
- }));
19
- const mockHRPCInstance = {
20
- workletStart: jest.fn(() => Promise.resolve({ status: 'success' })),
21
- ipc: mockWorkletInstance.IPC,
22
- };
23
- // Mock @spacesops/pear-wrk-wdk with proper module structure
24
- // Note: We create the mock HRPC inside the factory to avoid hoisting issues
25
- jest.mock('@spacesops/pear-wrk-wdk', () => {
26
- const mockHRPC = jest.fn().mockImplementation(() => ({
27
- workletStart: jest.fn(() => Promise.resolve({ status: 'success' })),
28
- ipc: mockWorkletInstance.IPC,
29
- }));
30
- return {
31
- __esModule: true,
32
- default: {
33
- bundle: 'mock-bundle',
34
- },
35
- HRPC: mockHRPC,
36
- bundle: 'mock-bundle',
37
- };
38
- });
39
- // Create a shared mock store that will be returned by getWorkletStore
40
- let sharedMockStore;
41
- // Mock workletStore
42
- jest.mock('../../store/workletStore', () => ({
43
- getWorkletStore: jest.fn(() => {
44
- if (!sharedMockStore) {
45
- sharedMockStore = {
46
- getState: jest.fn(() => ({
47
- isWorkletStarted: false,
48
- isInitialized: false,
49
- isLoading: false,
50
- worklet: null,
51
- hrpc: null,
52
- error: null,
53
- })),
54
- setState: jest.fn(),
55
- };
56
- }
57
- return sharedMockStore;
58
- }),
59
- }));
60
- /**
61
- * Real-world network configuration for testing
62
- * This matches the configuration used in production
63
- * Note: Some fields like safeModulesVersion, paymasterToken, and network are extensions
64
- * beyond the base NetworkConfig type but are valid in practice
65
- */
66
- const defaultNetworkConfigs = {
67
- sepolia: {
68
- chainId: 11155111,
69
- blockchain: 'sepolia',
70
- provider: 'https://sepolia.gateway.tenderly.co',
71
- bundlerUrl: 'https://api.candide.dev/public/v3/sepolia',
72
- paymasterUrl: 'https://api.candide.dev/public/v3/sepolia',
73
- paymasterAddress: '0x8b1f6cb5d062aa2ce8d581942bbb960420d875ba',
74
- entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
75
- safeModulesVersion: '0.3.0',
76
- paymasterToken: {
77
- address: '0xd077A400968890Eacc75cdc901F0356c943e4fDb',
78
- },
79
- transferMaxFee: 100000,
80
- },
81
- ethereum: {
82
- chainId: 1,
83
- blockchain: 'ethereum',
84
- provider: 'https://wallet-ap7ha02ezs.rumble.com/eth',
85
- bundlerUrl: 'https://api.candide.dev/public/v3/ethereum',
86
- paymasterUrl: 'https://api.candide.dev/public/v3/ethereum',
87
- paymasterAddress: '0x8b1f6cb5d062aa2ce8d581942bbb960420d875ba',
88
- entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
89
- safeModulesVersion: '0.3.0',
90
- paymasterToken: {
91
- address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
92
- },
93
- transferMaxFee: 100000,
94
- },
95
- polygon: {
96
- chainId: 137,
97
- blockchain: 'polygon',
98
- provider: 'https://wallet-ap7ha02ezs.rumble.com/pol',
99
- bundlerUrl: 'https://api.candide.dev/public/v3/polygon',
100
- paymasterUrl: 'https://api.candide.dev/public/v3/polygon',
101
- paymasterAddress: '0x8b1f6cb5d062aa2ce8d581942bbb960420d875ba',
102
- entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
103
- safeModulesVersion: '0.3.0',
104
- paymasterToken: {
105
- address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
106
- },
107
- transferMaxFee: 100000,
108
- },
109
- arbitrum: {
110
- chainId: 42161,
111
- blockchain: 'arbitrum',
112
- provider: 'https://wallet-ap7ha02ezs.rumble.com/arb',
113
- bundlerUrl: 'https://public.pimlico.io/v2/42161/rpc',
114
- paymasterUrl: 'https://public.pimlico.io/v2/42161/rpc',
115
- paymasterAddress: '0x777777777777AeC03fd955926DbF81597e66834C',
116
- entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
117
- safeModulesVersion: '0.3.0',
118
- paymasterToken: {
119
- address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',
120
- },
121
- transferMaxFee: 100000,
122
- },
123
- plasma: {
124
- chainId: 9745,
125
- blockchain: 'plasma',
126
- provider: 'https://rpc.plasma.to',
127
- bundlerUrl: 'https://api.candide.dev/public/v3/9745',
128
- paymasterUrl: 'https://api.candide.dev/public/v3/9745',
129
- paymasterAddress: '0x8b1f6cb5d062aa2ce8d581942bbb960420d875ba',
130
- entryPointAddress: '0x0000000071727De22E5E9d8BAf0edAc6f37da032',
131
- safeModulesVersion: '0.3.0',
132
- paymasterToken: {
133
- address: '0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb',
134
- },
135
- transferMaxFee: 100000,
136
- },
137
- spark: {
138
- chainId: 99999,
139
- blockchain: 'spark',
140
- network: 'MAINNET', // Spark network type (MAINNET, TESTNET)
141
- },
142
- };
143
- describe('WorkletLifecycleService', () => {
144
- let mockStore;
145
- beforeEach(() => {
146
- jest.clearAllMocks();
147
- // Reset mock implementations
148
- mockWorkletInstance.start.mockClear();
149
- mockHRPCInstance.workletStart.mockResolvedValue({ status: 'success' });
150
- // Reset HRPC constructor mock
151
- const { HRPC } = require('@spacesops/pear-wrk-wdk');
152
- if (HRPC && typeof HRPC.mockImplementation === 'function') {
153
- HRPC.mockImplementation(() => mockHRPCInstance);
154
- }
155
- // Setup mock store - get the shared instance
156
- mockStore = getWorkletStore();
157
- const defaultState = {
158
- isWorkletStarted: false,
159
- isInitialized: false,
160
- isLoading: false,
161
- worklet: null,
162
- hrpc: null,
163
- ipc: null,
164
- error: null,
165
- encryptedSeed: null,
166
- encryptionKey: null,
167
- networkConfigs: null,
168
- workletStartResult: null,
169
- wdkInitResult: null,
170
- };
171
- // Update the shared mock store
172
- sharedMockStore.getState = jest.fn(() => defaultState);
173
- sharedMockStore.setState = jest.fn();
174
- });
175
- describe('startWorklet', () => {
176
- it('should start worklet with default network configuration', async () => {
177
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
178
- // Verify worklet was created
179
- const { Worklet } = require('@spacesops/react-native-bare-kit');
180
- expect(Worklet).toHaveBeenCalled();
181
- // Verify worklet.start was called with bundle
182
- expect(mockWorkletInstance.start).toHaveBeenCalledWith('/wdk-worklet.bundle', 'mock-bundle');
183
- // Verify HRPC was created
184
- const { HRPC } = require('@spacesops/pear-wrk-wdk');
185
- expect(HRPC).toHaveBeenCalledWith(mockWorkletInstance.IPC);
186
- // Verify workletStart was called with serialized config
187
- expect(mockHRPCInstance.workletStart).toHaveBeenCalledWith({
188
- config: JSON.stringify(defaultNetworkConfigs),
189
- });
190
- // Verify store state was updated (check that setState was called at least once)
191
- expect(mockStore.setState).toHaveBeenCalled();
192
- // Verify the final state update contains the expected values
193
- const setStateMock = mockStore.setState;
194
- const finalStateCall = setStateMock.mock.calls[setStateMock.mock.calls.length - 1];
195
- if (finalStateCall && typeof finalStateCall[0] === 'function') {
196
- const prevState = mockStore.getState();
197
- const newState = finalStateCall[0](prevState);
198
- expect(newState.isWorkletStarted).toBe(true);
199
- expect(newState.isLoading).toBe(false);
200
- expect(newState.networkConfigs).toEqual(defaultNetworkConfigs);
201
- expect(newState.worklet).toBe(mockWorkletInstance);
202
- expect(newState.hrpc).toBe(mockHRPCInstance);
203
- expect(newState.error).toBeNull();
204
- }
205
- });
206
- it('should serialize network configuration correctly', async () => {
207
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
208
- // Verify the config was serialized to JSON
209
- const calls = mockHRPCInstance.workletStart.mock.calls;
210
- expect(calls.length).toBeGreaterThan(0);
211
- const workletStartCall = calls[0];
212
- const configString = workletStartCall[0].config;
213
- const parsedConfig = JSON.parse(configString);
214
- // Verify all networks are present
215
- expect(parsedConfig).toHaveProperty('sepolia');
216
- expect(parsedConfig).toHaveProperty('ethereum');
217
- expect(parsedConfig).toHaveProperty('polygon');
218
- expect(parsedConfig).toHaveProperty('arbitrum');
219
- expect(parsedConfig).toHaveProperty('plasma');
220
- expect(parsedConfig).toHaveProperty('spark');
221
- // Verify network properties
222
- expect(parsedConfig.ethereum).toMatchObject({
223
- chainId: 1,
224
- blockchain: 'ethereum',
225
- provider: 'https://wallet-ap7ha02ezs.rumble.com/eth',
226
- });
227
- expect(parsedConfig.polygon).toMatchObject({
228
- chainId: 137,
229
- blockchain: 'polygon',
230
- provider: 'https://wallet-ap7ha02ezs.rumble.com/pol',
231
- });
232
- expect(parsedConfig.arbitrum).toMatchObject({
233
- chainId: 42161,
234
- blockchain: 'arbitrum',
235
- provider: 'https://wallet-ap7ha02ezs.rumble.com/arb',
236
- });
237
- // Verify extended properties are preserved
238
- expect(parsedConfig.ethereum).toHaveProperty('safeModulesVersion', '0.3.0');
239
- expect(parsedConfig.ethereum).toHaveProperty('paymasterToken');
240
- expect(parsedConfig.ethereum.paymasterToken).toHaveProperty('address');
241
- expect(parsedConfig.spark).toHaveProperty('network', 'MAINNET');
242
- });
243
- it('should handle all network types in the configuration', async () => {
244
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
245
- const calls = mockHRPCInstance.workletStart.mock.calls;
246
- expect(calls.length).toBeGreaterThan(0);
247
- const workletStartCall = calls[0];
248
- const configString = workletStartCall[0].config;
249
- const parsedConfig = JSON.parse(configString);
250
- // Verify each network has required fields
251
- const networks = ['sepolia', 'ethereum', 'polygon', 'arbitrum', 'plasma', 'spark'];
252
- for (const network of networks) {
253
- expect(parsedConfig).toHaveProperty(network);
254
- expect(parsedConfig[network]).toHaveProperty('chainId');
255
- expect(parsedConfig[network]).toHaveProperty('blockchain');
256
- expect(typeof parsedConfig[network].chainId).toBe('number');
257
- expect(typeof parsedConfig[network].blockchain).toBe('string');
258
- }
259
- });
260
- it('should preserve optional fields in network configuration', async () => {
261
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
262
- const calls = mockHRPCInstance.workletStart.mock.calls;
263
- expect(calls.length).toBeGreaterThan(0);
264
- const workletStartCall = calls[0];
265
- const configString = workletStartCall[0].config;
266
- const parsedConfig = JSON.parse(configString);
267
- // Verify optional fields are preserved for networks that have them
268
- const ethereumConfig = parsedConfig.ethereum;
269
- expect(ethereumConfig).toHaveProperty('bundlerUrl');
270
- expect(ethereumConfig).toHaveProperty('paymasterUrl');
271
- expect(ethereumConfig).toHaveProperty('paymasterAddress');
272
- expect(ethereumConfig).toHaveProperty('entryPointAddress');
273
- expect(ethereumConfig).toHaveProperty('transferMaxFee');
274
- expect(ethereumConfig).toHaveProperty('safeModulesVersion');
275
- expect(ethereumConfig).toHaveProperty('paymasterToken');
276
- // Verify spark has its network field
277
- expect(parsedConfig.spark).toHaveProperty('network', 'MAINNET');
278
- });
279
- it('should not start worklet if already started', async () => {
280
- // Clear previous calls
281
- mockHRPCInstance.workletStart.mockClear();
282
- const { Worklet: WorkletConstructor } = require('@spacesops/react-native-bare-kit');
283
- WorkletConstructor.mockClear();
284
- mockStore.setState.mockClear();
285
- // Set up mock store to return "already started" state
286
- const alreadyStartedState = {
287
- isWorkletStarted: true,
288
- isInitialized: false,
289
- isLoading: false,
290
- worklet: mockWorkletInstance,
291
- hrpc: mockHRPCInstance,
292
- ipc: mockWorkletInstance.IPC,
293
- error: null,
294
- encryptedSeed: null,
295
- encryptionKey: null,
296
- networkConfigs: defaultNetworkConfigs,
297
- workletStartResult: null,
298
- wdkInitResult: null,
299
- };
300
- mockStore.getState = jest.fn(() => alreadyStartedState);
301
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
302
- // Should not call workletStart again (early return should happen)
303
- expect(mockHRPCInstance.workletStart).not.toHaveBeenCalled();
304
- // Should not create new worklet
305
- expect(WorkletConstructor).not.toHaveBeenCalled();
306
- // Should not call setState (early return before any state changes)
307
- expect(mockStore.setState).not.toHaveBeenCalled();
308
- });
309
- it('should not start worklet if already loading', async () => {
310
- // Clear previous calls
311
- mockHRPCInstance.workletStart.mockClear();
312
- const { Worklet: WorkletConstructor } = require('@spacesops/react-native-bare-kit');
313
- WorkletConstructor.mockClear();
314
- mockStore.setState.mockClear();
315
- // Set up mock store to return "already loading" state
316
- const alreadyLoadingState = {
317
- isWorkletStarted: false,
318
- isInitialized: false,
319
- isLoading: true,
320
- worklet: null,
321
- hrpc: null,
322
- ipc: null,
323
- error: null,
324
- encryptedSeed: null,
325
- encryptionKey: null,
326
- networkConfigs: null,
327
- workletStartResult: null,
328
- wdkInitResult: null,
329
- };
330
- mockStore.getState = jest.fn(() => alreadyLoadingState);
331
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
332
- // Should not call workletStart (early return should happen)
333
- expect(mockHRPCInstance.workletStart).not.toHaveBeenCalled();
334
- // Should not create new worklet
335
- expect(WorkletConstructor).not.toHaveBeenCalled();
336
- // Should not call setState (early return before any state changes)
337
- expect(mockStore.setState).not.toHaveBeenCalled();
338
- });
339
- it('should handle errors during worklet initialization', async () => {
340
- // Make workletStart fail to simulate an error
341
- mockHRPCInstance.workletStart.mockRejectedValueOnce(new Error('Failed to start worklet'));
342
- await expect(WorkletLifecycleService.startWorklet(defaultNetworkConfigs)).rejects.toThrow();
343
- // Verify setState was called (at least for loading state and error state)
344
- expect(mockStore.setState).toHaveBeenCalled();
345
- // Verify error state was set in the last call
346
- const setStateMock = mockStore.setState;
347
- const allCalls = setStateMock.mock.calls;
348
- expect(allCalls.length).toBeGreaterThan(0);
349
- // Check if any call sets error state
350
- let errorStateFound = false;
351
- for (const call of allCalls) {
352
- if (typeof call[0] === 'function') {
353
- const prevState = mockStore.getState();
354
- const newState = call[0](prevState);
355
- if (newState.error !== null && newState.isLoading === false) {
356
- errorStateFound = true;
357
- break;
358
- }
359
- }
360
- else if (call[0] && typeof call[0] === 'object' && call[0].error !== null) {
361
- errorStateFound = true;
362
- break;
363
- }
364
- }
365
- expect(errorStateFound).toBe(true);
366
- });
367
- it('should cleanup existing worklet before starting new one', async () => {
368
- const existingWorklet = {
369
- start: jest.fn(),
370
- IPC: mockWorkletInstance.IPC,
371
- cleanup: jest.fn(),
372
- };
373
- const existingHRPC = {
374
- workletStart: jest.fn(() => Promise.resolve({ status: 'success' })),
375
- ipc: mockWorkletInstance.IPC,
376
- cleanup: jest.fn(),
377
- };
378
- mockStore.getState = jest.fn().mockReturnValue({
379
- isWorkletStarted: false,
380
- isInitialized: false,
381
- isLoading: false,
382
- worklet: existingWorklet,
383
- hrpc: existingHRPC,
384
- ipc: existingWorklet.IPC,
385
- error: null,
386
- encryptedSeed: null,
387
- encryptionKey: null,
388
- networkConfigs: null,
389
- workletStartResult: null,
390
- wdkInitResult: null,
391
- });
392
- await WorkletLifecycleService.startWorklet(defaultNetworkConfigs);
393
- // Verify new worklet was created (old one should be cleaned up)
394
- const { Worklet } = require('@spacesops/react-native-bare-kit');
395
- expect(Worklet).toHaveBeenCalled();
396
- });
397
- it('should handle minimal network configuration', async () => {
398
- const minimalConfig = {
399
- ethereum: {
400
- chainId: 1,
401
- blockchain: 'ethereum',
402
- },
403
- };
404
- await WorkletLifecycleService.startWorklet(minimalConfig);
405
- expect(mockHRPCInstance.workletStart).toHaveBeenCalled();
406
- const calls = mockHRPCInstance.workletStart.mock.calls;
407
- expect(calls.length).toBeGreaterThan(0);
408
- const workletStartCall = calls[0];
409
- expect(workletStartCall).toBeDefined();
410
- const configString = workletStartCall[0].config;
411
- const parsedConfig = JSON.parse(configString);
412
- expect(parsedConfig.ethereum).toMatchObject({
413
- chainId: 1,
414
- blockchain: 'ethereum',
415
- });
416
- });
417
- it('should handle network configuration with all optional fields', async () => {
418
- const fullConfig = {
419
- testnet: {
420
- chainId: 12345,
421
- blockchain: 'testnet',
422
- provider: 'https://testnet.example.com',
423
- bundlerUrl: 'https://bundler.example.com',
424
- paymasterUrl: 'https://paymaster.example.com',
425
- paymasterAddress: '0x1234567890123456789012345678901234567890',
426
- entryPointAddress: '0x0987654321098765432109876543210987654321',
427
- transferMaxFee: 50000,
428
- },
429
- };
430
- await WorkletLifecycleService.startWorklet(fullConfig);
431
- expect(mockHRPCInstance.workletStart).toHaveBeenCalled();
432
- const calls = mockHRPCInstance.workletStart.mock.calls;
433
- expect(calls.length).toBeGreaterThan(0);
434
- const workletStartCall = calls[0];
435
- expect(workletStartCall).toBeDefined();
436
- const configString = workletStartCall[0].config;
437
- const parsedConfig = JSON.parse(configString);
438
- expect(parsedConfig.testnet).toMatchObject({
439
- chainId: 12345,
440
- blockchain: 'testnet',
441
- provider: 'https://testnet.example.com',
442
- bundlerUrl: 'https://bundler.example.com',
443
- paymasterUrl: 'https://paymaster.example.com',
444
- paymasterAddress: '0x1234567890123456789012345678901234567890',
445
- entryPointAddress: '0x0987654321098765432109876543210987654321',
446
- transferMaxFee: 50000,
447
- });
448
- });
449
- });
450
- });
451
- //# sourceMappingURL=workletLifecycleService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workletLifecycleService.test.js","sourceRoot":"","sources":["../../../src/__tests__/services/workletLifecycleService.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- /**
2
- * Jest setup file for test configuration
3
- */
4
- declare const originalError: (message?: any, ...optionalParams: any[]) => void;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- /**
3
- * Jest setup file for test configuration
4
- */
5
- // Mock React Native modules
6
- jest.mock('react-native-mmkv', () => ({
7
- MMKV: jest.fn().mockImplementation(() => ({
8
- set: jest.fn(),
9
- getString: jest.fn(),
10
- getNumber: jest.fn(),
11
- getBoolean: jest.fn(),
12
- delete: jest.fn(),
13
- clearAll: jest.fn(),
14
- getAllKeys: jest.fn(() => []),
15
- contains: jest.fn(),
16
- })),
17
- }));
18
- // Mock expo-crypto
19
- jest.mock('expo-crypto', () => ({
20
- digestStringAsync: jest.fn(),
21
- getRandomBytesAsync: jest.fn(() => Promise.resolve(new Uint8Array(32))),
22
- }));
23
- // Mock @spacesops/pear-wrk-wdk
24
- jest.mock('@spacesops/pear-wrk-wdk', () => ({
25
- Worklet: jest.fn(),
26
- createWorklet: jest.fn(),
27
- }));
28
- // Mock @spacesops/react-native-bare-kit
29
- jest.mock('@spacesops/react-native-bare-kit', () => ({
30
- createBareKit: jest.fn(),
31
- }));
32
- // Suppress console.error in tests (we test error cases, but don't need the noise)
33
- const originalError = console.error;
34
- beforeAll(() => {
35
- console.error = jest.fn();
36
- });
37
- afterAll(() => {
38
- console.error = originalError;
39
- });
40
- // Reset all mocks before each test
41
- beforeEach(() => {
42
- jest.clearAllMocks();
43
- // Clear mock secure storage between tests
44
- const { mockSecureStorage } = require('../__mocks__/secureStorage');
45
- if (typeof mockSecureStorage._clearStorage === 'function') {
46
- mockSecureStorage._clearStorage();
47
- }
48
- });
49
- //# sourceMappingURL=setup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/__tests__/setup.ts"],"names":[],"mappings":";AAAA;;GAEG;AAEH,4BAA4B;AAC5B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;QACpB,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QACjB,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACnB,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;QAC7B,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;KACpB,CAAC,CAAC;CACJ,CAAC,CAAC,CAAA;AAEH,mBAAmB;AACnB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE;IAC5B,mBAAmB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;CACxE,CAAC,CAAC,CAAA;AAEH,+BAA+B;AAC/B,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE;IAClB,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;CACzB,CAAC,CAAC,CAAA;AAEH,wCAAwC;AACxC,IAAI,CAAC,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,CAAC;IACnD,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;CACzB,CAAC,CAAC,CAAA;AAEH,kFAAkF;AAClF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;AACnC,SAAS,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;AAC3B,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,GAAG,EAAE;IACZ,OAAO,CAAC,KAAK,GAAG,aAAa,CAAA;AAC/B,CAAC,CAAC,CAAA;AAEF,mCAAmC;AACnC,UAAU,CAAC,GAAG,EAAE;IACd,IAAI,CAAC,aAAa,EAAE,CAAA;IACpB,0CAA0C;IAC1C,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAA;IACnE,IAAI,OAAO,iBAAiB,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAC1D,iBAAiB,CAAC,aAAa,EAAE,CAAA;IACnC,CAAC;AACH,CAAC,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Tests for mmkvStorage
3
- *
4
- * Tests MMKV storage adapter with async initialization and LRU caching
5
- */
6
- export {};