@spacesops/wdk-react-native-core 1.0.0-beta.68 → 1.0.0-beta.70

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 (147) 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 +154 -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 +33 -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 +166 -0
  36. package/src/hooks/useBalance.ts +15 -12
  37. package/src/hooks/useTransactions.ts +98 -0
  38. package/src/index.ts +6 -0
  39. package/src/provider/WdkAppProvider.tsx +13 -1
  40. package/src/services/transactionService.ts +195 -0
  41. package/src/store/indexerConfigStore.ts +19 -0
  42. package/src/types.ts +36 -0
  43. package/src/utils/constants.ts +6 -0
  44. package/src/utils/mmkvKeyManager.ts +3 -3
  45. package/src/utils/operationMutex.ts +1 -1
  46. package/dist/__mocks__/react.d.ts +0 -40
  47. package/dist/__mocks__/react.js +0 -33
  48. package/dist/__mocks__/react.js.map +0 -1
  49. package/dist/__mocks__/secureStorage.d.ts +0 -27
  50. package/dist/__mocks__/secureStorage.js +0 -81
  51. package/dist/__mocks__/secureStorage.js.map +0 -1
  52. package/dist/__tests__/hooks/useBalance.test.d.ts +0 -6
  53. package/dist/__tests__/hooks/useBalance.test.js +0 -217
  54. package/dist/__tests__/hooks/useBalance.test.js.map +0 -1
  55. package/dist/__tests__/hooks/useWallet.test.d.ts +0 -6
  56. package/dist/__tests__/hooks/useWallet.test.js +0 -105
  57. package/dist/__tests__/hooks/useWallet.test.js.map +0 -1
  58. package/dist/__tests__/hooks/useWalletManager.test.d.ts +0 -6
  59. package/dist/__tests__/hooks/useWalletManager.test.js +0 -193
  60. package/dist/__tests__/hooks/useWalletManager.test.js.map +0 -1
  61. package/dist/__tests__/hooks/useWdkApp.test.d.ts +0 -6
  62. package/dist/__tests__/hooks/useWdkApp.test.js +0 -55
  63. package/dist/__tests__/hooks/useWdkApp.test.js.map +0 -1
  64. package/dist/__tests__/hooks/useWorklet.test.d.ts +0 -6
  65. package/dist/__tests__/hooks/useWorklet.test.js +0 -168
  66. package/dist/__tests__/hooks/useWorklet.test.js.map +0 -1
  67. package/dist/__tests__/provider/WdkAppProvider.test.d.ts +0 -6
  68. package/dist/__tests__/provider/WdkAppProvider.test.js +0 -57
  69. package/dist/__tests__/provider/WdkAppProvider.test.js.map +0 -1
  70. package/dist/__tests__/services/accountService.test.d.ts +0 -6
  71. package/dist/__tests__/services/accountService.test.js +0 -263
  72. package/dist/__tests__/services/accountService.test.js.map +0 -1
  73. package/dist/__tests__/services/addressService.test.d.ts +0 -6
  74. package/dist/__tests__/services/addressService.test.js +0 -258
  75. package/dist/__tests__/services/addressService.test.js.map +0 -1
  76. package/dist/__tests__/services/balanceService.test.d.ts +0 -6
  77. package/dist/__tests__/services/balanceService.test.js +0 -333
  78. package/dist/__tests__/services/balanceService.test.js.map +0 -1
  79. package/dist/__tests__/services/walletSetupService.test.d.ts +0 -6
  80. package/dist/__tests__/services/walletSetupService.test.js +0 -304
  81. package/dist/__tests__/services/walletSetupService.test.js.map +0 -1
  82. package/dist/__tests__/services/walletSwitchingService.test.d.ts +0 -6
  83. package/dist/__tests__/services/walletSwitchingService.test.js +0 -209
  84. package/dist/__tests__/services/walletSwitchingService.test.js.map +0 -1
  85. package/dist/__tests__/services/workletLifecycleService.test.d.ts +0 -6
  86. package/dist/__tests__/services/workletLifecycleService.test.js +0 -451
  87. package/dist/__tests__/services/workletLifecycleService.test.js.map +0 -1
  88. package/dist/__tests__/setup.d.ts +0 -4
  89. package/dist/__tests__/setup.js +0 -49
  90. package/dist/__tests__/setup.js.map +0 -1
  91. package/dist/__tests__/storage/mmkvStorage.test.d.ts +0 -6
  92. package/dist/__tests__/storage/mmkvStorage.test.js +0 -213
  93. package/dist/__tests__/storage/mmkvStorage.test.js.map +0 -1
  94. package/dist/__tests__/store/walletStore.test.d.ts +0 -4
  95. package/dist/__tests__/store/walletStore.test.js +0 -86
  96. package/dist/__tests__/store/walletStore.test.js.map +0 -1
  97. package/dist/__tests__/store/workletStore.test.d.ts +0 -4
  98. package/dist/__tests__/store/workletStore.test.js +0 -255
  99. package/dist/__tests__/store/workletStore.test.js.map +0 -1
  100. package/dist/__tests__/types/hrpc.test.d.ts +0 -4
  101. package/dist/__tests__/types/hrpc.test.js +0 -99
  102. package/dist/__tests__/types/hrpc.test.js.map +0 -1
  103. package/dist/__tests__/utils/balanceUtils.test.d.ts +0 -4
  104. package/dist/__tests__/utils/balanceUtils.test.js +0 -133
  105. package/dist/__tests__/utils/balanceUtils.test.js.map +0 -1
  106. package/dist/__tests__/utils/errorHandling.test.d.ts +0 -6
  107. package/dist/__tests__/utils/errorHandling.test.js +0 -119
  108. package/dist/__tests__/utils/errorHandling.test.js.map +0 -1
  109. package/dist/__tests__/utils/errorUtils.test.d.ts +0 -4
  110. package/dist/__tests__/utils/errorUtils.test.js +0 -133
  111. package/dist/__tests__/utils/errorUtils.test.js.map +0 -1
  112. package/dist/__tests__/utils/initializationState.test.d.ts +0 -6
  113. package/dist/__tests__/utils/initializationState.test.js +0 -243
  114. package/dist/__tests__/utils/initializationState.test.js.map +0 -1
  115. package/dist/__tests__/utils/jsonUtils.test.d.ts +0 -4
  116. package/dist/__tests__/utils/jsonUtils.test.js +0 -118
  117. package/dist/__tests__/utils/jsonUtils.test.js.map +0 -1
  118. package/dist/__tests__/utils/mmkvKeyManager.test.d.ts +0 -6
  119. package/dist/__tests__/utils/mmkvKeyManager.test.js +0 -158
  120. package/dist/__tests__/utils/mmkvKeyManager.test.js.map +0 -1
  121. package/dist/__tests__/utils/mnemonicUtils.test.d.ts +0 -4
  122. package/dist/__tests__/utils/mnemonicUtils.test.js +0 -40
  123. package/dist/__tests__/utils/mnemonicUtils.test.js.map +0 -1
  124. package/dist/__tests__/utils/raceConditions.test.d.ts +0 -6
  125. package/dist/__tests__/utils/raceConditions.test.js +0 -239
  126. package/dist/__tests__/utils/raceConditions.test.js.map +0 -1
  127. package/dist/__tests__/utils/result.test.d.ts +0 -4
  128. package/dist/__tests__/utils/result.test.js +0 -66
  129. package/dist/__tests__/utils/result.test.js.map +0 -1
  130. package/dist/__tests__/utils/schemas.test.d.ts +0 -4
  131. package/dist/__tests__/utils/schemas.test.js +0 -66
  132. package/dist/__tests__/utils/schemas.test.js.map +0 -1
  133. package/dist/__tests__/utils/storeHelpers.test.d.ts +0 -4
  134. package/dist/__tests__/utils/storeHelpers.test.js +0 -227
  135. package/dist/__tests__/utils/storeHelpers.test.js.map +0 -1
  136. package/dist/__tests__/utils/typeGuards.test.d.ts +0 -4
  137. package/dist/__tests__/utils/typeGuards.test.js +0 -175
  138. package/dist/__tests__/utils/typeGuards.test.js.map +0 -1
  139. package/dist/__tests__/utils/validation.test.d.ts +0 -4
  140. package/dist/__tests__/utils/validation.test.js +0 -167
  141. package/dist/__tests__/utils/validation.test.js.map +0 -1
  142. package/dist/__tests__/utils/walletUtils.test.d.ts +0 -4
  143. package/dist/__tests__/utils/walletUtils.test.js +0 -156
  144. package/dist/__tests__/utils/walletUtils.test.js.map +0 -1
  145. package/dist/utils/types.js +0 -6
  146. package/dist/utils/utils/schemas.js +0 -173
  147. package/dist/utils/utils/validation.js +0 -151
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Runtime WDK Indexer configuration (set by WdkAppProvider from app env).
3
+ */
4
+ let indexerConfig = null;
5
+ export function setIndexerConfig(config) {
6
+ indexerConfig = config;
7
+ }
8
+ export function getIndexerConfig() {
9
+ return indexerConfig;
10
+ }
11
+ export function isIndexerConfigured() {
12
+ return Boolean(indexerConfig?.baseUrl && indexerConfig?.apiKey);
13
+ }
14
+ //# sourceMappingURL=indexerConfigStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexerConfigStore.js","sourceRoot":"","sources":["../../src/store/indexerConfigStore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,IAAI,aAAa,GAAyB,IAAI,CAAA;AAE9C,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,aAAa,GAAG,MAAM,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,CAAC,CAAA;AACjE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -143,6 +143,39 @@ export interface BalanceFetchResult {
143
143
  * Allows for dynamic token configuration.
