react-native-zcash 0.3.5 → 0.4.1

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 (1149) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +10 -7
  3. package/android/build.gradle +6 -4
  4. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1310000.json +7 -0
  5. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1320000.json +7 -0
  6. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1330000.json +7 -0
  7. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1340000.json +7 -0
  8. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1350000.json +7 -0
  9. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1360000.json +7 -0
  10. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1370000.json +7 -0
  11. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1380000.json +7 -0
  12. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1390000.json +7 -0
  13. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1400000.json +7 -0
  14. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1410000.json +7 -0
  15. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1420000.json +7 -0
  16. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1430000.json +7 -0
  17. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1440000.json +7 -0
  18. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1450000.json +7 -0
  19. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1460000.json +7 -0
  20. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1470000.json +7 -0
  21. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1480000.json +7 -0
  22. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1490000.json +7 -0
  23. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1500000.json +7 -0
  24. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1510000.json +7 -0
  25. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1520000.json +7 -0
  26. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1530000.json +7 -0
  27. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1540000.json +7 -0
  28. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1550000.json +7 -0
  29. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1560000.json +7 -0
  30. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1570000.json +7 -0
  31. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1580000.json +7 -0
  32. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1590000.json +7 -0
  33. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1600000.json +7 -0
  34. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1610000.json +7 -0
  35. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1620000.json +7 -0
  36. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1630000.json +7 -0
  37. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1640000.json +7 -0
  38. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1650000.json +7 -0
  39. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1660000.json +7 -0
  40. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1670000.json +7 -0
  41. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1680000.json +7 -0
  42. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1690000.json +8 -0
  43. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1700000.json +8 -0
  44. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1710000.json +8 -0
  45. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1720000.json +8 -0
  46. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1730000.json +8 -0
  47. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1740000.json +8 -0
  48. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1750000.json +8 -0
  49. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1760000.json +8 -0
  50. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1770000.json +8 -0
  51. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1780000.json +8 -0
  52. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1790000.json +8 -0
  53. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1800000.json +8 -0
  54. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1810000.json +8 -0
  55. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1820000.json +8 -0
  56. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1830000.json +8 -0
  57. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1840000.json +8 -0
  58. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1850000.json +8 -0
  59. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1860000.json +8 -0
  60. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1870000.json +8 -0
  61. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1880000.json +8 -0
  62. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1890000.json +8 -0
  63. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1900000.json +8 -0
  64. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1910000.json +8 -0
  65. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1920000.json +8 -0
  66. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1930000.json +8 -0
  67. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1940000.json +8 -0
  68. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1950000.json +8 -0
  69. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1960000.json +8 -0
  70. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1970000.json +8 -0
  71. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1980000.json +8 -0
  72. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/1990000.json +8 -0
  73. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2000000.json +8 -0
  74. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2010000.json +8 -0
  75. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2020000.json +8 -0
  76. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2030000.json +8 -0
  77. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2040000.json +8 -0
  78. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2050000.json +8 -0
  79. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2060000.json +8 -0
  80. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2070000.json +8 -0
  81. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2080000.json +8 -0
  82. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2090000.json +8 -0
  83. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2100000.json +8 -0
  84. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2110000.json +8 -0
  85. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2120000.json +8 -0
  86. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2130000.json +8 -0
  87. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2140000.json +8 -0
  88. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2150000.json +8 -0
  89. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2160000.json +8 -0
  90. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2170000.json +8 -0
  91. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2180000.json +8 -0
  92. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2190000.json +8 -0
  93. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2200000.json +8 -0
  94. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2210000.json +8 -0
  95. package/android/src/main/assets/co.electriccoin.zcash/checkpoint/mainnet/2220000.json +8 -0
  96. package/android/src/main/java/app/edge/rnzcash/RNZcashModule.kt +181 -176
  97. package/android/src/main/java/app/edge/rnzcash/RNZcashPackage.kt +2 -3
  98. package/ios/RNZcash.m +5 -21
  99. package/ios/RNZcash.swift +533 -512
  100. package/ios/ZCashLightClientKit/Block/CompactBlockProcessor.swift +1365 -0
  101. package/ios/ZCashLightClientKit/Block/DatabaseStorage/ConnectorProvider.swift +12 -0
  102. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseStorageError.swift +20 -0
  103. package/ios/ZCashLightClientKit/Block/DatabaseStorage/SimpleConnectionProvider.swift +39 -0
  104. package/ios/ZCashLightClientKit/Block/Download/BlockDownloader.swift +295 -0
  105. package/ios/ZCashLightClientKit/Block/Download/BlockDownloaderService.swift +117 -0
  106. package/ios/ZCashLightClientKit/Block/Enhance/BlockEnhancer.swift +123 -0
  107. package/ios/ZCashLightClientKit/Block/FetchUnspentTxOutputs/UTXOFetcher.swift +114 -0
  108. package/ios/ZCashLightClientKit/Block/FilesystemStorage/FSCompactBlockRepository.swift +419 -0
  109. package/ios/ZCashLightClientKit/Block/SaplingParameters/SaplingParametersHandler.swift +52 -0
  110. package/ios/ZCashLightClientKit/Block/Scan/BlockScanner.swift +114 -0
  111. package/ios/ZCashLightClientKit/Block/Utils/AfterSyncHooksManager.swift +88 -0
  112. package/ios/ZCashLightClientKit/Block/Utils/InternalSyncProgress.swift +200 -0
  113. package/ios/ZCashLightClientKit/Block/Validate/BlockValidator.swift +51 -0
  114. package/ios/ZCashLightClientKit/ClosureSynchronizer.swift +84 -0
  115. package/ios/ZCashLightClientKit/CombineSynchronizer.swift +76 -0
  116. package/ios/ZCashLightClientKit/Constants/Checkpoint+Constants.swift +98 -0
  117. package/ios/ZCashLightClientKit/Constants/Checkpoint+mainnet.swift +19 -0
  118. package/ios/ZCashLightClientKit/Constants/Checkpoint+testnet.swift +20 -0
  119. package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +139 -169
  120. package/ios/ZCashLightClientKit/DAO/BlockDao.swift +65 -20
  121. package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +20 -28
  122. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +175 -323
  123. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +80 -58
  124. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +86 -88
  125. package/ios/ZCashLightClientKit/Entity/BlockProgress.swift +24 -0
  126. package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +3 -3
  127. package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +15 -12
  128. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +205 -131
  129. package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +7 -6
  130. package/ios/ZCashLightClientKit/Entity/ZcashCompactBlock.swift +96 -0
  131. package/ios/ZCashLightClientKit/Error/Sourcery/ZcashError.stencil +40 -0
  132. package/ios/ZCashLightClientKit/Error/Sourcery/ZcashErrorCode.stencil +15 -0
  133. package/ios/ZCashLightClientKit/Error/Sourcery/generateErrorCode.sh +34 -0
  134. package/ios/ZCashLightClientKit/Error/ZcashError.swift +820 -0
  135. package/ios/ZCashLightClientKit/Error/ZcashErrorCode.swift +306 -0
  136. package/ios/ZCashLightClientKit/Error/ZcashErrorCodeDefinition.swift +596 -0
  137. package/ios/ZCashLightClientKit/Extensions/Error+ZcashError.swift +18 -0
  138. package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +1 -1
  139. package/ios/ZCashLightClientKit/Extensions/NumberFormatter+Zcash.swift +19 -0
  140. package/ios/ZCashLightClientKit/Extensions/URL+UpdateWithAlias.swift +36 -0
  141. package/ios/ZCashLightClientKit/Extensions/Undescribable.swift +22 -0
  142. package/ios/ZCashLightClientKit/Extensions/Zatoshi+SQLite.swift +20 -0
  143. package/ios/ZCashLightClientKit/Initializer.swift +336 -260
  144. package/ios/ZCashLightClientKit/Metrics/SDKMetrics.swift +270 -0
  145. package/ios/ZCashLightClientKit/Model/Checkpoint.swift +84 -0
  146. package/ios/ZCashLightClientKit/Model/Memo.swift +236 -0
  147. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +261 -88
  148. package/ios/ZCashLightClientKit/Model/Zatoshi.swift +115 -0
  149. package/ios/ZCashLightClientKit/Modules/Service/GRPC/LightWalletGRPCService.swift +342 -0
  150. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
  151. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/compact_formats.pb.swift +399 -0
  152. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/compact_formats.proto +66 -0
  153. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/service.proto +185 -0
  154. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.grpc.swift +1123 -0
  155. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.pb.swift +1208 -0
  156. package/ios/ZCashLightClientKit/Modules/Service/LightWalletService.swift +195 -0
  157. package/ios/ZCashLightClientKit/Providers/LatestBlocksDataProvider.swift +69 -0
  158. package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +24 -6
  159. package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +14 -46
  160. package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +1 -0
  161. package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +6 -6
  162. package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +18 -19
  163. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +5 -7
  164. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1000000.json +7 -0
  165. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1010000.json +7 -0
  166. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1020000.json +7 -0
  167. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1030000.json +7 -0
  168. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1040000.json +7 -0
  169. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1050000.json +7 -0
  170. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1060000.json +7 -0
  171. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1070000.json +7 -0
  172. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1080000.json +7 -0
  173. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1090000.json +7 -0
  174. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1100000.json +7 -0
  175. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1110000.json +7 -0
  176. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1120000.json +7 -0
  177. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1130000.json +7 -0
  178. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1140000.json +7 -0
  179. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1150000.json +7 -0
  180. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1160000.json +7 -0
  181. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1170000.json +7 -0
  182. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1180000.json +7 -0
  183. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1190000.json +7 -0
  184. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1200000.json +7 -0
  185. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1210000.json +7 -0
  186. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1220000.json +7 -0
  187. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1230000.json +7 -0
  188. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1240000.json +7 -0
  189. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1250000.json +7 -0
  190. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1260000.json +7 -0
  191. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1270000.json +7 -0
  192. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1280000.json +7 -0
  193. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1290000.json +7 -0
  194. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1300000.json +7 -0
  195. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1310000.json +7 -0
  196. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1320000.json +7 -0
  197. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1330000.json +7 -0
  198. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1340000.json +7 -0
  199. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1350000.json +7 -0
  200. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1360000.json +7 -0
  201. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1370000.json +7 -0
  202. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1380000.json +7 -0
  203. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1390000.json +7 -0
  204. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1400000.json +7 -0
  205. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1410000.json +7 -0
  206. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1420000.json +7 -0
  207. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1430000.json +7 -0
  208. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1440000.json +7 -0
  209. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1450000.json +7 -0
  210. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1460000.json +7 -0
  211. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1470000.json +7 -0
  212. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1480000.json +7 -0
  213. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1490000.json +7 -0
  214. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1500000.json +7 -0
  215. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1510000.json +7 -0
  216. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1520000.json +7 -0
  217. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1530000.json +7 -0
  218. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1540000.json +7 -0
  219. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1550000.json +7 -0
  220. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1560000.json +7 -0
  221. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1570000.json +7 -0
  222. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1580000.json +7 -0
  223. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1590000.json +7 -0
  224. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1600000.json +7 -0
  225. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1610000.json +7 -0
  226. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1620000.json +7 -0
  227. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1630000.json +7 -0
  228. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1631000.json +7 -0
  229. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1640000.json +7 -0
  230. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1650000.json +7 -0
  231. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1660000.json +7 -0
  232. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1670000.json +7 -0
  233. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1680000.json +7 -0
  234. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1686871.json +7 -0
  235. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1687104.json +8 -0
  236. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1690000.json +8 -0
  237. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1700000.json +8 -0
  238. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1710000.json +8 -0
  239. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1720000.json +8 -0
  240. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1722500.json +8 -0
  241. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1725000.json +8 -0
  242. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1727500.json +8 -0
  243. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1730000.json +8 -0
  244. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1732500.json +8 -0
  245. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1735000.json +8 -0
  246. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1737500.json +8 -0
  247. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1740000.json +8 -0
  248. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1742500.json +8 -0
  249. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1745000.json +8 -0
  250. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1747500.json +8 -0
  251. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1750000.json +8 -0
  252. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1752500.json +8 -0
  253. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1755000.json +9 -0
  254. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1757500.json +8 -0
  255. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1760000.json +8 -0
  256. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1762500.json +8 -0
  257. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1765000.json +8 -0
  258. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1767500.json +8 -0
  259. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1770000.json +8 -0
  260. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1772500.json +8 -0
  261. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1775000.json +8 -0
  262. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1777500.json +8 -0
  263. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1780000.json +8 -0
  264. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1782500.json +8 -0
  265. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1785000.json +8 -0
  266. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1787500.json +8 -0
  267. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1790000.json +8 -0
  268. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1792500.json +8 -0
  269. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1795000.json +8 -0
  270. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1797500.json +8 -0
  271. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1800000.json +8 -0
  272. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1802500.json +8 -0
  273. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1805000.json +8 -0
  274. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1807500.json +8 -0
  275. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1810000.json +8 -0
  276. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1812500.json +8 -0
  277. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1815000.json +8 -0
  278. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1817500.json +8 -0
  279. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1820000.json +8 -0
  280. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1822500.json +8 -0
  281. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1825000.json +8 -0
  282. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1827500.json +8 -0
  283. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1830000.json +8 -0
  284. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1832500.json +8 -0
  285. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1835000.json +8 -0
  286. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1837500.json +8 -0
  287. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1840000.json +8 -0
  288. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1842500.json +8 -0
  289. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1845000.json +8 -0
  290. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1847500.json +8 -0
  291. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1850000.json +8 -0
  292. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1852500.json +8 -0
  293. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1855000.json +8 -0
  294. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1857500.json +8 -0
  295. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1860000.json +8 -0
  296. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1862500.json +8 -0
  297. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1865000.json +8 -0
  298. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1867500.json +8 -0
  299. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1870000.json +8 -0
  300. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1872500.json +8 -0
  301. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1875000.json +8 -0
  302. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1877500.json +8 -0
  303. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1880000.json +8 -0
  304. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1882500.json +8 -0
  305. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1885000.json +8 -0
  306. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1887500.json +8 -0
  307. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1890000.json +8 -0
  308. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1892500.json +8 -0
  309. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1895000.json +8 -0
  310. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1897500.json +8 -0
  311. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1900000.json +8 -0
  312. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1902500.json +8 -0
  313. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1905000.json +8 -0
  314. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1907500.json +8 -0
  315. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1910000.json +8 -0
  316. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1912500.json +8 -0
  317. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1915000.json +8 -0
  318. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1917500.json +8 -0
  319. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1920000.json +8 -0
  320. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1922500.json +8 -0
  321. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1925000.json +8 -0
  322. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1927500.json +8 -0
  323. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1930000.json +8 -0
  324. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1932500.json +8 -0
  325. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1935000.json +8 -0
  326. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1937500.json +8 -0
  327. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1940000.json +8 -0
  328. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1942500.json +8 -0
  329. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1945000.json +8 -0
  330. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1947500.json +8 -0
  331. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1950000.json +8 -0
  332. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1952500.json +8 -0
  333. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1955000.json +8 -0
  334. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1957500.json +8 -0
  335. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1960000.json +8 -0
  336. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1962500.json +8 -0
  337. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1965000.json +8 -0
  338. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1967500.json +8 -0
  339. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1970000.json +8 -0
  340. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1972500.json +8 -0
  341. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1975000.json +8 -0
  342. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1977500.json +8 -0
  343. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1980000.json +8 -0
  344. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1982500.json +8 -0
  345. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1985000.json +8 -0
  346. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1987500.json +8 -0
  347. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1990000.json +8 -0
  348. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1992500.json +8 -0
  349. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1995000.json +8 -0
  350. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1997500.json +8 -0
  351. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2000000.json +8 -0
  352. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2002500.json +8 -0
  353. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2005000.json +8 -0
  354. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2007500.json +8 -0
  355. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2010000.json +8 -0
  356. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2012500.json +8 -0
  357. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2015000.json +8 -0
  358. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2017500.json +8 -0
  359. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2020000.json +8 -0
  360. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2022500.json +8 -0
  361. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2025000.json +8 -0
  362. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2027500.json +8 -0
  363. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2030000.json +8 -0
  364. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2032500.json +8 -0
  365. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2035000.json +8 -0
  366. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2037500.json +8 -0
  367. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2040000.json +8 -0
  368. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2042500.json +8 -0
  369. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2045000.json +8 -0
  370. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2047500.json +8 -0
  371. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2050000.json +8 -0
  372. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2052500.json +8 -0
  373. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2055000.json +8 -0
  374. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2057500.json +8 -0
  375. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2060000.json +8 -0
  376. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2062500.json +8 -0
  377. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2065000.json +8 -0
  378. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2067500.json +8 -0
  379. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2070000.json +8 -0
  380. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2072500.json +8 -0
  381. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2075000.json +8 -0
  382. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2077500.json +8 -0
  383. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2080000.json +8 -0
  384. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2082500.json +8 -0
  385. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2085000.json +8 -0
  386. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2087500.json +8 -0
  387. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2090000.json +8 -0
  388. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2100000.json +8 -0
  389. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2110000.json +8 -0
  390. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2120000.json +8 -0
  391. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2130000.json +8 -0
  392. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2140000.json +8 -0
  393. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2150000.json +8 -0
  394. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2160000.json +8 -0
  395. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2170000.json +8 -0
  396. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2180000.json +8 -0
  397. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2190000.json +8 -0
  398. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2200000.json +8 -0
  399. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2210000.json +8 -0
  400. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2220000.json +8 -0
  401. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/419200.json +7 -0
  402. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/500000.json +7 -0
  403. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/510000.json +7 -0
  404. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/520000.json +7 -0
  405. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/530000.json +7 -0
  406. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/540000.json +7 -0
  407. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/550000.json +7 -0
  408. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/560000.json +7 -0
  409. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/570000.json +7 -0
  410. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/580000.json +7 -0
  411. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/590000.json +7 -0
  412. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/600000.json +7 -0
  413. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/610000.json +7 -0
  414. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/620000.json +7 -0
  415. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/630000.json +7 -0
  416. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/640000.json +7 -0
  417. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/650000.json +7 -0
  418. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/660000.json +7 -0
  419. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/663150.json +8 -0
  420. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/670000.json +7 -0
  421. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/680000.json +7 -0
  422. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/690000.json +7 -0
  423. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/700000.json +7 -0
  424. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/710000.json +7 -0
  425. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/720000.json +7 -0
  426. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/730000.json +7 -0
  427. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/740000.json +7 -0
  428. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/750000.json +7 -0
  429. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/760000.json +7 -0
  430. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/770000.json +7 -0
  431. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/780000.json +7 -0
  432. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/790000.json +7 -0
  433. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/800000.json +7 -0
  434. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/810000.json +7 -0
  435. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/820000.json +7 -0
  436. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/830000.json +7 -0
  437. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/840000.json +7 -0
  438. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/850000.json +7 -0
  439. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/860000.json +7 -0
  440. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/870000.json +7 -0
  441. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/880000.json +7 -0
  442. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/890000.json +7 -0
  443. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/900000.json +7 -0
  444. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/910000.json +7 -0
  445. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/920000.json +7 -0
  446. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/930000.json +7 -0
  447. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/940000.json +7 -0
  448. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/950000.json +7 -0
  449. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/960000.json +7 -0
  450. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/970000.json +7 -0
  451. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/980000.json +7 -0
  452. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/990000.json +7 -0
  453. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1000000.json +7 -0
  454. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1010000.json +7 -0
  455. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1020000.json +7 -0
  456. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1030000.json +7 -0
  457. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1040000.json +7 -0
  458. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1050000.json +7 -0
  459. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1060000.json +7 -0
  460. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1070000.json +7 -0
  461. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1080000.json +7 -0
  462. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1090000.json +7 -0
  463. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1100000.json +7 -0
  464. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1110000.json +7 -0
  465. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1120000.json +7 -0
  466. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1130000.json +7 -0
  467. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1140000.json +7 -0
  468. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1150000.json +7 -0
  469. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1160000.json +7 -0
  470. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1170000.json +7 -0
  471. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1180000.json +7 -0
  472. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1190000.json +7 -0
  473. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1200000.json +7 -0
  474. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1210000.json +7 -0
  475. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1220000.json +7 -0
  476. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1230000.json +7 -0
  477. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1240000.json +7 -0
  478. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1250000.json +7 -0
  479. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1260000.json +7 -0
  480. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1270000.json +7 -0
  481. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1280000.json +7 -0
  482. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1290000.json +7 -0
  483. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1300000.json +7 -0
  484. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1310000.json +7 -0
  485. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1320000.json +7 -0
  486. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1330000.json +7 -0
  487. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1340000.json +7 -0
  488. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1350000.json +7 -0
  489. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1360000.json +7 -0
  490. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1370000.json +7 -0
  491. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1380000.json +7 -0
  492. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1390000.json +7 -0
  493. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1400000.json +7 -0
  494. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1410000.json +7 -0
  495. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1420000.json +7 -0
  496. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1430000.json +7 -0
  497. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1440000.json +7 -0
  498. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1450000.json +7 -0
  499. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1460000.json +7 -0
  500. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1470000.json +7 -0
  501. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1480000.json +7 -0
  502. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1490000.json +7 -0
  503. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1500000.json +7 -0
  504. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1510000.json +7 -0
  505. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1520000.json +7 -0
  506. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1530000.json +7 -0
  507. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1540000.json +7 -0
  508. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1550000.json +7 -0
  509. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1560000.json +7 -0
  510. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1570000.json +7 -0
  511. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1580000.json +7 -0
  512. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1590000.json +7 -0
  513. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1600000.json +7 -0
  514. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1610000.json +7 -0
  515. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1620000.json +7 -0
  516. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1630000.json +7 -0
  517. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1640000.json +7 -0
  518. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1650000.json +7 -0
  519. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1660000.json +7 -0
  520. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1670000.json +7 -0
  521. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1680000.json +7 -0
  522. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1690000.json +7 -0
  523. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1700000.json +7 -0
  524. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1710000.json +7 -0
  525. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1720000.json +7 -0
  526. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1730000.json +7 -0
  527. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1740000.json +7 -0
  528. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1750000.json +7 -0
  529. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1760000.json +7 -0
  530. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1770000.json +7 -0
  531. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1780000.json +7 -0
  532. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1790000.json +7 -0
  533. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1800000.json +7 -0
  534. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1810000.json +7 -0
  535. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1820000.json +7 -0
  536. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1830000.json +7 -0
  537. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1840000.json +7 -0
  538. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1842420.json +8 -0
  539. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1850000.json +8 -0
  540. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1860000.json +8 -0
  541. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1870000.json +8 -0
  542. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1880000.json +8 -0
  543. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1890000.json +8 -0
  544. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1900000.json +8 -0
  545. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1910000.json +8 -0
  546. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1920000.json +8 -0
  547. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1930000.json +8 -0
  548. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1940000.json +8 -0
  549. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1950000.json +8 -0
  550. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1960000.json +8 -0
  551. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1970000.json +8 -0
  552. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1980000.json +8 -0
  553. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1990000.json +8 -0
  554. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2000000.json +8 -0
  555. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2010000.json +8 -0
  556. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2020000.json +8 -0
  557. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2030000.json +8 -0
  558. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2040000.json +8 -0
  559. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2050000.json +8 -0
  560. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2060000.json +8 -0
  561. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2070000.json +8 -0
  562. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2080000.json +8 -0
  563. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2090000.json +8 -0
  564. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2100000.json +8 -0
  565. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2110000.json +8 -0
  566. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2120000.json +8 -0
  567. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2130000.json +8 -0
  568. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2140000.json +8 -0
  569. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2150000.json +8 -0
  570. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2160000.json +8 -0
  571. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2170000.json +8 -0
  572. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2180000.json +8 -0
  573. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2190000.json +8 -0
  574. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2200000.json +8 -0
  575. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2210000.json +8 -0
  576. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2220000.json +8 -0
  577. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2230000.json +8 -0
  578. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2240000.json +8 -0
  579. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2250000.json +8 -0
  580. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2260000.json +8 -0
  581. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2270000.json +8 -0
  582. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2280000.json +8 -0
  583. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2290000.json +8 -0
  584. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2300000.json +8 -0
  585. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2310000.json +8 -0
  586. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2320000.json +8 -0
  587. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2330000.json +8 -0
  588. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2340000.json +8 -0
  589. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/280000.json +7 -0
  590. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/290000.json +7 -0
  591. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/300000.json +7 -0
  592. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/310000.json +7 -0
  593. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/320000.json +7 -0
  594. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/330000.json +7 -0
  595. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/340000.json +7 -0
  596. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/350000.json +7 -0
  597. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/360000.json +7 -0
  598. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/370000.json +7 -0
  599. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/380000.json +7 -0
  600. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/390000.json +7 -0
  601. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/400000.json +7 -0
  602. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/410000.json +7 -0
  603. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/420000.json +7 -0
  604. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/430000.json +7 -0
  605. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/440000.json +7 -0
  606. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/450000.json +7 -0
  607. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/460000.json +7 -0
  608. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/470000.json +7 -0
  609. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/480000.json +7 -0
  610. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/490000.json +7 -0
  611. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/500000.json +7 -0
  612. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/510000.json +7 -0
  613. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/520000.json +7 -0
  614. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/530000.json +7 -0
  615. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/540000.json +7 -0
  616. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/550000.json +7 -0
  617. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/560000.json +7 -0
  618. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/570000.json +7 -0
  619. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/580000.json +7 -0
  620. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/590000.json +7 -0
  621. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/600000.json +7 -0
  622. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/610000.json +7 -0
  623. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/620000.json +7 -0
  624. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/630000.json +7 -0
  625. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/640000.json +7 -0
  626. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/650000.json +7 -0
  627. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/660000.json +7 -0
  628. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/670000.json +7 -0
  629. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/680000.json +7 -0
  630. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/690000.json +7 -0
  631. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/700000.json +7 -0
  632. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/710000.json +7 -0
  633. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/720000.json +7 -0
  634. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/730000.json +7 -0
  635. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/740000.json +7 -0
  636. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/750000.json +7 -0
  637. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/760000.json +7 -0
  638. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/770000.json +7 -0
  639. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/780000.json +7 -0
  640. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/790000.json +7 -0
  641. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/800000.json +7 -0
  642. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/810000.json +7 -0
  643. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/820000.json +7 -0
  644. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/830000.json +7 -0
  645. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/840000.json +7 -0
  646. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/850000.json +7 -0
  647. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/860000.json +7 -0
  648. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/870000.json +7 -0
  649. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/880000.json +7 -0
  650. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/890000.json +7 -0
  651. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/900000.json +7 -0
  652. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/910000.json +7 -0
  653. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/920000.json +7 -0
  654. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/930000.json +7 -0
  655. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/940000.json +7 -0
  656. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/950000.json +7 -0
  657. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/960000.json +7 -0
  658. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/970000.json +7 -0
  659. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/980000.json +7 -0
  660. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/990000.json +7 -0
  661. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackend.swift +218 -0
  662. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackendWelding.swift +88 -0
  663. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +531 -604
  664. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +223 -356
  665. package/ios/ZCashLightClientKit/Rust/zcashlc.h +802 -136
  666. package/ios/ZCashLightClientKit/Synchronizer/ClosureSDKSynchronizer.swift +180 -0
  667. package/ios/ZCashLightClientKit/Synchronizer/CombineSDKSynchronizer.swift +175 -0
  668. package/ios/ZCashLightClientKit/Synchronizer/Dependencies.swift +207 -0
  669. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +527 -793
  670. package/ios/ZCashLightClientKit/Synchronizer.swift +416 -342
  671. package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +163 -300
  672. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +39 -89
  673. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +93 -144
  674. package/ios/ZCashLightClientKit/Utils/AsyncToClosureGateway.swift +46 -0
  675. package/ios/ZCashLightClientKit/Utils/AsyncToCombineGateway.swift +59 -0
  676. package/ios/ZCashLightClientKit/Utils/Clamped.swift +32 -0
  677. package/ios/ZCashLightClientKit/Utils/DIContainer.swift +86 -0
  678. package/ios/ZCashLightClientKit/Utils/GenericActor.swift +18 -0
  679. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +22 -21
  680. package/ios/ZCashLightClientKit/Utils/OSLogger.swift +109 -0
  681. package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +124 -89
  682. package/ios/ZCashLightClientKit/Utils/SpecificCombineTypes.swift +16 -0
  683. package/ios/ZCashLightClientKit/Utils/SyncSessionIDGenerator.swift +32 -0
  684. package/ios/ZCashLightClientKit/Utils/Task+sleep.swift +14 -0
  685. package/ios/ZCashLightClientKit/Utils/UsedAliasesChecker.swift +41 -0
  686. package/ios/libzcashlc.xcframework/Info.plist +5 -5
  687. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  688. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  689. package/lib/rnzcash.rn.js +37 -80
  690. package/lib/rnzcash.rn.js.map +1 -1
  691. package/lib/src/react-native.d.ts +5 -10
  692. package/lib/src/types.d.ts +3 -4
  693. package/package.json +4 -1
  694. package/react-native-zcash.podspec +5 -4
  695. package/src/react-native.ts +15 -41
  696. package/src/types.ts +3 -4
  697. package/android/src/main/assets/saplingtree/mainnet/1310000.json +0 -7
  698. package/android/src/main/assets/saplingtree/mainnet/1320000.json +0 -7
  699. package/android/src/main/assets/saplingtree/mainnet/1330000.json +0 -7
  700. package/android/src/main/assets/saplingtree/mainnet/1340000.json +0 -7
  701. package/android/src/main/assets/saplingtree/mainnet/1350000.json +0 -7
  702. package/android/src/main/assets/saplingtree/mainnet/1360000.json +0 -7
  703. package/android/src/main/assets/saplingtree/mainnet/1370000.json +0 -7
  704. package/android/src/main/assets/saplingtree/mainnet/1380000.json +0 -7
  705. package/android/src/main/assets/saplingtree/mainnet/1390000.json +0 -7
  706. package/android/src/main/assets/saplingtree/mainnet/1400000.json +0 -7
  707. package/android/src/main/assets/saplingtree/mainnet/1410000.json +0 -7
  708. package/android/src/main/assets/saplingtree/mainnet/1420000.json +0 -7
  709. package/android/src/main/assets/saplingtree/mainnet/1430000.json +0 -7
  710. package/android/src/main/assets/saplingtree/mainnet/1440000.json +0 -7
  711. package/android/src/main/assets/saplingtree/mainnet/1450000.json +0 -7
  712. package/android/src/main/assets/saplingtree/mainnet/1460000.json +0 -7
  713. package/android/src/main/assets/saplingtree/mainnet/1470000.json +0 -7
  714. package/android/src/main/assets/saplingtree/mainnet/1480000.json +0 -7
  715. package/android/src/main/assets/saplingtree/mainnet/1490000.json +0 -7
  716. package/android/src/main/assets/saplingtree/mainnet/1500000.json +0 -7
  717. package/android/src/main/assets/saplingtree/mainnet/1510000.json +0 -7
  718. package/android/src/main/assets/saplingtree/mainnet/1520000.json +0 -7
  719. package/android/src/main/assets/saplingtree/mainnet/1530000.json +0 -7
  720. package/android/src/main/assets/saplingtree/mainnet/1540000.json +0 -7
  721. package/android/src/main/assets/saplingtree/mainnet/1550000.json +0 -7
  722. package/android/src/main/assets/saplingtree/mainnet/1560000.json +0 -7
  723. package/android/src/main/assets/saplingtree/mainnet/1570000.json +0 -7
  724. package/android/src/main/assets/saplingtree/mainnet/1580000.json +0 -7
  725. package/android/src/main/assets/saplingtree/mainnet/1590000.json +0 -7
  726. package/android/src/main/assets/saplingtree/mainnet/1600000.json +0 -7
  727. package/android/src/main/assets/saplingtree/mainnet/1610000.json +0 -7
  728. package/android/src/main/assets/saplingtree/mainnet/1620000.json +0 -7
  729. package/android/src/main/assets/saplingtree/mainnet/1630000.json +0 -7
  730. package/android/src/main/assets/saplingtree/mainnet/1640000.json +0 -7
  731. package/android/src/main/assets/saplingtree/mainnet/1650000.json +0 -7
  732. package/android/src/main/assets/saplingtree/mainnet/1660000.json +0 -7
  733. package/android/src/main/assets/saplingtree/mainnet/1670000.json +0 -7
  734. package/android/src/main/assets/saplingtree/mainnet/1680000.json +0 -7
  735. package/android/src/main/assets/saplingtree/mainnet/1690000.json +0 -7
  736. package/android/src/main/assets/saplingtree/mainnet/1700000.json +0 -7
  737. package/android/src/main/assets/saplingtree/mainnet/1710000.json +0 -7
  738. package/android/src/main/assets/saplingtree/mainnet/1720000.json +0 -7
  739. package/android/src/main/assets/saplingtree/mainnet/1730000.json +0 -7
  740. package/android/src/main/assets/saplingtree/mainnet/1740000.json +0 -7
  741. package/android/src/main/assets/saplingtree/mainnet/1750000.json +0 -7
  742. package/android/src/main/assets/saplingtree/mainnet/1760000.json +0 -7
  743. package/android/src/main/assets/saplingtree/mainnet/1770000.json +0 -7
  744. package/android/src/main/assets/saplingtree/mainnet/1780000.json +0 -7
  745. package/android/src/main/assets/saplingtree/mainnet/1790000.json +0 -7
  746. package/android/src/main/assets/saplingtree/mainnet/1800000.json +0 -7
  747. package/android/src/main/assets/saplingtree/mainnet/1810000.json +0 -7
  748. package/android/src/main/assets/saplingtree/mainnet/1820000.json +0 -7
  749. package/android/src/main/assets/saplingtree/mainnet/1830000.json +0 -7
  750. package/android/src/main/assets/saplingtree/mainnet/1840000.json +0 -7
  751. package/android/src/main/assets/saplingtree/mainnet/1850000.json +0 -7
  752. package/android/src/main/assets/saplingtree/mainnet/1860000.json +0 -7
  753. package/android/src/main/assets/saplingtree/mainnet/1870000.json +0 -7
  754. package/android/src/main/assets/saplingtree/mainnet/1880000.json +0 -7
  755. package/android/src/main/assets/saplingtree/mainnet/1890000.json +0 -7
  756. package/android/src/main/assets/saplingtree/mainnet/1900000.json +0 -7
  757. package/android/src/main/assets/saplingtree/mainnet/1910000.json +0 -7
  758. package/android/src/main/assets/saplingtree/mainnet/1920000.json +0 -7
  759. package/android/src/main/assets/saplingtree/mainnet/1930000.json +0 -7
  760. package/android/src/main/assets/saplingtree/mainnet/1940000.json +0 -7
  761. package/android/src/main/assets/saplingtree/mainnet/1950000.json +0 -7
  762. package/android/src/main/assets/saplingtree/mainnet/1960000.json +0 -7
  763. package/android/src/main/assets/saplingtree/mainnet/1970000.json +0 -7
  764. package/android/src/main/assets/saplingtree/mainnet/1980000.json +0 -7
  765. package/android/src/main/assets/saplingtree/mainnet/1990000.json +0 -7
  766. package/android/src/main/assets/saplingtree/mainnet/2000000.json +0 -7
  767. package/android/src/main/assets/saplingtree/mainnet/2010000.json +0 -7
  768. package/android/src/main/assets/saplingtree/mainnet/2020000.json +0 -7
  769. package/android/src/main/assets/saplingtree/mainnet/2030000.json +0 -7
  770. package/android/src/main/assets/saplingtree/mainnet/2040000.json +0 -7
  771. package/android/src/main/assets/saplingtree/mainnet/2050000.json +0 -7
  772. package/android/src/main/assets/saplingtree/mainnet/2060000.json +0 -7
  773. package/android/src/main/assets/saplingtree/mainnet/2070000.json +0 -7
  774. package/android/src/main/assets/saplingtree/mainnet/2080000.json +0 -7
  775. package/android/src/main/assets/saplingtree/mainnet/2090000.json +0 -7
  776. package/android/src/main/assets/saplingtree/mainnet/2100000.json +0 -7
  777. package/android/src/main/assets/saplingtree/mainnet/2110000.json +0 -7
  778. package/android/src/main/assets/saplingtree/mainnet/2120000.json +0 -7
  779. package/android/src/main/assets/saplingtree/mainnet/2130000.json +0 -7
  780. package/android/src/main/assets/saplingtree/mainnet/2140000.json +0 -7
  781. package/android/src/main/assets/saplingtree/mainnet/2150000.json +0 -7
  782. package/android/src/main/assets/saplingtree/mainnet/2160000.json +0 -7
  783. package/android/src/main/assets/saplingtree/mainnet/2170000.json +0 -7
  784. package/ios/ZCashLightClientKit/Block/DatabaseStorage/CompactBlockStorage.swift +0 -123
  785. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseMigrationManager.swift +0 -222
  786. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageError.swift +0 -22
  787. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageManager.swift +0 -73
  788. package/ios/ZCashLightClientKit/Block/Downloader/BlockDownloader.swift +0 -240
  789. package/ios/ZCashLightClientKit/Block/Downloader/CompactBlockDownloaderBuilder.swift +0 -26
  790. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockDownloadOperation.swift +0 -258
  791. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockEnhancementOperation.swift +0 -157
  792. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockProcessor.swift +0 -1454
  793. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockScanningOperation.swift +0 -238
  794. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockValidationInformation.swift +0 -66
  795. package/ios/ZCashLightClientKit/Block/Processor/FetchUnspentTxOutputsOperation.swift +0 -103
  796. package/ios/ZCashLightClientKit/Block/Processor/FigureNextBatchOperation.swift +0 -58
  797. package/ios/ZCashLightClientKit/Block/Processor/ZcashOperation.swift +0 -68
  798. package/ios/ZCashLightClientKit/Constants/WalletBirthday+Constants.swift +0 -58
  799. package/ios/ZCashLightClientKit/Constants/WalletBirthday+mainnet.swift +0 -20
  800. package/ios/ZCashLightClientKit/Constants/WalletBirthday+testnet.swift +0 -20
  801. package/ios/ZCashLightClientKit/DAO/CompactBlockDAO.swift +0 -24
  802. package/ios/ZCashLightClientKit/DAO/NotesDao.swift +0 -142
  803. package/ios/ZCashLightClientKit/DAO/PendingTransactionDao.swift +0 -213
  804. package/ios/ZCashLightClientKit/DAO/TransactionBuilder.swift +0 -169
  805. package/ios/ZCashLightClientKit/Entity/CompactBlockEntity.swift +0 -13
  806. package/ios/ZCashLightClientKit/Entity/PendingTransactionEntity.swift +0 -205
  807. package/ios/ZCashLightClientKit/Entity/ReceivedNoteEntity.swift +0 -22
  808. package/ios/ZCashLightClientKit/Repository/PendingTransactionRepository.swift +0 -19
  809. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1000000.json +0 -7
  810. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1010000.json +0 -7
  811. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1020000.json +0 -7
  812. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1030000.json +0 -7
  813. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1040000.json +0 -7
  814. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1050000.json +0 -7
  815. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1060000.json +0 -7
  816. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1070000.json +0 -7
  817. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1080000.json +0 -7
  818. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1090000.json +0 -7
  819. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1100000.json +0 -7
  820. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1110000.json +0 -7
  821. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1120000.json +0 -7
  822. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1130000.json +0 -7
  823. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1140000.json +0 -7
  824. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1150000.json +0 -7
  825. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1160000.json +0 -7
  826. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1170000.json +0 -7
  827. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1180000.json +0 -7
  828. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1190000.json +0 -7
  829. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1200000.json +0 -7
  830. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1210000.json +0 -7
  831. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1220000.json +0 -7
  832. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1230000.json +0 -7
  833. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1240000.json +0 -7
  834. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1250000.json +0 -7
  835. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1260000.json +0 -7
  836. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1270000.json +0 -7
  837. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1280000.json +0 -7
  838. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1290000.json +0 -7
  839. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1300000.json +0 -7
  840. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1310000.json +0 -7
  841. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1320000.json +0 -7
  842. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1330000.json +0 -7
  843. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1340000.json +0 -7
  844. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1350000.json +0 -7
  845. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1360000.json +0 -7
  846. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1370000.json +0 -7
  847. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1380000.json +0 -7
  848. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1390000.json +0 -7
  849. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1400000.json +0 -7
  850. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1410000.json +0 -7
  851. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1420000.json +0 -7
  852. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1430000.json +0 -7
  853. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1440000.json +0 -7
  854. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1450000.json +0 -7
  855. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1460000.json +0 -7
  856. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1470000.json +0 -7
  857. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1480000.json +0 -7
  858. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1490000.json +0 -7
  859. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1500000.json +0 -7
  860. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1510000.json +0 -7
  861. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1520000.json +0 -7
  862. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1530000.json +0 -7
  863. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1540000.json +0 -7
  864. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1550000.json +0 -7
  865. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1560000.json +0 -7
  866. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1570000.json +0 -7
  867. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1580000.json +0 -7
  868. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1590000.json +0 -7
  869. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1600000.json +0 -7
  870. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1610000.json +0 -7
  871. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1620000.json +0 -7
  872. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1630000.json +0 -7
  873. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1640000.json +0 -7
  874. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1650000.json +0 -7
  875. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1660000.json +0 -7
  876. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1670000.json +0 -7
  877. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1680000.json +0 -7
  878. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1690000.json +0 -7
  879. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1700000.json +0 -7
  880. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1710000.json +0 -7
  881. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1720000.json +0 -7
  882. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1730000.json +0 -7
  883. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1740000.json +0 -7
  884. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1750000.json +0 -7
  885. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1760000.json +0 -7
  886. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1770000.json +0 -7
  887. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1780000.json +0 -7
  888. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1790000.json +0 -7
  889. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1800000.json +0 -7
  890. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1810000.json +0 -7
  891. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1820000.json +0 -7
  892. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1830000.json +0 -7
  893. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1840000.json +0 -7
  894. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1850000.json +0 -7
  895. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1860000.json +0 -7
  896. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1870000.json +0 -7
  897. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1880000.json +0 -7
  898. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1890000.json +0 -7
  899. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1900000.json +0 -7
  900. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1910000.json +0 -7
  901. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1920000.json +0 -7
  902. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1930000.json +0 -7
  903. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1940000.json +0 -7
  904. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1950000.json +0 -7
  905. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1960000.json +0 -7
  906. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1970000.json +0 -7
  907. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1980000.json +0 -7
  908. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1990000.json +0 -7
  909. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2000000.json +0 -7
  910. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2010000.json +0 -7
  911. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2020000.json +0 -7
  912. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2030000.json +0 -7
  913. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2040000.json +0 -7
  914. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2050000.json +0 -7
  915. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2060000.json +0 -7
  916. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2070000.json +0 -7
  917. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2080000.json +0 -7
  918. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2090000.json +0 -7
  919. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2100000.json +0 -7
  920. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2110000.json +0 -7
  921. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2120000.json +0 -7
  922. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2130000.json +0 -7
  923. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2140000.json +0 -7
  924. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2150000.json +0 -7
  925. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2160000.json +0 -7
  926. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2170000.json +0 -7
  927. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/419200.json +0 -7
  928. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/500000.json +0 -7
  929. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/510000.json +0 -7
  930. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/520000.json +0 -7
  931. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/530000.json +0 -7
  932. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/540000.json +0 -7
  933. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/550000.json +0 -7
  934. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/560000.json +0 -7
  935. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/570000.json +0 -7
  936. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/580000.json +0 -7
  937. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/590000.json +0 -7
  938. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/600000.json +0 -7
  939. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/610000.json +0 -7
  940. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/620000.json +0 -7
  941. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/630000.json +0 -7
  942. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/640000.json +0 -7
  943. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/650000.json +0 -7
  944. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/660000.json +0 -7
  945. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/663150.json +0 -8
  946. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/670000.json +0 -7
  947. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/680000.json +0 -7
  948. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/690000.json +0 -7
  949. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/700000.json +0 -7
  950. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/710000.json +0 -7
  951. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/720000.json +0 -7
  952. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/730000.json +0 -7
  953. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/740000.json +0 -7
  954. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/750000.json +0 -7
  955. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/760000.json +0 -7
  956. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/770000.json +0 -7
  957. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/780000.json +0 -7
  958. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/790000.json +0 -7
  959. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/800000.json +0 -7
  960. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/810000.json +0 -7
  961. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/820000.json +0 -7
  962. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/830000.json +0 -7
  963. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/840000.json +0 -7
  964. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/850000.json +0 -7
  965. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/860000.json +0 -7
  966. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/870000.json +0 -7
  967. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/880000.json +0 -7
  968. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/890000.json +0 -7
  969. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/900000.json +0 -7
  970. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/910000.json +0 -7
  971. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/920000.json +0 -7
  972. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/930000.json +0 -7
  973. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/940000.json +0 -7
  974. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/950000.json +0 -7
  975. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/960000.json +0 -7
  976. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/970000.json +0 -7
  977. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/980000.json +0 -7
  978. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/990000.json +0 -7
  979. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1000000.json +0 -7
  980. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1010000.json +0 -7
  981. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1020000.json +0 -7
  982. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1030000.json +0 -7
  983. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1040000.json +0 -7
  984. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1050000.json +0 -7
  985. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1060000.json +0 -7
  986. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1070000.json +0 -7
  987. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1080000.json +0 -7
  988. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1090000.json +0 -7
  989. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1100000.json +0 -7
  990. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1110000.json +0 -7
  991. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1120000.json +0 -7
  992. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1130000.json +0 -7
  993. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1140000.json +0 -7
  994. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1150000.json +0 -7
  995. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1160000.json +0 -7
  996. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1170000.json +0 -7
  997. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1180000.json +0 -7
  998. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1190000.json +0 -7
  999. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1200000.json +0 -7
  1000. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1210000.json +0 -7
  1001. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1220000.json +0 -7
  1002. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1230000.json +0 -7
  1003. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1240000.json +0 -7
  1004. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1250000.json +0 -7
  1005. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1260000.json +0 -7
  1006. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1270000.json +0 -7
  1007. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1280000.json +0 -7
  1008. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1290000.json +0 -7
  1009. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1300000.json +0 -7
  1010. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1310000.json +0 -7
  1011. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1320000.json +0 -7
  1012. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1330000.json +0 -7
  1013. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1340000.json +0 -7
  1014. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1350000.json +0 -7
  1015. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1360000.json +0 -7
  1016. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1370000.json +0 -7
  1017. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1380000.json +0 -7
  1018. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1390000.json +0 -7
  1019. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1400000.json +0 -7
  1020. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1410000.json +0 -7
  1021. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1420000.json +0 -7
  1022. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1430000.json +0 -7
  1023. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1440000.json +0 -7
  1024. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1450000.json +0 -7
  1025. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1460000.json +0 -7
  1026. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1470000.json +0 -7
  1027. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1480000.json +0 -7
  1028. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1490000.json +0 -7
  1029. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1500000.json +0 -7
  1030. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1510000.json +0 -7
  1031. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1520000.json +0 -7
  1032. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1530000.json +0 -7
  1033. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1540000.json +0 -7
  1034. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1550000.json +0 -7
  1035. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1560000.json +0 -7
  1036. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1570000.json +0 -7
  1037. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1580000.json +0 -7
  1038. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1590000.json +0 -7
  1039. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1600000.json +0 -7
  1040. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1610000.json +0 -7
  1041. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1620000.json +0 -7
  1042. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1630000.json +0 -7
  1043. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1640000.json +0 -7
  1044. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1650000.json +0 -7
  1045. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1660000.json +0 -7
  1046. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1670000.json +0 -7
  1047. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1680000.json +0 -7
  1048. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1690000.json +0 -7
  1049. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1700000.json +0 -7
  1050. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1710000.json +0 -7
  1051. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1720000.json +0 -7
  1052. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1730000.json +0 -7
  1053. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1740000.json +0 -7
  1054. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1750000.json +0 -7
  1055. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1760000.json +0 -7
  1056. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1770000.json +0 -7
  1057. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1780000.json +0 -7
  1058. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1790000.json +0 -7
  1059. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1800000.json +0 -7
  1060. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1810000.json +0 -7
  1061. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1820000.json +0 -7
  1062. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1830000.json +0 -7
  1063. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1840000.json +0 -7
  1064. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1850000.json +0 -7
  1065. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1860000.json +0 -7
  1066. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/280000.json +0 -7
  1067. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/290000.json +0 -7
  1068. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/300000.json +0 -7
  1069. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/310000.json +0 -7
  1070. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/320000.json +0 -7
  1071. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/330000.json +0 -7
  1072. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/340000.json +0 -7
  1073. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/350000.json +0 -7
  1074. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/360000.json +0 -7
  1075. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/370000.json +0 -7
  1076. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/380000.json +0 -7
  1077. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/390000.json +0 -7
  1078. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/400000.json +0 -7
  1079. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/410000.json +0 -7
  1080. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/420000.json +0 -7
  1081. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/430000.json +0 -7
  1082. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/440000.json +0 -7
  1083. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/450000.json +0 -7
  1084. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/460000.json +0 -7
  1085. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/470000.json +0 -7
  1086. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/480000.json +0 -7
  1087. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/490000.json +0 -7
  1088. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/500000.json +0 -7
  1089. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/510000.json +0 -7
  1090. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/520000.json +0 -7
  1091. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/530000.json +0 -7
  1092. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/540000.json +0 -7
  1093. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/550000.json +0 -7
  1094. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/560000.json +0 -7
  1095. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/570000.json +0 -7
  1096. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/580000.json +0 -7
  1097. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/590000.json +0 -7
  1098. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/600000.json +0 -7
  1099. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/610000.json +0 -7
  1100. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/620000.json +0 -7
  1101. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/630000.json +0 -7
  1102. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/640000.json +0 -7
  1103. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/650000.json +0 -7
  1104. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/660000.json +0 -7
  1105. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/670000.json +0 -7
  1106. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/680000.json +0 -7
  1107. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/690000.json +0 -7
  1108. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/700000.json +0 -7
  1109. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/710000.json +0 -7
  1110. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/720000.json +0 -7
  1111. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/730000.json +0 -7
  1112. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/740000.json +0 -7
  1113. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/750000.json +0 -7
  1114. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/760000.json +0 -7
  1115. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/770000.json +0 -7
  1116. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/780000.json +0 -7
  1117. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/790000.json +0 -7
  1118. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/800000.json +0 -7
  1119. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/810000.json +0 -7
  1120. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/820000.json +0 -7
  1121. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/830000.json +0 -7
  1122. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/840000.json +0 -7
  1123. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/850000.json +0 -7
  1124. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/860000.json +0 -7
  1125. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/870000.json +0 -7
  1126. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/880000.json +0 -7
  1127. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/890000.json +0 -7
  1128. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/900000.json +0 -7
  1129. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/910000.json +0 -7
  1130. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/920000.json +0 -7
  1131. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/930000.json +0 -7
  1132. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/940000.json +0 -7
  1133. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/950000.json +0 -7
  1134. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/960000.json +0 -7
  1135. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/970000.json +0 -7
  1136. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/980000.json +0 -7
  1137. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/990000.json +0 -7
  1138. package/ios/ZCashLightClientKit/Service/LightWalletGRPCService.swift +0 -551
  1139. package/ios/ZCashLightClientKit/Service/LightWalletService.swift +0 -214
  1140. package/ios/ZCashLightClientKit/Service/Model/ZcashCompactBlock.swift +0 -46
  1141. package/ios/ZCashLightClientKit/Service/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +0 -50
  1142. package/ios/ZCashLightClientKit/Service/ProtoBuf/compact_formats.pb.swift +0 -332
  1143. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/compact_formats.proto +0 -56
  1144. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/service.proto +0 -180
  1145. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.grpc.swift +0 -383
  1146. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.pb.swift +0 -1173
  1147. package/ios/ZCashLightClientKit/Transaction/PersistentTransactionManager.swift +0 -339
  1148. package/ios/ZCashLightClientKit/Transaction/TransactionManager.swift +0 -42
  1149. package/ios/ZCashLightClientKit/Utils/Bundle+module.swift +0 -30
