@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionService.js","sourceRoot":"","sources":["../../src/services/transactionService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,sCAAsC,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AACrG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAS/D,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,KAAkB;IACpD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAA;IACnC,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAqB;IACjD,OAAO;QACL,EAAE,CAAC,UAAU;QACb,EAAE,CAAC,eAAe;QAClB,EAAE,CAAC,KAAK;QACR,EAAE,CAAC,aAAa,IAAI,EAAE;QACtB,EAAE,CAAC,QAAQ,IAAI,EAAE;QACjB,EAAE,CAAC,IAAI;QACP,EAAE,CAAC,EAAE;QACL,EAAE,CAAC,MAAM;KACV,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACb,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB;IAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,SAAS,GAAI,OAAyC,CAAC,SAAS,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,MAAM,GAAwB,EAAE,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAQ;QAC/C,MAAM,EAAE,GAAG,IAAkC,CAAA;QAC7C,IACE,OAAO,EAAE,CAAC,eAAe,KAAK,QAAQ;YACtC,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ;YAC5B,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ;YAC7B,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ;YAChC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;YAC3B,OAAO,EAAE,CAAC,EAAE,KAAK,QAAQ,EACzB,CAAC;YACD,SAAQ;QACV,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,UAAU,EAAE,OAAO,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YAClE,WAAW,EAAE,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YAC5E,eAAe,EAAE,EAAE,CAAC,eAAe;YACnC,aAAa,EAAE,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;YAClF,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE;YAC7B,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,gBAAgB,EAAE,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YAC3F,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACnE,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,OAAO,kBAAkB;IAC7B;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAC9B,OAAe,EACf,SAAiB,EACjB,OAAe;QAEf,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAA;QACjC,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,CAAA;QAEvK,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,KAAK,IAAI,EAAE;YACT,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,WAAW,EAAE,MAAM,CAAC,MAAM;oBAC1B,MAAM,EAAE,kBAAkB;iBAC3B;aACF,CAAC,CAAA;YAEF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,SAAS,EAAE,EAAyB,EAAE,CAAA;YACpE,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC7C,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAG,CAAC,MAAM,SAAS,OAAO,IAAI,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CACpG,CAAA;YACH,CAAC;YAED,MAAM,IAAI,GAAY,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;YACtC,OAAO,EAAE,EAAE,EAAE,IAAa,EAAE,SAAS,EAAE,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAA;QACtE,CAAC,EACD,EAAE,KAAK,EAAE,GAAG,OAAO,IAAI,SAAS,kBAAkB,EAAE,CACrD,CAAA;QAED,OAAO,QAAQ,CAAC,SAAS,CAAA;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAClC,MAAqC;QAErC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAA;QACpD,IAAI,cAAc,GAAG,IAAI,CAAA;QAEzB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;YAClD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAQ;YACV,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACvC,CAAC;YACD,cAAc,GAAG,KAAK,CAAA;YAEtB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;YAC3C,IAAI,CAAC,aAAa;gBAAE,SAAQ;YAE5B,MAAM,MAAM,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;YAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBACvB,IAAI,CAAC,KAAK;oBAAE,SAAQ;gBACpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACV,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAA;gBACrD,CAAC;gBAED,MAAM,SAAS,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAA;gBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAQ;gBACV,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;oBAC7E,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;wBAC3B,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU;4BAClC,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;wBAClC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAA;oBACnE,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,QAAQ,CACN,uCAAuC,OAAO,IAAI,SAAS,GAAG,EAC9D,KAAK,CACN,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;IAC/E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,yBAAyB,CACpC,MAAqC;QAErC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,gFAAgF,CAAC,CAAA;YACzF,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Runtime WDK Indexer configuration (set by WdkAppProvider from app env).
3
+ */
4
+ import type { IndexerConfig } from '../types';
5
+ export declare function setIndexerConfig(config: IndexerConfig | null): void;
6
+ export declare function getIndexerConfig(): IndexerConfig | null;
7
+ export declare function isIndexerConfigured(): boolean;
@@ -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
@@ -46,6 +46,12 @@ export interface TokenConfig {
46
46
  decimals: number;
47
47
  /** Token contract address (null for native tokens) */
48
48
  address: string | null;
49
+ /**
50
+ * WDK Indexer token path segment for token-transfers.
51
+ * When omitted, ERC-20/jetton tokens use lowercase symbol; native gas tokens are skipped
52
+ * except Bitcoin (`btc`). Set explicitly to override or to enable native history when supported.
53
+ */
54
+ indexerToken?: string;
49
55
  }
50
56
  /**
51
57
  * Network Tokens
@@ -143,6 +149,39 @@ export interface BalanceFetchResult {
143
149
  * Allows for dynamic token configuration.
144
150
  */
145
151
  export type TokenConfigProvider = TokenConfigs | (() => TokenConfigs);