144
144
  */
145
145
  export type TokenConfigProvider = TokenConfigs | (() => TokenConfigs);
146
+ /**
147
+ * WDK Indexer API configuration (balance/transaction history).
148
+ */
149
+ export interface IndexerConfig {
150
+ /** Base URL, e.g. https://wdk-api.tether.io */
151
+ baseUrl: string;
152
+ /** API key sent as x-api-key header */
153
+ apiKey: string;
154
+ }
155
+ /**
156
+ * Token transfer from the WDK Indexer token-transfers endpoint.
157
+ */
158
+ export interface WalletTransaction {
159
+ blockchain: string;
160
+ blockNumber?: number;
161
+ transactionHash: string;
162
+ transferIndex?: number;
163
+ token: string;
164
+ amount: string;
165
+ /** Unix timestamp in seconds (indexer convention) */
166
+ timestamp: number;
167
+ transactionIndex?: number;
168
+ logIndex?: number;
169
+ from: string;
170
+ to: string;
171
+ label?: string;
172
+ }
173
+ /**
174
+ * Raw indexer response for token-transfers.
175
+ */
176
+ export interface IndexerTokenTransfersResponse {
177
+ transfers?: WalletTransaction[];
178
+ }
146
179
  /**
147
180
  * Token Helpers
148
181
  *
@@ -58,6 +58,24 @@ export declare const DEFAULT_QUERY_STALE_TIME_MS: number;
58
58
  * 5 minutes provides a good balance between cache efficiency and memory usage.
59
59
  */