@@ -7,923 +7,657 @@
7
7
  //
8
8
 
9
9
  import Foundation
10
+ import Combine
10
11
 
11
- public extension Notification.Name {
12
- /**
13
- Notification is posted whenever transactions are updated
14
-
15
- - Important: not yet posted
16
- */
17
- static let transactionsUpdated = Notification.Name("SDKSyncronizerTransactionUpdated")
18
-
19
- /**
20
- Posted when the synchronizer is started.
21
- */
22
- static let synchronizerStarted = Notification.Name("SDKSyncronizerStarted")
23
-
24
- /**
25
- Posted when there are progress updates.
26
-
27
- - Note: Query userInfo object for NotificationKeys.progress for Float progress percentage and NotificationKeys.blockHeight for the current progress height
28
- */
29
- static let synchronizerProgressUpdated = Notification.Name("SDKSyncronizerProgressUpdated")
30
-
31
- static let synchronizerStatusWillUpdate = Notification.Name("SDKSynchronizerStatusWillUpdate")
32
-
33
- /**
34
- Posted when the synchronizer is synced to latest height
35
- */
36
- static let synchronizerSynced = Notification.Name("SDKSyncronizerSynced")
37
-
38
- /**
39
- Posted when the synchronizer is stopped
40
- */
41
- static let synchronizerStopped = Notification.Name("SDKSyncronizerStopped")
42
-
43
- /**
44
- Posted when the synchronizer loses connection
45
- */
46
- static let synchronizerDisconnected = Notification.Name("SDKSyncronizerDisconnected")
47
-
48
- /**
49
- Posted when the synchronizer starts syncing
50
- */
51
- static let synchronizerSyncing = Notification.Name("SDKSyncronizerSyncing")
52
-
53
- /**
54
- Posted when synchronizer starts downloading blocks
55
- */
56
- static let synchronizerDownloading = Notification.Name("SDKSyncronizerDownloading")
57
-
58
- /**
59
- Posted when synchronizer starts validating blocks
60
- */
61
- static let synchronizerValidating = Notification.Name("SDKSyncronizerValidating")
62
-
63
- /**
64
- Posted when synchronizer starts scanning blocks
65
- */
66
- static let synchronizerScanning = Notification.Name("SDKSyncronizerScanning")
67
-
68
- /**
69
- Posted when the synchronizer starts Enhancing
70
- */
71
- static let synchronizerEnhancing = Notification.Name("SDKSyncronizerEnhancing")
72
-
73
- /**
74
- Posted when the synchronizer starts fetching UTXOs
75
- */
76
- static let synchronizerFetching = Notification.Name("SDKSyncronizerFetching")
77
-
78
- /**
79
- Posted when the synchronizer finds a pendingTransaction that hast been newly mined
80
- - Note: query userInfo on NotificationKeys.minedTransaction for the transaction
81
- */
82
- static let synchronizerMinedTransaction = Notification.Name("synchronizerMinedTransaction")
83
-
84
- /**
85
- Posted when the synchronizer finds a mined transaction
86
- - Note: query userInfo on NotificationKeys.foundTransactions for the [ConfirmedTransactionEntity]. This notification could arrive in a background thread.
87
- */
88
- static let synchronizerFoundTransactions = Notification.Name("synchronizerFoundTransactions")
89
-
90
- /**
91
- Posted when the synchronizer presents an error
92
- - Note: query userInfo on NotificationKeys.error for an error
93
- */
94
- static let synchronizerFailed = Notification.Name("SDKSynchronizerFailed")
95
-
96
- static let synchronizerConnectionStateChanged = Notification.Name("SynchronizerConnectionStateChanged")
97
- }
98
-
99
- /**
100
- Synchronizer implementation for UIKit and iOS 12+
101
- */
12
+ /// Synchronizer implementation for UIKit and iOS 13+
102
13
  // swiftlint:disable type_body_length