152
+ /**
153
+ * WDK Indexer API configuration (balance/transaction history).
154
+ */
155
+ export interface IndexerConfig {
156
+ /** Base URL, e.g. https://wdk-api.tether.io */
157
+ baseUrl: string;
158
+ /** API key sent as x-api-key header */
159
+ apiKey: string;
160
+ }
161
+ /**
162
+ * Token transfer from the WDK Indexer token-transfers endpoint.
163
+ */
164
+ export interface WalletTransaction {
165
+ blockchain: string;
166
+ blockNumber?: number;
167
+ transactionHash: string;
168
+ transferIndex?: number;
169
+ token: string;
170
+ amount: string;
171
+ /** Unix timestamp in seconds (indexer convention) */
172
+ timestamp: number;
173
+ transactionIndex?: number;
174
+ logIndex?: number;
175
+ from: string;
176
+ to: string;
177
+ label?: string;
178
+ }
179
+ /**
180
+ * Raw indexer response for token-transfers.
181
+ */
182
+ export interface IndexerTokenTransfersResponse {
183
+ transfers?: WalletTransaction[];
184
+ }
146
185
  /**
147
186
  * Token Helpers
148
187
  *
@@ -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":"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"}
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE;IAC3E,OAAO,EAAE,qEAAqE;CAC/E,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC;IAChD,qBAAqB;IACrB,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE;QAC9C,OAAO,EAAE,6CAA6C;KACvD,CAAC;IACF,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAA+B,EAAE;QAChD,OAAO,EAAE,2CAA2C;KACrD,CAAC;IACF,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,EAAE;QAC7C,OAAO,EAAE,2CAA2C;KACrD,CAAC;CACH,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kCAAkC,EAAE;IACrF,OAAO,EAAE,uFAAuF;CACjG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAElB;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAClD,6IAA6I,EAC7I;IACE,OAAO,EAAE,yEAAyE;CACnF,CACF,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,4BAA4B,EAAE;IAC7E,OAAO,EAAE,0DAA0D;CACpE,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6BAA6B,EAAE;IAC/E,OAAO,EAAE,8BAA8B;CACxC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,+BAA+B,EAAE;IACnF,OAAO,EAAE,gCAAgC;CAC1C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;IACnC,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAClD,iBAAiB,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAC1C,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE;IACnC,OAAO,EAAE,kFAAkF;CAC5F,CAAC,EACF,mBAAmB,CACpB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IACrD,OAAO,EAAE,kDAAkD;CAC5D,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;CACzD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CACnC,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CACxC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EACjB,mBAAmB,CACpB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IACrD,OAAO,EAAE,gDAAgD;CAC1D,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE;IACpE,OAAO,EAAE,kFAAkF;CAC5F,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;AAET;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE;IACrE,OAAO,EAAE,uCAAuC;CACjD,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAC3C,iBAAiB,EACjB,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,EACF,aAAa,CACd,CACF,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAC1C,iBAAiB,EACjB,CAAC,CAAC,MAAM,CACN,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,EACF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAC1C,CACF,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AAE3E;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,OAAO,EAAE,iBAAiB;IAC1B,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,YAAY,EAAE,kBAAkB;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACzC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC1C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;IAC7D,OAAO,EAAE,kCAAkC;CAC5C,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC;IACjD,qBAAqB;IACrB,CAAC,CAAC,MAAM,EAAE,EAAE,gBAAgB;IAC5B,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,gCAAgC;CAC7D,CAAC,CAAA"}
@@ -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.69",
3
+ "version": "1.0.0-beta.71",
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",
@@ -143,11 +143,33 @@ describe('TransactionService', () => {
143
143
  tokenConfigs,
144
144
  })
145
145
 
146
+ expect(mockFetch).toHaveBeenCalledTimes(2)
146
147
  expect(list).toHaveLength(2)
147
148
  expect(list[0].transactionHash).toBe('0x2')
148
149
  expect(list[1].transactionHash).toBe('0x1')
149
150
  })
150
151
 
152
+ it('skips native gas tokens that the indexer does not track', async () => {
153
+ mockFetch.mockResolvedValueOnce({
154
+ ok: true,
155
+ status: 200,
156
+ json: async () => ({ transfers: [] }),
157
+ })
158
+
159
+ await TransactionService.fetchWalletTransactions({
160
+ addresses: { ethereum: { 0: '0xWallet' } },
161
+ accountIndex: 0,
162
+ tokenConfigs: {
163
+ ethereum: {
164
+ native: { address: null, symbol: 'ETH', name: 'Ethereum', decimals: 18 },
165
+ tokens: [],
166
+ },
167
+ },
168
+ })
169
+
170
+ expect(mockFetch).not.toHaveBeenCalled()
171
+ })
172
+
151
173
  it('resolveWalletTransactions returns empty when indexer not configured', async () => {
152
174
  setIndexerConfig(null)
153
175
  const list = await TransactionService.resolveWalletTransactions({
@@ -390,11 +390,10 @@ async function fetchBalancesForQueryKeys(
390
390
  isFirstNetwork = false
391
391
 
392
392
  const networkResults: Array<{ id: string; result: BalanceFetchResult }> = []
393
- for (let i = 0; i < keys.length; i++) {
394
- if (i > 0) {
393
+ for (const queryKey of keys) {
394
+ if (networkResults.length > 0) {
395
395
  await delay(BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS)
396
396
  }
397
- const queryKey = keys[i]
398
397
  const validated = validateQueryKeyStructure(queryKey)
399
398
  const result = await fetchBalance(
400
399
  validated.network,
@@ -9,7 +9,7 @@ import { getIndexerConfig } from '../store/indexerConfigStore'
9
9
  import { BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS, BALANCE_FETCH_STAGGER_MS } from '../utils/constants'
10
10
  import { logError, logWarn } from '../utils/logger'
11
11
  import { delay, withTransientRetry } from '../utils/retryUtils'
12
- import type { IndexerTokenTransfersResponse, TokenConfigs, WalletTransaction } from '../types'
12
+ import type { IndexerTokenTransfersResponse, TokenConfig, TokenConfigs, WalletTransaction } from '../types'
13
13
 
14
14
  export interface FetchWalletTransactionsParams {
15
15
  addresses: Record<string, Record<number, string>>
@@ -21,8 +21,27 @@ function normalizeBaseUrl(baseUrl: string): string {
21
21
  return baseUrl.replace(/\/$/, '')
22
22
  }
23
23
 
24
- function tokenSlugFromConfig(symbol: string): string {
25
- return symbol.toLowerCase()
24
+ /**
25
+ * Resolve the WDK Indexer `{token}` path segment, or null when this asset has no indexer history.
26
+ *
27
+ * The indexer only tracks select assets (e.g. `usdt`, `xaut`, `btc`). Native EVM gas tokens
28
+ * (`eth`, `matic`, …) are not valid and return 400 if requested.
29
+ */
30
+ function indexerTokenSlugFromConfig(token: TokenConfig): string | null {
31
+ if (token.indexerToken) {
32
+ return token.indexerToken.toLowerCase()
33
+ }
34
+
35
+ if (token.address !== null) {
36
+ return token.symbol.toLowerCase()
37
+ }
38
+
39
+ // Native: only Bitcoin is indexed under `btc` today.
40
+ if (token.symbol.toLowerCase() === 'btc') {
41
+ return 'btc'
42
+ }
43
+
44
+ return null
26
45
  }