60
60
  export declare const DEFAULT_QUERY_GC_TIME_MS: number;
61
+ /**
62
+ * Delay between per-network balance fetches on wallet load (ms).
63
+ * Spreads RPC load across chains instead of firing every network at once.
64
+ */
65
+ export declare const BALANCE_FETCH_STAGGER_MS = 400;
66
+ /**
67
+ * Delay between token balance fetches within the same network (ms).
68
+ * TON jetton balances issue multiple RPC calls each; serializing avoids 429 bursts.
69
+ */
70
+ export declare const BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS = 300;
71
+ /**
72
+ * Max attempts for transient blockchain/RPC errors (429, 5xx, network timeouts).
73
+ */
74
+ export declare const TRANSIENT_ERROR_MAX_ATTEMPTS = 3;
75
+ /**
76
+ * Initial backoff for transient error retries (ms); doubled on each attempt.
77
+ */
78
+ export declare const TRANSIENT_ERROR_INITIAL_BACKOFF_MS = 1000;
61
79
  /**
62
80
  * Allowed account methods whitelist
63
81
  * Only these methods can be called through AccountService for security
@@ -58,6 +58,24 @@ export const DEFAULT_QUERY_STALE_TIME_MS = 30 * 1000;
58
58
  * 5 minutes provides a good balance between cache efficiency and memory usage.
59
59
  */
60
60
  export const DEFAULT_QUERY_GC_TIME_MS = 5 * 60 * 1000;
61
+ /**
62
+ * Delay between per-network balance fetches on wallet load (ms).
63
+ * Spreads RPC load across chains instead of firing every network at once.
64
+ */
65
+ export const BALANCE_FETCH_STAGGER_MS = 400;
66
+ /**
67
+ * Delay between token balance fetches within the same network (ms).
68
+ * TON jetton balances issue multiple RPC calls each; serializing avoids 429 bursts.
69
+ */
70
+ export const BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS = 300;
71
+ /**
72
+ * Max attempts for transient blockchain/RPC errors (429, 5xx, network timeouts).
73
+ */
74
+ export const TRANSIENT_ERROR_MAX_ATTEMPTS = 3;
75
+ /**
76
+ * Initial backoff for transient error retries (ms); doubled on each attempt.
77
+ */
78
+ export const TRANSIENT_ERROR_INITIAL_BACKOFF_MS = 1000;
61
79
  /**
62
80
  * Allowed account methods whitelist
63
81
  * Only these methods can be called through AccountService for security
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,6CAA6C;IAC7C,MAAM,EAAE,EAAE;IACV,6CAA6C;IAC7C,WAAW,EAAE,EAAE;CACP,CAAA;AAEV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,MAAM,CAAA;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAA;AACtD,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAA;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAA;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAA;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;CACT,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,CAAA;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,6CAA6C;IAC7C,MAAM,EAAE,EAAE;IACV,6CAA6C;IAC7C,WAAW,EAAE,EAAE;CACP,CAAA;AAEV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC,MAAM,CAAA;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,YAAY,CAAA;AACtD,MAAM,CAAC,MAAM,gCAAgC,GAAG,iBAAiB,CAAA;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAA;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAA;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAA;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,IAAI,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,GAAG,CAAA;AAEzD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAA;AAEtD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;CACT,CAAA"}
@@ -21,9 +21,9 @@ import * as Crypto from 'expo-crypto';
21
21
  * @returns Base64 encoded string
22
22
  */