103
14
  public class SDKSynchronizer: Synchronizer {
104
- public enum NotificationKeys {
105
- public static let progress = "SDKSynchronizer.progress"
106
- public static let blockHeight = "SDKSynchronizer.blockHeight"
107
- public static let blockDate = "SDKSynchronizer.blockDate"
108
- public static let minedTransaction = "SDKSynchronizer.minedTransaction"
109
- public static let foundTransactions = "SDKSynchronizer.foundTransactions"
110
- public static let error = "SDKSynchronizer.error"
111
- public static let currentStatus = "SDKSynchronizer.currentStatus"
112
- public static let nextStatus = "SDKSynchronizer.nextStatus"
113
- public static let currentConnectionState = "SDKSynchronizer.currentConnectionState"
114
- public static let previousConnectionState = "SDKSynchronizer.previousConnectionState"
115
- }
15
+ public var alias: ZcashSynchronizerAlias { initializer.alias }
16
+
17
+ private lazy var streamsUpdateQueue = { DispatchQueue(label: "streamsUpdateQueue_\(initializer.alias.description)") }()
18
+ private let stateSubject = CurrentValueSubject<SynchronizerState, Never>(.zero)
19
+ public var stateStream: AnyPublisher<SynchronizerState, Never> { stateSubject.eraseToAnyPublisher() }
20
+ public private(set) var latestState: SynchronizerState = .zero
21
+
22
+ private let eventSubject = PassthroughSubject<SynchronizerEvent, Never>()
23
+ public var eventStream: AnyPublisher<SynchronizerEvent, Never> { eventSubject.eraseToAnyPublisher() }
24
+
25
+ public let metrics: SDKMetrics
26
+ public let logger: Logger
116
27
 
117
- public private(set) var status: SyncStatus {
118
- didSet {
119
- notify(status: status)
120
- }
121
- willSet {
122
- notifyStatusChange(newValue: newValue, oldValue: status)
123
- }
28
+ // Don't read this variable directly. Use `status` instead. And don't update this variable directly use `updateStatus()` methods instead.
29
+ private var underlyingStatus: GenericActor<InternalSyncStatus>
30
+ var status: InternalSyncStatus {
31
+ get async { await underlyingStatus.value }
124
32
  }
125
- public private(set) var progress: Float = 0.0
126
- public private(set) var blockProcessor: CompactBlockProcessor
127
- public private(set) var initializer: Initializer
128
- public private(set) var latestScannedHeight: BlockHeight
129
- public private(set) var connectionState: ConnectionState
130
- public private(set) var network: ZcashNetwork
131
- private var transactionManager: OutboundTransactionManager
132
- private var transactionRepository: TransactionRepository
133
- private var utxoRepository: UnspentTransactionOutputRepository
134
-
135
- /**
136
- Creates an SDKSynchronizer instance
137
- - Parameter initializer: a wallet Initializer object
138
- */
139
- public convenience init(initializer: Initializer) throws {
140
- try self.init(
33
+
34
+ let blockProcessor: CompactBlockProcessor
35
+ lazy var blockProcessorEventProcessingQueue = { DispatchQueue(label: "blockProcessorEventProcessingQueue_\(initializer.alias.description)") }()
36
+
37
+ public let initializer: Initializer
38
+ public var connectionState: ConnectionState
39
+ public let network: ZcashNetwork
40
+ private let transactionEncoder: TransactionEncoder
41
+ private let transactionRepository: TransactionRepository
42
+ private let utxoRepository: UnspentTransactionOutputRepository
43
+
44
+ private let syncSessionIDGenerator: SyncSessionIDGenerator
45
+ private let syncSession: SyncSession
46
+ private let syncSessionTicker: SessionTicker
47
+ private var syncStartDate: Date?
48
+ let latestBlocksDataProvider: LatestBlocksDataProvider
49
+
50
+ /// Creates an SDKSynchronizer instance
51
+ /// - Parameter initializer: a wallet Initializer object
52
+ public convenience init(initializer: Initializer) {
53
+ self.init(
141
54
  status: .unprepared,
142
55
  initializer: initializer,
143
- transactionManager: try OutboundTransactionManagerBuilder.build(initializer: initializer),
56
+ transactionEncoder: WalletTransactionEncoder(initializer: initializer),
144
57
  transactionRepository: initializer.transactionRepository,
145
- utxoRepository: try UTXORepositoryBuilder.build(initializer: initializer),
146
- blockProcessor: CompactBlockProcessor(initializer: initializer)
58
+ utxoRepository: UTXORepositoryBuilder.build(initializer: initializer),
59
+ blockProcessor: CompactBlockProcessor(
60
+ initializer: initializer,
61
+ walletBirthdayProvider: { initializer.walletBirthday }
62
+ ),
63
+ syncSessionTicker: .live
147
64
  )
148
65
  }
149
-
66
+
150
67
  init(
151
- status: SyncStatus,
68
+ status: InternalSyncStatus,
152
69
  initializer: Initializer,
153
- transactionManager: OutboundTransactionManager,
70
+ transactionEncoder: TransactionEncoder,
154
71
  transactionRepository: TransactionRepository,
155
72
  utxoRepository: UnspentTransactionOutputRepository,
156
- blockProcessor: CompactBlockProcessor
157
- ) throws {
73
+ blockProcessor: CompactBlockProcessor,
74
+ syncSessionTicker: SessionTicker
75
+ ) {
158
76
  self.connectionState = .idle
159
- self.status = status
77
+ self.underlyingStatus = GenericActor(status)
160
78
  self.initializer = initializer
161
- self.transactionManager = transactionManager
79
+ self.transactionEncoder = transactionEncoder
162
80
  self.transactionRepository = transactionRepository
163
81
  self.utxoRepository = utxoRepository
164
82
  self.blockProcessor = blockProcessor
165
- self.latestScannedHeight = (try? transactionRepository.lastScannedHeight()) ?? initializer.walletBirthday.height
166
83
  self.network = initializer.network
167
- self.subscribeToProcessorNotifications(blockProcessor)
84
+ self.metrics = initializer.container.resolve(SDKMetrics.self)
85
+ self.logger = initializer.logger
86
+ self.syncSessionIDGenerator = initializer.container.resolve(SyncSessionIDGenerator.self)
87
+ self.syncSession = SyncSession(.nullID)
88
+ self.syncSessionTicker = syncSessionTicker
89
+ self.latestBlocksDataProvider = initializer.container.resolve(LatestBlocksDataProvider.self)
90
+
91
+ initializer.lightWalletService.connectionStateChange = { [weak self] oldState, newState in
92
+ self?.connectivityStateChanged(oldState: oldState, newState: newState)
93
+ }
94
+
95
+ Task(priority: .high) { [weak self] in await self?.subscribeToProcessorEvents(blockProcessor) }
168
96
  }
169
-
97
+
170
98
  deinit {
171
- NotificationCenter.default.removeObserver(self)
172
- self.blockProcessor.stop()
173
- }
174
-
175
- public func initialize() throws {
176
- try self.initializer.initialize()
177
- try self.blockProcessor.setStartHeight(initializer.walletBirthday.height)
99
+ UsedAliasesChecker.stopUsing(alias: initializer.alias, id: initializer.id)
100
+ Task { [blockProcessor] in
101
+ await blockProcessor.stop()
102
+ }
178
103
  }
179
-
180
- public func prepare() throws {
181
- try self.initializer.initialize()
182
- try self.blockProcessor.setStartHeight(initializer.walletBirthday.height)
183
- self.status = .disconnected
184
- }
185
-
186
- /**
187
- Starts the synchronizer
188
- - Throws: CompactBlockProcessorError when failures occur
189
- */
190
- public func start(retry: Bool = false) throws {
191
- switch status {
192
- case .unprepared:
193
- throw SynchronizerError.notPrepared
194
-
195
- case .downloading, .validating, .scanning, .enhancing, .fetching:
196
- LoggerProxy.warn("warning: synchronizer started when already started")
197
- return
198
104
 
199
- case .stopped, .synced, .disconnected, .error:
200
- do {
201
- try blockProcessor.start(retry: retry)
202
- } catch {
203
- throw mapError(error)
204
- }
205
- }
105
+ func updateStatus(_ newValue: InternalSyncStatus) async {
106
+ let oldValue = await underlyingStatus.update(newValue)
107
+ await notify(oldStatus: oldValue, newStatus: newValue)
206
108
  }
207
-
208
- /**
209
- Stops the synchronizer
210
- */
211
- public func stop() {
212
- guard status != .stopped, status != .disconnected else {
213
- LoggerProxy.info("attempted to stop when status was: \(status)")
214
- return
109
+
110
+ func throwIfUnprepared() throws {
111
+ if !latestState.internalSyncStatus.isPrepared {
112
+ throw ZcashError.synchronizerNotPrepared
215
113
  }
216
-
217
- blockProcessor.stop(cancelTasks: true)
218
- self.status = .stopped
219
114
  }
220
-
221
- private func subscribeToProcessorNotifications(_ processor: CompactBlockProcessor) {
222
- let center = NotificationCenter.default
223
-
224
- center.addObserver(
225
- self,
226
- selector: #selector(processorUpdated(_:)),
227
- name: Notification.Name.blockProcessorUpdated,
228
- object: processor
229
- )
230
-
231
- center.addObserver(
232
- self,
233
- selector: #selector(processorStartedDownloading(_:)),
234
- name: Notification.Name.blockProcessorStartedDownloading,
235
- object: processor
236
- )
237
-
238
- center.addObserver(
239
- self,
240
- selector: #selector(processorStartedValidating(_:)),
241
- name: Notification.Name.blockProcessorStartedValidating,
242
- object: processor
243
- )
244
-
245
- center.addObserver(
246
- self,
247
- selector: #selector(processorStartedScanning(_:)),
248
- name: Notification.Name.blockProcessorStartedScanning,
249
- object: processor
250
- )
251
-
252
- center.addObserver(
253
- self,
254
- selector: #selector(processorStartedEnhancing(_:)),
255
- name: Notification.Name.blockProcessorStartedEnhancing,
256
- object: processor
257
- )
258
-
259
- center.addObserver(
260
- self,
261
- selector: #selector(processorStartedFetching(_:)),
262
- name: Notification.Name.blockProcessorStartedFetching,
263
- object: processor
264
- )
265
-
266
- center.addObserver(
267
- self,
268
- selector: #selector(processorStopped(_:)),
269
- name: Notification.Name.blockProcessorStopped,
270
- object: processor
271
- )
272
-
273
- center.addObserver(
274
- self,
275
- selector: #selector(processorFailed(_:)),
276
- name: Notification.Name.blockProcessorFailed,
277
- object: processor
278
- )
279
-
280
- center.addObserver(
281
- self,
282
- selector: #selector(processorIdle(_:)),
283
- name: Notification.Name.blockProcessorIdle,
284
- object: processor
285
- )
286
-
287
- center.addObserver(
288
- self,
289
- selector: #selector(processorFinished(_:)),
290
- name: Notification.Name.blockProcessorFinished,
291
- object: processor
292
- )
293
-
294
- center.addObserver(
295
- self,
296
- selector: #selector(processorTransitionUnknown(_:)),
297
- name: Notification.Name.blockProcessorUnknownTransition,
298
- object: processor
299
- )
300
-
301
- center.addObserver(
302
- self,
303
- selector: #selector(reorgDetected(_:)),
304
- name: Notification.Name.blockProcessorHandledReOrg,
305
- object: processor
306
- )
307
-
308
- center.addObserver(
309
- self,
310
- selector: #selector(transactionsFound(_:)),
311
- name: Notification.Name.blockProcessorFoundTransactions,
312
- object: processor
313
- )
314
-
315
- center.addObserver(
316
- self,
317
- selector: #selector(connectivityStateChanged(_:)),
318
- name: Notification.Name.blockProcessorConnectivityStateChanged,
319
- object: nil
320
- )
321
- }
322
-
323
- // MARK: Block Processor notifications
324
-
325
- @objc func connectivityStateChanged(_ notification: Notification) {
326
- guard
327
- let userInfo = notification.userInfo,
328
- let previous = userInfo[CompactBlockProcessorNotificationKey.previousConnectivityStatus] as? ConnectivityState,
329
- let current = userInfo[CompactBlockProcessorNotificationKey.currentConnectivityStatus] as? ConnectivityState
330
- else {
331
- LoggerProxy.error(
332
- "Found \(Notification.Name.blockProcessorConnectivityStateChanged) but lacks dictionary information." +
333
- "This is probably a programming error"
334
- )
335
- return
115
+
116
+ func checkIfCanContinueInitialisation() -> ZcashError? {
117
+ if let initialisationError = initializer.urlsParsingError {
118
+ return initialisationError
336
119
  }
337
120
 
338
- let currentState = ConnectionState(current)
339
- NotificationCenter.default.post(
340
- name: .synchronizerConnectionStateChanged,
341
- object: self,
342
- userInfo: [
343
- NotificationKeys.previousConnectionState: ConnectionState(previous),
344
- NotificationKeys.currentConnectionState: currentState
345
- ]
346
- )
347
-
348
- DispatchQueue.main.async { [weak self] in
349
- self?.connectionState = currentState
121
+ if !UsedAliasesChecker.tryToUse(alias: initializer.alias, id: initializer.id) {
122
+ return .initializerAliasAlreadyInUse(initializer.alias)
350
123
  }
124
+
125
+ return nil
351
126
  }
352
-
353
- @objc func transactionsFound(_ notification: Notification) {
354
- guard
355
- let userInfo = notification.userInfo,
356
- let foundTransactions = userInfo[CompactBlockProcessorNotificationKey.foundTransactions] as? [ConfirmedTransactionEntity]
357
- else {
358
- return
127
+
128
+ public func prepare(
129
+ with seed: [UInt8]?,
130
+ viewingKeys: [UnifiedFullViewingKey],
131
+ walletBirthday: BlockHeight
132
+ ) async throws -> Initializer.InitializationResult {
133
+ guard await status == .unprepared else { return .success }
134
+
135
+ if let error = checkIfCanContinueInitialisation() {
136
+ throw error
359
137
  }
360
138
 
361
- NotificationCenter.default.post(
362
- name: .synchronizerFoundTransactions,
363
- object: self,
364
- userInfo: [
365
- NotificationKeys.foundTransactions: foundTransactions
366
- ]
367
- )
368
- }
369
-
370
- @objc func reorgDetected(_ notification: Notification) {
371
- guard
372
- let userInfo = notification.userInfo,
373
- let progress = userInfo[CompactBlockProcessorNotificationKey.reorgHeight] as? BlockHeight,
374
- let rewindHeight = userInfo[CompactBlockProcessorNotificationKey.rewindHeight] as? BlockHeight
375
- else {
376
- LoggerProxy.debug("error processing reorg notification")
377
- return
139
+ try await utxoRepository.initialise()
140
+
141
+ if case .seedRequired = try await self.initializer.initialize(with: seed, viewingKeys: viewingKeys, walletBirthday: walletBirthday) {
142
+ return .seedRequired
378
143
  }
144
+
145
+ await latestBlocksDataProvider.updateWalletBirthday(initializer.walletBirthday)
146
+ await latestBlocksDataProvider.updateScannedData()
379
147
 
380
- LoggerProxy.debug("handling reorg at: \(progress) with rewind height: \(rewindHeight)")
148
+ await updateStatus(.disconnected)
381
149
 
382
- do {
383
- try transactionManager.handleReorg(at: rewindHeight)
384
- } catch {
385
- LoggerProxy.debug("error handling reorg: \(error)")
386
- notifyFailure(error)
387
- }
150
+ return .success
388
151
  }
389
-
390
- @objc func processorUpdated(_ notification: Notification) {
391
- guard
392
- let userInfo = notification.userInfo,
393
- let progress = userInfo[CompactBlockProcessorNotificationKey.progress] as? CompactBlockProgress
394
- else {
395
- return
152
+
153
+ /// Starts the synchronizer
154
+ /// - Throws: ZcashError when failures occur
155
+ public func start(retry: Bool = false) async throws {
156
+ switch await status {
157
+ case .unprepared:
158
+ throw ZcashError.synchronizerNotPrepared
159
+
160
+ case .syncing, .enhancing, .fetching:
161
+ logger.warn("warning: Synchronizer started when already running. Next sync process will be started when the current one stops.")
162
+ /// This may look strange but `CompactBlockProcessor` has mechanisms which can handle this situation. So we are fine with calling
163
+ /// it's start here.
164
+ await blockProcessor.start(retry: retry)
165
+
166
+ case .stopped, .synced, .disconnected, .error:
167
+ await updateStatus(.syncing(.nullProgress))
168
+ syncStartDate = Date()
169
+ await blockProcessor.start(retry: retry)
396
170
  }
397
-
398
- self.notify(progress: progress)
399
171
  }
400
-
401
- @objc func processorStartedDownloading(_ notification: Notification) {
402
- DispatchQueue.main.async { [weak self] in
403
- guard let self = self, self.status != .downloading(.nullProgress) else { return }
404
- self.status = .downloading(.nullProgress)
172
+
173
+ /// Stops the synchronizer
174
+ public func stop() {
175
+ // Calling `await blockProcessor.stop()` make take some time. If the downloading of blocks is in progress then this method inside waits until
176
+ // downloading is really done. Which could block execution of the code on the client side. So it's better strategy to spin up new task and
177
+ // exit fast on client side.
178
+ Task(priority: .high) {
179
+ let status = await self.status
180
+ guard status != .stopped, status != .disconnected else {
181
+ logger.info("attempted to stop when status was: \(status)")
182
+ return
183
+ }
184
+
185
+ await blockProcessor.stop()
405
186
  }
406
187
  }
407
-
408
- @objc func processorStartedValidating(_ notification: Notification) {
409
- DispatchQueue.main.async { [weak self] in
410
- guard let self = self, self.status != .validating else { return }
411
- self.status = .validating
188
+
189
+ // MARK: Connectivity State
190
+
191
+ func connectivityStateChanged(oldState: ConnectionState, newState: ConnectionState) {
192
+ connectionState = newState
193
+ streamsUpdateQueue.async { [weak self] in
194
+ self?.eventSubject.send(.connectionStateChanged(newState))
412
195
  }
413
196
  }
414
-
415
- @objc func processorStartedScanning(_ notification: Notification) {
416
- DispatchQueue.main.async { [weak self] in
417
- guard let self = self, self.status != .scanning(.nullProgress) else { return }
418
- self.status = .scanning(.nullProgress)
197
+
198
+ // MARK: Handle CompactBlockProcessor.Flow
199
+
200
+ // swiftlint:disable:next cyclomatic_complexity
201
+ private func subscribeToProcessorEvents(_ processor: CompactBlockProcessor) async {
202
+ let eventClosure: CompactBlockProcessor.EventClosure = { [weak self] event in
203
+ switch event {
204
+ case let .failed(error):
205
+ await self?.failed(error: error)
206
+
207
+ case let .finished(height, foundBlocks):
208
+ await self?.finished(lastScannedHeight: height, foundBlocks: foundBlocks)
209
+
210
+ case let .foundTransactions(transactions, range):
211
+ self?.foundTransactions(transactions: transactions, in: range)
212
+
213
+ case let .handledReorg(reorgHeight, rewindHeight):
214
+ // log reorg information
215
+ self?.logger.info("handling reorg at: \(reorgHeight) with rewind height: \(rewindHeight)")
216
+
217
+ case let .progressUpdated(progress):
218
+ await self?.progressUpdated(progress: progress)
219
+
220
+ case let .storedUTXOs(utxos):
221
+ self?.storedUTXOs(utxos: utxos)
222
+
223
+ case .startedEnhancing:
224
+ await self?.updateStatus(.enhancing(.zero))
225
+
226
+ case .startedFetching:
227
+ await self?.updateStatus(.fetching(0))
228
+
229
+ case .startedSyncing:
230
+ await self?.updateStatus(.syncing(.nullProgress))
231
+
232
+ case .stopped:
233
+ await self?.updateStatus(.stopped)
234
+
235
+ case .minedTransaction(let transaction):
236
+ self?.notifyMinedTransaction(transaction)
237
+ }
419
238
  }
239
+
240
+ await processor.updateEventClosure(identifier: "SDKSynchronizer", closure: eventClosure)
420
241
  }
421
- @objc func processorStartedEnhancing(_ notification: Notification) {
422
- DispatchQueue.main.async { [weak self] in
423
- guard let self = self, self.status != .enhancing(NullEnhancementProgress()) else { return }
424
- self.status = .enhancing(NullEnhancementProgress())
425
- }
242
+
243
+ private func failed(error: Error) async {
244
+ await updateStatus(.error(error))
426
245
  }
427
-
428
- @objc func processorStartedFetching(_ notification: Notification) {
429
- DispatchQueue.main.async { [weak self] in
430
- guard let self = self, self.status != .fetching else { return }
431
- self.status = .fetching
246
+
247
+ private func finished(lastScannedHeight: BlockHeight, foundBlocks: Bool) async {
248
+ await latestBlocksDataProvider.updateScannedData()
249
+
250
+ await updateStatus(.synced)
251
+
252
+ if let syncStartDate {
253
+ metrics.pushSyncReport(
254
+ start: syncStartDate,
255
+ end: Date()
256
+ )
432
257
  }
433
258
  }
434
-
435
- @objc func processorStopped(_ notification: Notification) {
436
- DispatchQueue.main.async { [weak self] in
437
- guard let self = self, self.status != .stopped else { return }
438
- self.status = .stopped
259
+
260
+ private func foundTransactions(transactions: [ZcashTransaction.Overview], in range: CompactBlockRange) {
261
+ streamsUpdateQueue.async { [weak self] in
262
+ self?.eventSubject.send(.foundTransactions(transactions, range))
439
263
  }
440
264
  }
441
-
442
- @objc func processorFailed(_ notification: Notification) {
443
- DispatchQueue.main.async { [weak self] in
444
- guard let self = self else { return }
445
- if let error = notification.userInfo?[CompactBlockProcessorNotificationKey.error] as? Error {
446
- self.notifyFailure(error)
447
- self.status = .error(self.mapError(error))
448
- } else {
449
- self.notifyFailure(
450
- CompactBlockProcessorError.generalError(
451
- message: "This is strange. processorFailed Call received no error message"
452
- )
453
- )
454
- self.status = .error(SynchronizerError.generalError(message: "This is strange. processorFailed Call received no error message"))
455
- }
456
- }
265
+
266
+ private func progressUpdated(progress: CompactBlockProgress) async {
267
+ let newStatus = InternalSyncStatus(progress)
268
+ await updateStatus(newStatus)
457
269
  }
458
-
459
- @objc func processorIdle(_ notification: Notification) {
460
- DispatchQueue.main.async { [weak self] in
461
- guard let self = self else { return }
462
- self.status = .disconnected
270
+
271
+ private func storedUTXOs(utxos: (inserted: [UnspentTransactionOutputEntity], skipped: [UnspentTransactionOutputEntity])) {
272
+ streamsUpdateQueue.async { [weak self] in
273
+ self?.eventSubject.send(.storedUTXOs(utxos.inserted, utxos.skipped))
463
274
  }
464
275
  }
465
-
466
- @objc func processorFinished(_ notification: Notification) {
467
- // FIX: Pending transaction updates fail if done from another thread. Improvement needed: explicitly define queues for sql repositories
468
-
469
- DispatchQueue.main.async { [weak self] in
470
- guard let self = self else { return }
471
- if let blockHeight = notification.userInfo?[CompactBlockProcessorNotificationKey.latestScannedBlockHeight] as? BlockHeight {
472
- self.latestScannedHeight = blockHeight
473
- }
474
- self.refreshPendingTransactions()
475
- self.status = .synced
476
- }
477
- }
478
-
479
- @objc func processorTransitionUnknown(_ notification: Notification) {
480
- self.status = .disconnected
481
- }
482
-
276
+
483
277
  // MARK: Synchronizer methods
484
278
 
485
- // swiftlint:disable:next function_parameter_count
486
279
  public func sendToAddress(
487
- spendingKey: String,
488
- zatoshi: Int64,
489
- toAddress: String,
490
- memo: String?,
491
- from accountIndex: Int,
492
- resultBlock: @escaping (Result<PendingTransactionEntity, Error>) -> Void
493
- ) {
494
- initializer.downloadParametersIfNeeded { downloadResult in
495
- DispatchQueue.main.async { [weak self] in
496
- switch downloadResult {
497
- case .success:
498
- self?.createToAddress(
499
- spendingKey: spendingKey,
500
- zatoshi: zatoshi,
501
- toAddress: toAddress,
502
- memo: memo,
503
- from: accountIndex,
504
- resultBlock: resultBlock
505
- )
506
- case .failure(let error):
507
- resultBlock(.failure(SynchronizerError.parameterMissing(underlyingError: error)))
508
- }
509
- }
280
+ spendingKey: UnifiedSpendingKey,
281
+ zatoshi: Zatoshi,
282
+ toAddress: Recipient,
283
+ memo: Memo?
284
+ ) async throws -> ZcashTransaction.Overview {
285
+ try throwIfUnprepared()
286
+
287
+ if case Recipient.transparent = toAddress, memo != nil {
288
+ throw ZcashError.synchronizerSendMemoToTransparentAddress
510
289
  }
290
+
291
+ try await SaplingParameterDownloader.downloadParamsIfnotPresent(
292
+ spendURL: initializer.spendParamsURL,
293
+ spendSourceURL: initializer.saplingParamsSourceURL.spendParamFileURL,
294
+ outputURL: initializer.outputParamsURL,
295
+ outputSourceURL: initializer.saplingParamsSourceURL.outputParamFileURL,
296
+ logger: logger
297
+ )
298
+
299
+ return try await createToAddress(
300
+ spendingKey: spendingKey,
301
+ zatoshi: zatoshi,
302
+ recipient: toAddress,
303
+ memo: memo
304
+ )
511
305
  }
512
-
306
+
513
307
  public func shieldFunds(
514
- spendingKey: String,
515
- transparentSecretKey: String,
516
- memo: String?,
517
- from accountIndex: Int,
518
- resultBlock: @escaping (Result<PendingTransactionEntity, Error>) -> Void
519
- ) {
308
+ spendingKey: UnifiedSpendingKey,
309
+ memo: Memo,
310
+ shieldingThreshold: Zatoshi
311
+ ) async throws -> ZcashTransaction.Overview {
312
+ try throwIfUnprepared()
313
+
520
314
  // let's see if there are funds to shield
521
- let derivationTool = DerivationTool(networkType: self.network.networkType)
522
-
523
- do {
524
- let tAddr = try derivationTool.deriveTransparentAddressFromPrivateKey(transparentSecretKey)
525
- let tBalance = try utxoRepository.balance(address: tAddr, latestHeight: self.latestDownloadedHeight())
526
-
527
- // Verify that at least there are funds for the fee. Ideally this logic will be improved by the shielding wallet.
528
- guard tBalance.verified >= self.network.constants.defaultFee(for: self.latestScannedHeight) else {
529
- resultBlock(.failure(ShieldFundsError.insuficientTransparentFunds))
530
- return
531
- }
532
- let viewingKey = try derivationTool.deriveViewingKey(spendingKey: spendingKey)
533
- let zAddr = try derivationTool.deriveShieldedAddress(viewingKey: viewingKey)
534
-
535
- let shieldingSpend = try transactionManager.initSpend(zatoshi: Int(tBalance.verified), toAddress: zAddr, memo: memo, from: 0)
536
-
537
- transactionManager.encodeShieldingTransaction(
538
- spendingKey: spendingKey,
539
- tsk: transparentSecretKey,
540
- pendingTransaction: shieldingSpend
541
- ) { [weak self] result in
542
- guard let self = self else { return }
543
-
544
- switch result {
545
- case .success(let transaction):
546
- self.transactionManager.submit(pendingTransaction: transaction) { submitResult in
547
- switch submitResult {
548
- case .success(let submittedTx):
549
- resultBlock(.success(submittedTx))
550
- case .failure(let submissionError):
551
- DispatchQueue.main.async {
552
- resultBlock(.failure(submissionError))
553
- }
554
- }
555
- }
556
-
557
- case .failure(let error):
558
- resultBlock(.failure(error))
559
- }
560
- }
561
- } catch {
562
- resultBlock(.failure(error))
563
- return
315
+ let accountIndex = Int(spendingKey.account)
316
+ let tBalance = try await self.getTransparentBalance(accountIndex: accountIndex)
317
+
318
+ // Verify that at least there are funds for the fee. Ideally this logic will be improved by the shielding wallet.
319
+ guard tBalance.verified >= self.network.constants.defaultFee(for: await self.latestBlocksDataProvider.latestScannedHeight) else {
320
+ throw ZcashError.synchronizerShieldFundsInsuficientTransparentFunds
564
321
  }
322
+
323
+ let transaction = try await transactionEncoder.createShieldingTransaction(
324
+ spendingKey: spendingKey,
325
+ shieldingThreshold: shieldingThreshold,
326
+ memoBytes: memo.asMemoBytes(),
327
+ from: Int(spendingKey.account)
328
+ )
329
+
330
+ let encodedTx = try transaction.encodedTransaction()
331
+
332
+ try await transactionEncoder.submit(transaction: encodedTx)
333
+
334
+ return transaction
565
335
  }
566
336
 
567
- // swiftlint:disable:next function_parameter_count
568
337
  func createToAddress(
569
- spendingKey: String,
570
- zatoshi: Int64,
571
- toAddress: String,
572
- memo: String?,
573
- from accountIndex: Int,
574
- resultBlock: @escaping (Result<PendingTransactionEntity, Error>) -> Void
575
- ) {
338
+ spendingKey: UnifiedSpendingKey,
339
+ zatoshi: Zatoshi,
340
+ recipient: Recipient,
341
+ memo: Memo?
342
+ ) async throws -> ZcashTransaction.Overview {
576
343
  do {
577
- let spend = try transactionManager.initSpend(
578
- zatoshi: Int(zatoshi),
579
- toAddress: toAddress,
580
- memo: memo,
581
- from: accountIndex
344
+ if
345
+ case .transparent = recipient,
346
+ memo != nil {
347
+ throw ZcashError.synchronizerSendMemoToTransparentAddress
348
+ }
349
+
350
+ let transaction = try await transactionEncoder.createTransaction(
351
+ spendingKey: spendingKey,
352
+ zatoshi: zatoshi,
353
+ to: recipient.stringEncoded,
354
+ memoBytes: memo?.asMemoBytes(),
355
+ from: Int(spendingKey.account)
582
356
  )
357
+
358
+ let encodedTransaction = try transaction.encodedTransaction()
359
+
360
+ try await transactionEncoder.submit(transaction: encodedTransaction)
583
361
 
584
- transactionManager.encode(spendingKey: spendingKey, pendingTransaction: spend) { [weak self] result in
585
- guard let self = self else { return }
586
- switch result {
587
- case .success(let transaction):
588
- self.transactionManager.submit(pendingTransaction: transaction) { submitResult in
589
- switch submitResult {
590
- case .success(let submittedTx):
591
- resultBlock(.success(submittedTx))
592
- case .failure(let submissionError):
593
- DispatchQueue.main.async {
594
- resultBlock(.failure(submissionError))
595
- }
596
- }
597
- }
598
-
599
- case .failure(let error):
600
- resultBlock(.failure(error))
601
- }
602
- }
362
+ return transaction
603
363
  } catch {
604
- resultBlock(.failure(error))
364
+ throw error
605
365
  }
606
366
  }
607
-
608
- public func cancelSpend(transaction: PendingTransactionEntity) -> Bool {
609
- transactionManager.cancel(pendingTransaction: transaction)
610
- }
611
-
612
- public func allReceivedTransactions() throws -> [ConfirmedTransactionEntity] {
613
- try transactionRepository.findAllReceivedTransactions(offset: 0, limit: Int.max) ?? [ConfirmedTransactionEntity]()
367
+
368
+ public func allReceivedTransactions() async throws -> [ZcashTransaction.Overview] {
369
+ try await transactionRepository.findReceived(offset: 0, limit: Int.max)
614
370
  }
615
-
616
- public func allPendingTransactions() throws -> [PendingTransactionEntity] {
617
- try transactionManager.allPendingTransactions() ?? [PendingTransactionEntity]()
371
+
372
+ public func allPendingTransactions() async throws -> [ZcashTransaction.Overview] {
373
+ let latestScannedHeight = self.latestState.latestScannedHeight
374
+
375
+ return try await transactionRepository.findPendingTransactions(latestHeight: latestScannedHeight, offset: 0, limit: .max)
618
376
  }
619
-
620
- public func allClearedTransactions() throws -> [ConfirmedTransactionEntity] {
621
- try transactionRepository.findAll(offset: 0, limit: Int.max) ?? [ConfirmedTransactionEntity]()
377
+
378
+ public func allTransactions() async throws -> [ZcashTransaction.Overview] {
379
+ return try await transactionRepository.find(offset: 0, limit: Int.max, kind: .all)
622
380
  }
623
-
624
- public func allSentTransactions() throws -> [ConfirmedTransactionEntity] {
625
- try transactionRepository.findAllSentTransactions(offset: 0, limit: Int.max) ?? [ConfirmedTransactionEntity]()
381
+
382
+ public func allSentTransactions() async throws -> [ZcashTransaction.Overview] {
383
+ return try await transactionRepository.findSent(offset: 0, limit: Int.max)
626
384
  }
627
-
628
- public func allConfirmedTransactions(from transaction: ConfirmedTransactionEntity?, limit: Int) throws -> [ConfirmedTransactionEntity]? {
629
- try transactionRepository.findAll(from: transaction, limit: limit)
385
+
386
+ public func allTransactions(from transaction: ZcashTransaction.Overview, limit: Int) async throws -> [ZcashTransaction.Overview] {
387
+ return try await transactionRepository.find(from: transaction, limit: limit, kind: .all)
630
388
  }
631
-
389
+
632
390
  public func paginatedTransactions(of kind: TransactionKind = .all) -> PaginatedTransactionRepository {
633
391
  PagedTransactionRepositoryBuilder.build(initializer: initializer, kind: .all)
634
392
  }
635
-
636
- public func latestDownloadedHeight() throws -> BlockHeight {
637
- try initializer.downloader.lastDownloadedBlockHeight()
393
+
394
+ public func getMemos(for transaction: ZcashTransaction.Overview) async throws -> [Memo] {
395
+ return try await transactionRepository.findMemos(for: transaction)
638
396
  }
639
-
640
- public func latestHeight(result: @escaping (Result<BlockHeight, Error>) -> Void) {
641
- initializer.downloader.latestBlockHeight(result: result)
397
+
398
+ public func getRecipients(for transaction: ZcashTransaction.Overview) async -> [TransactionRecipient] {
399
+ return (try? await transactionRepository.getRecipients(for: transaction.id)) ?? []
642
400
  }
643
-
644
- public func latestHeight() throws -> BlockHeight {
645
- try initializer.downloader.latestBlockHeight()
401
+
402
+ public func getTransactionOutputs(for transaction: ZcashTransaction.Overview) async -> [ZcashTransaction.Output] {
403
+ return (try? await transactionRepository.getTransactionOutputs(for: transaction.id)) ?? []
646
404
  }
647
-
648
- public func latestUTXOs(address: String, result: @escaping (Result<[UnspentTransactionOutputEntity], Error>) -> Void) {
405
+
406
+ public func latestHeight() async throws -> BlockHeight {
407
+ try await blockProcessor.blockDownloaderService.latestBlockHeight()
408
+ }
409
+
410
+ public func latestUTXOs(address: String) async throws -> [UnspentTransactionOutputEntity] {
411
+ try throwIfUnprepared()
412
+
649
413
  guard initializer.isValidTransparentAddress(address) else {
650
- result(.failure(SynchronizerError.generalError(message: "invalid t-address")))
651
- return
414
+ throw ZcashError.synchronizerLatestUTXOsInvalidTAddress
652
415
  }
653
416
 
654
- initializer.lightWalletService.fetchUTXOs(for: address, height: network.constants.saplingActivationHeight) { [weak self] fetchResult in
655
- guard let self = self else { return }
656
- switch fetchResult {
657
- case .success(let utxos):
658
- do {
659
- try self.utxoRepository.clearAll(address: address)
660
- try self.utxoRepository.store(utxos: utxos)
661
- result(.success(utxos))
662
- } catch {
663
- result(.failure(SynchronizerError.generalError(message: "\(error)")))
664
- }
665
- case .failure(let error):
666
- result(.failure(SynchronizerError.connectionFailed(message: error)))
667
- }
417
+ let stream = initializer.lightWalletService.fetchUTXOs(for: address, height: network.constants.saplingActivationHeight)
418
+
419
+ // swiftlint:disable:next array_constructor
420
+ var utxos: [UnspentTransactionOutputEntity] = []
421
+ for try await transactionEntity in stream {
422
+ utxos.append(transactionEntity)
668
423
  }
424
+ try await self.utxoRepository.clearAll(address: address)
425
+ try await self.utxoRepository.store(utxos: utxos)
426
+ return utxos
669
427
  }
670
-
671
- public func refreshUTXOs(address: String, from height: BlockHeight, result: @escaping (Result<RefreshedUTXOs, Error>) -> Void) {
672
- self.blockProcessor.refreshUTXOs(tAddress: address, startHeight: height, result: result)
428
+
429
+ public func refreshUTXOs(address: TransparentAddress, from height: BlockHeight) async throws -> RefreshedUTXOs {
430
+ try throwIfUnprepared()
431
+ return try await blockProcessor.refreshUTXOs(tAddress: address, startHeight: height)
673
432
  }
674
-
675
- public func getShieldedBalance(accountIndex: Int = 0) -> Int64 {
676
- initializer.getBalance(account: accountIndex)
433
+
434
+ public func getShieldedBalance(accountIndex: Int = 0) async throws -> Zatoshi {
435
+ let balance = try await initializer.rustBackend.getBalance(account: Int32(accountIndex))
436
+
437
+ return Zatoshi(balance)
677
438
  }
678
-
679
- public func getShieldedVerifiedBalance(accountIndex: Int = 0) -> Int64 {
680
- initializer.getVerifiedBalance(account: accountIndex)
439
+
440
+ public func getShieldedVerifiedBalance(accountIndex: Int = 0) async throws -> Zatoshi {
441
+ let balance = try await initializer.rustBackend.getVerifiedBalance(account: Int32(accountIndex))
442
+
443
+ return Zatoshi(balance)
681
444
  }
682
-
683
- public func getShieldedAddress(accountIndex: Int) -> SaplingShieldedAddress? {
684
- blockProcessor.getShieldedAddress(accountIndex: accountIndex)
445
+
446
+ public func getUnifiedAddress(accountIndex: Int) async throws -> UnifiedAddress {
447
+ try await blockProcessor.getUnifiedAddress(accountIndex: accountIndex)
685
448
  }
686
-
687
- public func getUnifiedAddress(accountIndex: Int) -> UnifiedAddress? {
688
- blockProcessor.getUnifiedAddres(accountIndex: accountIndex)
449
+
450
+ public func getSaplingAddress(accountIndex: Int) async throws -> SaplingAddress {
451
+ try await blockProcessor.getSaplingAddress(accountIndex: accountIndex)
689
452
  }
690
-
691
- public func getTransparentAddress(accountIndex: Int) -> TransparentAddress? {
692
- blockProcessor.getTransparentAddress(accountIndex: accountIndex)
453
+
454
+ public func getTransparentAddress(accountIndex: Int) async throws -> TransparentAddress {
455
+ try await blockProcessor.getTransparentAddress(accountIndex: accountIndex)
693
456
  }
694
-
695
- public func getTransparentBalance(accountIndex: Int) throws -> WalletBalance {
696
- try blockProcessor.getTransparentBalance(accountIndex: accountIndex)
457
+
458
+ /// Returns the last stored transparent balance
459
+ public func getTransparentBalance(accountIndex: Int) async throws -> WalletBalance {
460
+ try await blockProcessor.getTransparentBalance(accountIndex: accountIndex)
697
461
  }
698
-
699
- /**
700
- Returns the last stored unshielded balance
701
- */
702
- public func getTransparentBalance(address: String) throws -> WalletBalance {
703
- do {
704
- return try self.blockProcessor.utxoCacheBalance(tAddress: address)
705
- } catch {
706
- throw SynchronizerError.uncategorized(underlyingError: error)
462
+
463
+ // MARK: Rewind
464
+
465
+ public func rewind(_ policy: RewindPolicy) -> AnyPublisher<Void, Error> {
466
+ let subject = PassthroughSubject<Void, Error>()
467
+ Task(priority: .high) {
468
+ if !latestState.internalSyncStatus.isPrepared {
469
+ subject.send(completion: .failure(ZcashError.synchronizerNotPrepared))
470
+ return
471
+ }
472
+
473
+ let height: BlockHeight?
474
+
475
+ switch policy {
476
+ case .quick:
477
+ height = nil
478
+
479
+ case .birthday:
480
+ let birthday = await self.blockProcessor.config.walletBirthday
481
+ height = birthday
482
+
483
+ case .height(let rewindHeight):
484
+ height = rewindHeight
485
+
486
+ case .transaction(let transaction):
487
+ guard let txHeight = transaction.anchor(network: self.network) else {
488
+ throw ZcashError.synchronizerRewindUnknownArchorHeight
489
+ }
490
+ height = txHeight
491
+ }
492
+
493
+ let context = AfterSyncHooksManager.RewindContext(
494
+ height: height,
495
+ completion: { result in
496
+ switch result {
497
+ case .success:
498
+ subject.send(completion: .finished)
499
+
500
+ case let .failure(error):
501
+ subject.send(completion: .failure(error))
502
+ }
503
+ }
504
+ )
505
+
506
+ await blockProcessor.rewind(context: context)
707
507
  }
508
+ return subject.eraseToAnyPublisher()
708
509
  }
709
-
710
- public func rewind(_ policy: RewindPolicy) throws {
711
- self.stop()
712
-
713
- var height: BlockHeight?
714
-
715
- switch policy {
716
- case .quick:
717
- break
718
510
 
719
- case .birthday:
720
- let birthday = self.blockProcessor.config.walletBirthday
721
- height = birthday
722
-
723
- case .height(let rewindHeight):
724
- height = rewindHeight
725
-
726
- case .transaction(let transaction):
727
- guard let txHeight = transaction.anchor(network: self.network) else {
728
- throw SynchronizerError.rewindErrorUnknownArchorHeight
511
+ // MARK: Wipe
512
+
513
+ public func wipe() -> AnyPublisher<Void, Error> {
514
+ let subject = PassthroughSubject<Void, Error>()
515
+ Task(priority: .high) {
516
+ if let error = checkIfCanContinueInitialisation() {
517
+ subject.send(completion: .failure(error))
518
+ return
729
519
  }
730
- height = txHeight
731
- }
732
-
733
- do {
734
- let rewindHeight = try self.blockProcessor.rewindTo(height)
735
- try self.transactionManager.handleReorg(at: rewindHeight)
736
- } catch {
737
- throw SynchronizerError.rewindError(underlyingError: error)
520
+
521
+ let context = AfterSyncHooksManager.WipeContext(
522
+ prewipe: { [weak self] in
523
+ self?.transactionEncoder.closeDBConnection()
524
+ self?.transactionRepository.closeDBConnection()
525
+ },
526
+ completion: { [weak self] possibleError in
527
+ await self?.updateStatus(.unprepared)
528
+ if let error = possibleError {
529
+ subject.send(completion: .failure(error))
530
+ } else {
531
+ subject.send(completion: .finished)
532
+ }
533
+ }
534
+ )
535
+
536
+ await blockProcessor.wipe(context: context)
738
537
  }
538
+
539
+ return subject.eraseToAnyPublisher()
739
540
  }
740
-
541
+
741
542
  // MARK: notify state
742
- private func notify(progress: CompactBlockProgress) {
743
- var userInfo: [AnyHashable: Any] = .init()
744
- userInfo[NotificationKeys.progress] = progress
745
- userInfo[NotificationKeys.blockHeight] = progress.progressHeight
746
543
 
747
- self.status = SyncStatus(progress)
748
- NotificationCenter.default.post(name: Notification.Name.synchronizerProgressUpdated, object: self, userInfo: userInfo)
749
- }
750
-
751
- private func notifyStatusChange(newValue: SyncStatus, oldValue: SyncStatus) {
752
- NotificationCenter.default.post(
753
- name: .synchronizerStatusWillUpdate,
754
- object: self,
755
- userInfo:
756
- [
757
- NotificationKeys.currentStatus: oldValue,
758
- NotificationKeys.nextStatus: newValue
759
- ]
544
+ private func snapshotState(status: InternalSyncStatus) async -> SynchronizerState {
545
+ return await SynchronizerState(
546
+ syncSessionID: syncSession.value,
547
+ shieldedBalance: WalletBalance(
548
+ verified: (try? await getShieldedVerifiedBalance()) ?? .zero,
549
+ total: (try? await getShieldedBalance()) ?? .zero
550
+ ),
551
+ transparentBalance: (try? await blockProcessor.getTransparentBalance(accountIndex: 0)) ?? .zero,
552
+ internalSyncStatus: status,
553
+ latestScannedHeight: latestBlocksDataProvider.latestScannedHeight,
554
+ latestBlockHeight: latestBlocksDataProvider.latestBlockHeight,
555
+ latestScannedTime: latestBlocksDataProvider.latestScannedTime
760
556
  )
761
557
  }
762
-
763
- private func notify(status: SyncStatus) {
764
- switch status {
765
- case .disconnected:
766
- NotificationCenter.default.post(name: Notification.Name.synchronizerDisconnected, object: self)
767
- case .stopped:
768
- NotificationCenter.default.post(name: Notification.Name.synchronizerStopped, object: self)
769
- case .synced:
770
- NotificationCenter.default.post(
771
- name: Notification.Name.synchronizerSynced,
772
- object: self,
773
- userInfo: [
774
- SDKSynchronizer.NotificationKeys.blockHeight: self.latestScannedHeight
775
- ]
776
- )
777
- case .unprepared:
778
- break
779
- case .downloading:
780
- NotificationCenter.default.post(name: Notification.Name.synchronizerDownloading, object: self)
781
- case .validating:
782
- NotificationCenter.default.post(name: Notification.Name.synchronizerValidating, object: self)
783
- case .scanning:
784
- NotificationCenter.default.post(name: Notification.Name.synchronizerScanning, object: self)
785
- case .enhancing:
786
- NotificationCenter.default.post(name: Notification.Name.synchronizerEnhancing, object: self)
787
- case .fetching:
788
- NotificationCenter.default.post(name: Notification.Name.synchronizerFetching, object: self)
789
- case .error(let e):
790
- self.notifyFailure(e)
791
- }
792
- }
793
- // MARK: book keeping
794
-
795
- private func updateMinedTransactions() throws {
796
- try transactionManager.allPendingTransactions()?
797
- .filter { $0.isSubmitSuccess && !$0.isMined }
798
- .forEach { pendingTx in
799
- guard let rawId = pendingTx.rawTransactionId else { return }
800
- let transaction = try transactionRepository.findBy(rawId: rawId)
801
558
 
802
- guard let minedHeight = transaction?.minedHeight else { return }
803
- let minedTx = try transactionManager.applyMinedHeight(pendingTransaction: pendingTx, minedHeight: minedHeight)
559
+ private func notify(oldStatus: InternalSyncStatus, newStatus: InternalSyncStatus) async {
560
+ guard oldStatus != newStatus else { return }
561
+
562
+ let newState: SynchronizerState
563
+
564
+ // When the wipe happens status is switched to `unprepared`. And we expect that everything is deleted. All the databases including data DB.
565
+ // When new snapshot is created balance is checked. And when balance is checked and data DB doesn't exist then rust initialise new database.
566
+ // So it's necessary to not create new snapshot after status is switched to `unprepared` otherwise data DB exists after wipe
567
+ if newStatus == .unprepared {
568
+ var nextState = SynchronizerState.zero
804
569
 
805
- notifyMinedTransaction(minedTx)
570
+ let nextSessionID = await self.syncSession.update(.nullID)
571
+
572
+ nextState.syncSessionID = nextSessionID
573
+ newState = nextState
574
+ } else {
575
+ if SessionTicker.live.isNewSyncSession(oldStatus, newStatus) {
576
+ await self.syncSession.newSession(with: self.syncSessionIDGenerator)
806
577
  }
807
- }
808
-
809
- private func removeConfirmedTransactions() throws {
810
- let latestHeight = try transactionRepository.lastScannedHeight()
811
-
812
- try transactionManager.allPendingTransactions()?
813
- .filter { $0.minedHeight > 0 && abs($0.minedHeight - latestHeight) >= ZcashSDK.defaultStaleTolerance }
814
- .forEach { try transactionManager.delete(pendingTransaction: $0) }
815
- }
816
-
817
- private func refreshPendingTransactions() {
818
- do {
819
- try updateMinedTransactions()
820
- try removeConfirmedTransactions()
821
- } catch {
822
- LoggerProxy.debug("error refreshing pending transactions: \(error)")
823
- }
824
- }
825
-
826
- private func notifyMinedTransaction(_ transaction: PendingTransactionEntity) {
827
- DispatchQueue.main.async { [weak self] in
828
- guard let self = self else { return }
829
-
830
- NotificationCenter.default.post(
831
- name: Notification.Name.synchronizerMinedTransaction,
832
- object: self,
833
- userInfo: [NotificationKeys.minedTransaction: transaction]
834
- )
578
+ newState = await snapshotState(status: newStatus)
835
579
  }
580
+
581
+ latestState = newState
582
+ updateStateStream(with: latestState)
836
583
  }
837
584
 
838
- // swiftlint:disable cyclomatic_complexity
839
- private func mapError(_ error: Error) -> Error {
840
- if let compactBlockProcessorError = error as? CompactBlockProcessorError {
841
- switch compactBlockProcessorError {
842
- case .dataDbInitFailed(let path):
843
- return SynchronizerError.initFailed(message: "DataDb init failed at path: \(path)")
844
- case .connectionError(let message):
845
- return SynchronizerError.connectionFailed(message: message)
846
- case .invalidConfiguration:
847
- return SynchronizerError.generalError(message: "Invalid Configuration")
848
- case .missingDbPath(let path):
849
- return SynchronizerError.initFailed(message: "missing Db path: \(path)")
850
- case .generalError(let message):
851
- return SynchronizerError.generalError(message: message)
852
- case .maxAttemptsReached(attempts: let attempts):
853
- return SynchronizerError.maxRetryAttemptsReached(attempts: attempts)
854
- case let .grpcError(statusCode, message):
855
- return SynchronizerError.connectionError(status: statusCode, message: message)
856
- case .connectionTimeout:
857
- return SynchronizerError.networkTimeout
858
- case .unspecifiedError(let underlyingError):
859
- return SynchronizerError.uncategorized(underlyingError: underlyingError)
860
- case .criticalError:
861
- return SynchronizerError.criticalError
862
- case .invalidAccount:
863
- return SynchronizerError.invalidAccount
864
- case .wrongConsensusBranchId:
865
- return SynchronizerError.lightwalletdValidationFailed(underlyingError: compactBlockProcessorError)
866
- case .networkMismatch:
867
- return SynchronizerError.lightwalletdValidationFailed(underlyingError: compactBlockProcessorError)
868
- case .saplingActivationMismatch:
869
- return SynchronizerError.lightwalletdValidationFailed(underlyingError: compactBlockProcessorError)
870
- }
585
+ private func updateStateStream(with newState: SynchronizerState) {
586
+ streamsUpdateQueue.async { [weak self] in
587
+ self?.stateSubject.send(newState)
871
588
  }
872
-
873
- return SynchronizerError.uncategorized(underlyingError: error)
874
589
  }
875
-
876
- private func notifyFailure(_ error: Error) {
877
- DispatchQueue.main.async { [weak self] in
878
- guard let self = self else { return }
879
- NotificationCenter.default.post(
880
- name: Notification.Name.synchronizerFailed,
881
- object: self,
882
- userInfo: [NotificationKeys.error: self.mapError(error)]
883
- )
590
+
591
+ private func notifyMinedTransaction(_ transaction: ZcashTransaction.Overview) {
592
+ streamsUpdateQueue.async { [weak self] in
593
+ self?.eventSubject.send(.minedTransaction(transaction))
884
594
  }
885
595
  }
886
596
  }
887
597
 
888
598
  extension SDKSynchronizer {
889
- public var pendingTransactions: [PendingTransactionEntity] {
890
- (try? self.allPendingTransactions()) ?? [PendingTransactionEntity]()
599
+ public var transactions: [ZcashTransaction.Overview] {
600
+ get async {
601
+ (try? await self.allTransactions()) ?? []
602
+ }
891
603
  }
892
-
893
- public var clearedTransactions: [ConfirmedTransactionEntity] {
894
- (try? self.allClearedTransactions()) ?? [ConfirmedTransactionEntity]()
604
+
605
+ public var sentTransactions: [ZcashTransaction.Overview] {
606
+ get async {
607
+ (try? await allSentTransactions()) ?? []
608
+ }
895
609
  }
896
-
897
- public var sentTransactions: [ConfirmedTransactionEntity] {
898
- (try? self.allSentTransactions()) ?? [ConfirmedTransactionEntity]()
610
+
611
+ public var receivedTransactions: [ZcashTransaction.Overview] {
612
+ get async {
613
+ (try? await allReceivedTransactions()) ?? []
614
+ }
899
615
  }
900
-
901
- public var receivedTransactions: [ConfirmedTransactionEntity] {
902
- (try? self.allReceivedTransactions()) ?? [ConfirmedTransactionEntity]()
616
+
617
+ public var pendingTransactions: [ZcashTransaction.Overview] {
618
+ get async {
619
+ (try? await allPendingTransactions()) ?? []
620
+ }
903
621
  }
904
622
  }
905
623
 
906
- import GRPC
907
- extension ConnectionState {
908
- init(_ connectivityState: ConnectivityState) {
909
- switch connectivityState {
910
- case .connecting:
911
- self = .connecting
912
- case .idle:
913
- self = .idle
914
- case .ready:
915
- self = .online
916
- case .shutdown:
917
- self = .shutdown
918
- case .transientFailure:
919
- self = .reconnecting
624
+ extension InternalSyncStatus {
625
+ func isDifferent(from otherStatus: InternalSyncStatus) -> Bool {
626
+ switch (self, otherStatus) {
627
+ case (.unprepared, .unprepared): return false
628
+ case (.syncing, .syncing): return false
629
+ case (.enhancing, .enhancing): return false
630
+ case (.fetching, .fetching): return false
631
+ case (.synced, .synced): return false
632
+ case (.stopped, .stopped): return false
633
+ case (.disconnected, .disconnected): return false
634
+ case (.error, .error): return false
635
+ default: return true
920
636
  }
921
637
  }
922
638
  }
923
639
 
924
- private struct NullEnhancementProgress: EnhancementProgress {
925
- var totalTransactions: Int { 0 }
926
- var enhancedTransactions: Int { 0 }
927
- var lastFoundTransaction: ConfirmedTransactionEntity? { nil }
928
- var range: CompactBlockRange { 0 ... 0 }
640
+ struct SessionTicker {
641
+ /// Helper function to determine whether we are in front of a SyncSession change for a given syncStatus
642
+ /// transition we consider that every sync attempt is a new sync session and should have it's unique UUID reported.
643
+ var isNewSyncSession: (InternalSyncStatus, InternalSyncStatus) -> Bool
644
+ }
645
+
646
+ extension SessionTicker {
647
+ static let live = SessionTicker { oldStatus, newStatus in
648
+ // if the state hasn't changed to a different syncStatus member
649
+ guard oldStatus.isDifferent(from: newStatus) else { return false }
650
+
651
+ switch (oldStatus, newStatus) {
652
+ case (.unprepared, .syncing):
653
+ return true
654
+ case (.error, .syncing),
655
+ (.disconnected, .syncing),
656
+ (.stopped, .syncing),
657
+ (.synced, .syncing):
658
+ return true
659
+ default:
660
+ return false
661
+ }
662
+ }
929
663
  }