27
46
 
28
47
  function transactionDedupeKey(tx: WalletTransaction): string {
@@ -152,12 +171,16 @@ export class TransactionService {
152
171
 
153
172
  const tokens = [networkTokens.native, ...networkTokens.tokens]
154
173
  for (let i = 0; i < tokens.length; i++) {
174
+ const token = tokens[i]
175
+ if (!token) continue
155
176
  if (i > 0) {
156
177
  await delay(BALANCE_FETCH_INTRA_NETWORK_STAGGER_MS)
157
178
  }
158
179
 
159
- const token = tokens[i]
160
- const tokenSlug = tokenSlugFromConfig(token.symbol)
180
+ const tokenSlug = indexerTokenSlugFromConfig(token)
181
+ if (!tokenSlug) {
182
+ continue
183
+ }
161
184
  try {
162
185
  const transfers = await this.fetchTokenTransfers(network, tokenSlug, address)
163
186
  for (const tx of transfers) {
package/src/types.ts CHANGED
@@ -49,6 +49,12 @@ export interface TokenConfig {
49
49
  decimals: number
50
50
  /** Token contract address (null for native tokens) */
51
51
  address: string | null
52
+ /**
53
+ * WDK Indexer token path segment for token-transfers.
54
+ * When omitted, ERC-20/jetton tokens use lowercase symbol; native gas tokens are skipped
55
+ * except Bitcoin (`btc`). Set explicitly to override or to enable native history when supported.
56
+ */
57
+ indexerToken?: string
52
58
  }
53
59
 
54
60
  /**
@@ -28,9 +28,9 @@ export type AccountIdentifier = string
28
28
  * @returns Base64 encoded string
29
29
  */
30
30
  function bytesToBase64(bytes: Uint8Array): string {
31
- // Try to use Buffer if available (common in React Native with polyfills)
32
- if (typeof Buffer !== 'undefined') {
33
- return Buffer.from(bytes).toString('base64')
31
+ const bufferCtor = (globalThis as { Buffer?: { from(data: Uint8Array): { toString(encoding: string): string } } }).Buffer
32
+ if (bufferCtor) {
33
+ return bufferCtor.from(bytes).toString('base64')
34
34
  }
35
35
 
36
36
  // Fallback to manual encoding for environments without Buffer
@@ -124,7 +124,7 @@ export async function withOperationMutex<T>(
124
124
  }
125
125
 
126
126
  // Set up timeout protection
127
- let timeoutId: NodeJS.Timeout | null = null
127
+ let timeoutId: ReturnType<typeof setTimeout> | null = null
128
128
  let timeoutExceeded = false
129
129
 
130
130
  const timeoutPromise = new Promise<never>((_, reject) => {