23
23
  function bytesToBase64(bytes) {
24
- // Try to use Buffer if available (common in React Native with polyfills)
25
- if (typeof Buffer !== 'undefined') {
26
- return Buffer.from(bytes).toString('base64');
24
+ const bufferCtor = globalThis.Buffer;
25
+ if (bufferCtor) {
26
+ return bufferCtor.from(bytes).toString('base64');
27
27
  }
28
28
  // Fallback to manual encoding for environments without Buffer
29
29
  const base64Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
@@ -1 +1 @@
1
- {"version":3,"file":"mmkvKeyManager.js","sourceRoot":"","sources":["../../src/utils/mmkvKeyManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAOrC;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,KAAiB;IACtC,yEAAyE;IACzE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC9C,CAAC;IAED,8DAA8D;IAC9D,MAAM,WAAW,GAAG,kEAAkE,CAAA;IACtF,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAExD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;QACjD,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;QAEjD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B;;;;GAIG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;AAC1C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAA;AAChD,IAAI,aAAa,GAAG,CAAC,CAAA;AAErB;;GAEG;AACH,SAAS,WAAW;IAClB,IAAI,QAAQ,CAAC,IAAI,GAAG,cAAc,EAAE,CAAC;QACnC,OAAM;IACR,CAAC;IAED,mCAAmC;IACnC,IAAI,SAAS,GAAkB,IAAI,CAAA;IACnC,IAAI,YAAY,GAAG,QAAQ,CAAA;IAE3B,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC;QACzD,IAAI,UAAU,GAAG,YAAY,EAAE,CAAC;YAC9B,YAAY,GAAG,UAAU,CAAA;YACzB,SAAS,GAAG,GAAG,CAAA;QACjB,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1B,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAClC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,iBAAoC;IACtE,oBAAoB;IACpB,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IACjD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,sCAAsC;QACtC,aAAa,EAAE,CAAA;QACf,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;QACpD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,yCAAyC;IACzC,2DAA2D;IAC3D,MAAM,IAAI,GAAG,6BAA6B,CAAA;IAC1C,MAAM,KAAK,GAAG,GAAG,IAAI,IAAI,iBAAiB,EAAE,CAAA;IAE5C,uDAAuD;IACvD,wDAAwD;IACxD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAC5C,MAAM,CAAC,qBAAqB,CAAC,MAAM,EACnC,KAAK,CACN,CAAA;IAED,uDAAuD;IACvD,gDAAgD;IAChD,uCAAuC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACzC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,gEAAgE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACnG,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,UAAU,CAC9B,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CACnD,CAAA;IAED,kDAAkD;IAClD,mDAAmD;IACnD,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IAEpC,iCAAiC;IACjC,WAAW,EAAE,CAAA;IAEb,kCAAkC;IAClC,aAAa,EAAE,CAAA;IACf,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;IACpC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IAEpD,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD;;;GAGG;AACH,MAAM,6BAA6B,GAAG,GAAG,CAAA;AAEzC;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,iBAAoC;IACrE,IAAI,CAAC,iBAAiB,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAA;IACxC,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gDAAgD,6BAA6B,aAAa,CAAC,CAAA;IAC7G,CAAC;IAED,+CAA+C;IAC/C,IAAI,CAAC;QACH,4CAA4C;QAC5C,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IACnE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa;IAC3B,QAAQ,CAAC,KAAK,EAAE,CAAA;IAChB,cAAc,CAAC,KAAK,EAAE,CAAA;IACtB,aAAa,GAAG,CAAC,CAAA;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,iBAAoC;IACnE,mCAAmC;IACnC,yBAAyB,CAAC,iBAAiB,CAAC,CAAA;IAE5C,yCAAyC;IACzC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAA;IAElD,IAAI,CAAC;QACH,uDAAuD;QACvD,yEAAyE;QACzE,OAAO,MAAM,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yCAAyC;QACzC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAClF,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mmkvKeyManager.js","sourceRoot":"","sources":["../../src/utils/mmkvKeyManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"operationMutex.js","sourceRoot":"","sources":["../../src/utils/operationMutex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operationMutex.js","sourceRoot":"","sources":["../../src/utils/operationMutex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Retry helpers for transient blockchain/RPC failures (429, 5xx, network errors).
3
+ */
4
+ export declare function delay(ms: number): Promise<void>;
5
+ /**
6
+ * Whether an error is likely transient and worth retrying with backoff.
7
+ * Matches Spaces API retry rules: 429, 408, 5xx, and common network failures.
8
+ */
9
+ export declare function isTransientBlockchainError(error: unknown): boolean;
10
+ export interface WithTransientRetryOptions {
11
+ maxAttempts?: number;
12
+ initialBackoffMs?: number;
13
+ /** Label for retry log messages */
14
+ label?: string;
15
+ }
16
+ /**
17
+ * Run an async function with exponential backoff on transient errors.
18
+ */
19
+ export declare function withTransientRetry<T>(fn: () => Promise<T>, options?: WithTransientRetryOptions): Promise<T>;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Retry helpers for transient blockchain/RPC failures (429, 5xx, network errors).
3
+ */
4
+ import { TRANSIENT_ERROR_INITIAL_BACKOFF_MS, TRANSIENT_ERROR_MAX_ATTEMPTS, } from './constants';
5
+ import { getErrorMessage } from './errorUtils';
6
+ import { log } from './logger';
7
+ export function delay(ms) {
8
+ return new Promise((resolve) => setTimeout(resolve, ms));
9
+ }
10
+ /**
11
+ * Whether an error is likely transient and worth retrying with backoff.
12
+ * Matches Spaces API retry rules: 429, 408, 5xx, and common network failures.
13
+ */
14
+ export function isTransientBlockchainError(error) {
15
+ const message = getErrorMessage(error).toLowerCase();
16
+ if (message.includes('429') ||
17
+ message.includes('too many requests') ||
18
+ message.includes('rate limit') ||
19
+ message.includes('408') ||
20
+ message.includes('request timeout') ||
21
+ message.includes('etimedout') ||
22
+ message.includes('econnreset') ||
23
+ message.includes('econnrefused') ||
24
+ message.includes('network request failed') ||
25
+ message.includes('network error') ||
26
+ message.includes('socket hang up')) {
27
+ return true;
28
+ }
29
+ return /\b5\d{2}\b/.test(message);
30
+ }
31
+ /**
32
+ * Run an async function with exponential backoff on transient errors.
33
+ */
34
+ export async function withTransientRetry(fn, options = {}) {
35
+ const maxAttempts = options.maxAttempts ?? TRANSIENT_ERROR_MAX_ATTEMPTS;
36
+ const initialBackoffMs = options.initialBackoffMs ?? TRANSIENT_ERROR_INITIAL_BACKOFF_MS;
37
+ const label = options.label ?? 'operation';
38
+ let lastError;
39
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
40
+ try {
41
+ return await fn();
42
+ }
43
+ catch (error) {
44
+ lastError = error;
45
+ if (!isTransientBlockchainError(error) || attempt >= maxAttempts) {
46
+ throw error;
47
+ }
48
+ const backoffMs = initialBackoffMs * (1 << (attempt - 1));
49
+ log(`[Balance] ${label}: retry in ${backoffMs}ms (${attempt}/${maxAttempts})`);
50
+ await delay(backoffMs);
51
+ }
52
+ }
53
+ throw lastError;
54
+ }
55
+ //# sourceMappingURL=retryUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryUtils.js","sourceRoot":"","sources":["../../src/utils/retryUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAE9B,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;IAEpD,IACE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACnC,CAAC;AASD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAoB,EACpB,UAAqC,EAAE;IAEvC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,4BAA4B,CAAA;IACvE,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,kCAAkC,CAAA;IACvF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAAA;IAE1C,IAAI,SAAkB,CAAA;IAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAA;YACjB,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,WAAW,EAAE,CAAC;gBACjE,MAAM,KAAK,CAAA;YACb,CAAC;YACD,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;YACzD,GAAG,CAAC,aAAa,KAAK,cAAc,SAAS,OAAO,OAAO,IAAI,WAAW,GAAG,CAAC,CAAA;YAC9E,MAAM,KAAK,CAAC,SAAS,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAA;AACjB,CAAC"}
@@ -23,9 +23,21 @@ export declare const sparkAddressSchema: z.ZodString;
23
23
  */
24
24
  export declare const bitcoinAddressSchema: z.ZodString;
25
25
  /**
26
- * Address schema (Ethereum, Spark, or Bitcoin)
26
+ * TON user-friendly wallet address (EQ/UQ + base64url).
27
27
  */
28
- export declare const addressSchema: z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString]>;
28
+ export declare const tonAddressSchema: z.ZodString;
29
+ /**
30
+ * Tron Base58Check wallet address.
31
+ */
32
+ export declare const tronAddressSchema: z.ZodString;
33
+ /**
34
+ * Solana Base58 wallet address.
35
+ */
36
+ export declare const solanaAddressSchema: z.ZodString;
37
+ /**
38
+ * Address schema (Ethereum, Spark, Bitcoin, TON, Tron, or Solana)
39
+ */
40
+ export declare const addressSchema: z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString]>;
29
41
  /**
30
42
  * Network configuration schema
31
43
  */
@@ -293,7 +305,7 @@ export declare const balanceStringSchema: z.ZodString;
293
305
  * Wallet addresses schema
294
306
  * Maps network -> accountIndex -> address
295
307
  */
296
- export declare const walletAddressesSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEffects<z.ZodString, number, string>, z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString]>>>;
308
+ export declare const walletAddressesSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodEffects<z.ZodString, number, string>, z.ZodUnion<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString]>>>;
297
309
  /**
298
310
  * Wallet balances schema
299
311
  * Maps network -> accountIndex -> tokenAddress -> balance
@@ -40,9 +40,34 @@ export const bitcoinAddressSchema = z.string().regex(/^(bc1[qp][a-z0-9]{11,71}|t
40
40
  message: 'Must be a valid Bitcoin address (bech32 bc1/tb1/bcrt1 or legacy Base58)',
41
41
  });
42
42
  /**
43
- * Address schema (Ethereum, Spark, or Bitcoin)
43
+ * TON user-friendly wallet address (EQ/UQ + base64url).
44
44
  */
45
- export const addressSchema = z.union([ethereumAddressSchema, sparkAddressSchema, bitcoinAddressSchema]);
45
+ export const tonAddressSchema = z.string().regex(/^(EQ|UQ)[A-Za-z0-9_-]{46}$/, {
46
+ message: 'Must be a valid TON address (EQ/UQ user-friendly format)',
47
+ });
48
+ /**
49
+ * Tron Base58Check wallet address.
50
+ */
51
+ export const tronAddressSchema = z.string().regex(/^T[1-9A-HJ-NP-Za-km-z]{33}$/, {
52
+ message: 'Must be a valid Tron address',
53
+ });
54
+ /**
55
+ * Solana Base58 wallet address.
56
+ */
57
+ export const solanaAddressSchema = z.string().regex(/^[1-9A-HJ-NP-Za-km-z]{32,44}$/, {
58
+ message: 'Must be a valid Solana address',
59
+ });
60
+ /**
61
+ * Address schema (Ethereum, Spark, Bitcoin, TON, Tron, or Solana)
62
+ */
63
+ export const addressSchema = z.union([
64
+ ethereumAddressSchema,
65
+ sparkAddressSchema,
66
+ bitcoinAddressSchema,
67
+ tonAddressSchema,
68
+ tronAddressSchema,
69
+ solanaAddressSchema,
70
+ ]);
46
71
  /**
47
72
  * Network configuration schema
48
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/utils/schemas.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ export declare function isSparkAddress(value: unknown): value is string;
54
54
  */
55
55
  export declare function isBitcoinAddress(value: unknown): value is string;
56
56
  /**
57
- * Type guard to check if a value is a valid address (Ethereum, Spark, or Bitcoin)
57
+ * Type guard to check if a value is a valid address (Ethereum, Spark, Bitcoin, TON, Tron, or Solana)
58
58
  */
59
59
  export declare function isValidAddress(value: unknown): value is string;
60
60
  /**
@@ -7,7 +7,7 @@
7
7
  * NOTE: These type guards now use Zod schemas internally for validation.
8
8
  * They are kept for backward compatibility but may be deprecated in the future.
9
9
  */
10
- import { networkConfigSchema, networkConfigsSchema, tokenConfigSchema, tokenConfigsSchema, walletAddressesSchema, walletBalancesSchema, ethereumAddressSchema, sparkAddressSchema, bitcoinAddressSchema, accountIndexSchema, networkNameSchema, balanceStringSchema, } from './schemas';
10
+ import { networkConfigSchema, networkConfigsSchema, tokenConfigSchema, tokenConfigsSchema, walletAddressesSchema, walletBalancesSchema, ethereumAddressSchema, sparkAddressSchema, bitcoinAddressSchema, accountIndexSchema, networkNameSchema, balanceStringSchema, addressSchema, } from './schemas';
11
11
  /**
12
12
  * Type guard to check if a value is a valid NetworkConfig
13
13
  * Uses Zod schema internally for validation
@@ -72,10 +72,10 @@ export function isBitcoinAddress(value) {
72
72
  return bitcoinAddressSchema.safeParse(value).success;
73
73
  }
74
74
  /**
75
- * Type guard to check if a value is a valid address (Ethereum, Spark, or Bitcoin)
75
+ * Type guard to check if a value is a valid address (Ethereum, Spark, Bitcoin, TON, Tron, or Solana)
76
76
  */
77
77
  export function isValidAddress(value) {
78
- return isEthereumAddress(value) || isSparkAddress(value) || isBitcoinAddress(value);
78
+ return addressSchema.safeParse(value).success;
79
79
  }
80
80
  /**
81
81
  * Type guard to check if a value is a valid account index
@@ -1 +1 @@
1
- {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAUlB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAA;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC"}
1
+ {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/utils/typeGuards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,WAAW,CAAA;AAUlB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAA;AACrD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spacesops/wdk-react-native-core",
3
- "version": "1.0.0-beta.68",
3
+ "version": "1.0.0-beta.70",
4
4
  "description": "Core functionality for React Native wallets - wallet management, balance fetching, and worklet operations",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -66,6 +66,7 @@
66
66
  "@testing-library/jest-native": "^5.4.3",
67
67
  "@testing-library/react-native": "^12.4.0",
68
68
  "@types/jest": "^29.5.0",
69
+ "@types/node": "^22.20.1",
69
70
  "@types/react": "^19.0.0",
70
71
  "@types/react-native": "^0.73.0",
71
72
  "bufferutil": "^4.1.0",
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Tests for TransactionService
3
+ */
4
+
5
+ import { setIndexerConfig } from '../../store/indexerConfigStore'
6
+ import { TransactionService } from '../../services/transactionService'
7
+
8
+ const mockFetch = jest.fn()
9
+ global.fetch = mockFetch as typeof fetch
10
+
11
+ describe('TransactionService', () => {
12
+ beforeEach(() => {
13
+ jest.clearAllMocks()
14
+ setIndexerConfig({
15
+ baseUrl: 'https://wdk-api.tether.io',
16
+ apiKey: 'test-api-key',
17
+ })
18
+ })
19
+
20
+ afterEach(() => {
21
+ setIndexerConfig(null)
22
+ })
23
+
24
+ it('fetches and parses token transfers', async () => {
25
+ mockFetch.mockResolvedValueOnce({
26
+ ok: true,
27
+ status: 200,
28
+ json: async () => ({
29
+ transfers: [
30
+ {
31
+ blockchain: 'ethereum',
32
+ transactionHash: '0xabc',
33
+ token: 'xaut',
34
+ amount: '1.5',
35
+ timestamp: 1700000000,
36
+ from: '0xfrom',
37
+ to: '0xto',
38
+ },
39
+ ],
40
+ }),
41
+ })
42
+
43
+ const transfers = await TransactionService.fetchTokenTransfers(
44
+ 'ethereum',
45
+ 'xaut',
46
+ '0xWallet'
47
+ )
48
+
49
+ expect(mockFetch).toHaveBeenCalledWith(
50
+ 'https://wdk-api.tether.io/api/v1/ethereum/xaut/0xWallet/token-transfers',
51
+ expect.objectContaining({
52
+ method: 'GET',
53
+ headers: expect.objectContaining({
54
+ 'x-api-key': 'test-api-key',
55
+ }),
56
+ })
57
+ )
58
+ expect(transfers).toHaveLength(1)
59
+ expect(transfers[0].token).toBe('xaut')
60
+ expect(transfers[0].amount).toBe('1.5')
61
+ })
62
+
63
+ it('returns empty list on 404', async () => {
64
+ mockFetch.mockResolvedValueOnce({
65
+ ok: false,
66
+ status: 404,
67
+ text: async () => 'not found',
68
+ })
69
+
70
+ const transfers = await TransactionService.fetchTokenTransfers(
71
+ 'ethereum',
72
+ 'usdt',
73
+ '0xWallet'
74
+ )
75
+ expect(transfers).toEqual([])
76
+ })
77
+
78
+ it('aggregates transfers across networks and dedupes', async () => {
79
+ mockFetch
80
+ .mockResolvedValueOnce({
81
+ ok: true,
82
+ status: 200,
83
+ json: async () => ({ transfers: [] }),
84
+ })
85
+ .mockResolvedValueOnce({
86
+ ok: true,
87
+ status: 200,
88
+ json: async () => ({
89
+ transfers: [
90
+ {
91
+ blockchain: 'ethereum',
92
+ transactionHash: '0x1',
93
+ token: 'usdt',
94
+ amount: '10',
95
+ timestamp: 100,
96
+ from: '0xa',
97
+ to: '0xb',
98
+ },
99
+ ],
100
+ }),
101
+ })
102
+ .mockResolvedValueOnce({
103
+ ok: true,
104
+ status: 200,
105
+ json: async () => ({
106
+ transfers: [
107
+ {
108
+ blockchain: 'ethereum',
109
+ transactionHash: '0x2',
110
+ token: 'xaut',
111
+ amount: '0.5',
112
+ timestamp: 200,
113
+ from: '0xc',
114
+ to: '0xd',
115
+ },
116
+ ],
117
+ }),
118
+ })
119
+
120
+ const tokenConfigs = {
121
+ ethereum: {
122
+ native: { address: null, symbol: 'ETH', name: 'Ethereum', decimals: 18 },
123
+ tokens: [
124
+ {
125
+ address: '0xusdt',
126
+ symbol: 'USDT',
127
+ name: 'Tether USD',
128
+ decimals: 6,
129
+ },
130
+ {
131
+ address: '0xxaut',
132
+ symbol: 'XAUT',
133
+ name: 'Tether Gold',
134
+ decimals: 6,
135
+ },
136
+ ],
137
+ },
138
+ }
139
+
140
+ const list = await TransactionService.fetchWalletTransactions({
141
+ addresses: { ethereum: { 0: '0xWallet' } },
142
+ accountIndex: 0,
143
+ tokenConfigs,
144
+ })
145
+
146
+ expect(list).toHaveLength(2)
147
+ expect(list[0].transactionHash).toBe('0x2')
148
+ expect(list[1].transactionHash).toBe('0x1')
149
+ })
150
+
151
+ it('resolveWalletTransactions returns empty when indexer not configured', async () => {
152
+ setIndexerConfig(null)
153
+ const list = await TransactionService.resolveWalletTransactions({
154
+ addresses: { ethereum: { 0: '0xWallet' } },
155
+ accountIndex: 0,
156
+ tokenConfigs: {
157
+ ethereum: {
158
+ native: { address: null, symbol: 'ETH', name: 'Ethereum', decimals: 18 },
159
+ tokens: [],
160
+ },
161
+ },
162
+ })
163
+ expect(list).toEqual([])
164
+ expect(mockFetch).not.toHaveBeenCalled()
165
+ })
166
+ })
@@ -55,6 +55,7 @@ import {
55
55
  DEFAULT_QUERY_STALE_TIME_MS,
56
56
  DEFAULT_QUERY_GC_TIME_MS,
57
57
  BALANCE_FETCH_STAGGER_MS,
58
+ BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS,
58
59
  } from '../utils/constants'
59
60
  import { logError } from '../utils/logger'
60
61
  import { delay, withTransientRetry } from '../utils/retryUtils'
@@ -388,18 +389,20 @@ async function fetchBalancesForQueryKeys(
388
389
  }
389
390
  isFirstNetwork = false
390
391
 
391
- const networkResults = await Promise.all(
392
- keys.map(async (queryKey) => {
393
- const validated = validateQueryKeyStructure(queryKey)
394
- const result = await fetchBalance(
395
- validated.network,
396
- validated.accountIndex,
397
- validated.tokenAddress,
398
- walletId
399
- )
400
- return { id: balanceQueryKeyId(queryKey), result }
401
- })
402
- )
392
+ const networkResults: Array<{ id: string; result: BalanceFetchResult }> = []
393
+ for (const queryKey of keys) {
394
+ if (networkResults.length > 0) {
395
+ await delay(BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS)
396
+ }
397
+ const validated = validateQueryKeyStructure(queryKey)
398
+ const result = await fetchBalance(
399
+ validated.network,
400
+ validated.accountIndex,
401
+ validated.tokenAddress,
402
+ walletId
403
+ )
404
+ networkResults.push({ id: balanceQueryKeyId(queryKey), result })
405
+ }
403
406
 
404
407
  for (const { id, result } of networkResults) {
405
408
  results.set(id, result)