react-native-zcash 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (716) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/LICENSE +22 -0
  3. package/README.md +40 -37
  4. package/android/build.gradle +7 -5
  5. package/android/src/main/assets/saplingtree/mainnet/1310000.json +1 -1
  6. package/android/src/main/assets/saplingtree/mainnet/1320000.json +1 -1
  7. package/android/src/main/assets/saplingtree/mainnet/1330000.json +1 -1
  8. package/android/src/main/assets/saplingtree/mainnet/1340000.json +1 -1
  9. package/android/src/main/assets/saplingtree/mainnet/1350000.json +1 -1
  10. package/android/src/main/assets/saplingtree/mainnet/1360000.json +1 -1
  11. package/android/src/main/assets/saplingtree/mainnet/1370000.json +1 -1
  12. package/android/src/main/assets/saplingtree/mainnet/1380000.json +1 -1
  13. package/android/src/main/assets/saplingtree/mainnet/1390000.json +1 -1
  14. package/android/src/main/assets/saplingtree/mainnet/1400000.json +1 -1
  15. package/android/src/main/assets/saplingtree/mainnet/1410000.json +1 -1
  16. package/android/src/main/assets/saplingtree/mainnet/1420000.json +1 -1
  17. package/android/src/main/assets/saplingtree/mainnet/1430000.json +1 -1
  18. package/android/src/main/assets/saplingtree/mainnet/1440000.json +1 -1
  19. package/android/src/main/assets/saplingtree/mainnet/1450000.json +1 -1
  20. package/android/src/main/assets/saplingtree/mainnet/1460000.json +1 -1
  21. package/android/src/main/assets/saplingtree/mainnet/1470000.json +1 -1
  22. package/android/src/main/assets/saplingtree/mainnet/1480000.json +1 -1
  23. package/android/src/main/assets/saplingtree/mainnet/1490000.json +1 -1
  24. package/android/src/main/assets/saplingtree/mainnet/1500000.json +1 -1
  25. package/android/src/main/assets/saplingtree/mainnet/1510000.json +1 -1
  26. package/android/src/main/assets/saplingtree/mainnet/1520000.json +1 -1
  27. package/android/src/main/assets/saplingtree/mainnet/1530000.json +1 -1
  28. package/android/src/main/assets/saplingtree/mainnet/1540000.json +1 -1
  29. package/android/src/main/assets/saplingtree/mainnet/1550000.json +1 -1
  30. package/android/src/main/assets/saplingtree/mainnet/1560000.json +1 -1
  31. package/android/src/main/assets/saplingtree/mainnet/1570000.json +1 -1
  32. package/android/src/main/assets/saplingtree/mainnet/1580000.json +1 -1
  33. package/android/src/main/assets/saplingtree/mainnet/1590000.json +1 -1
  34. package/android/src/main/assets/saplingtree/mainnet/1600000.json +1 -1
  35. package/android/src/main/assets/saplingtree/mainnet/1610000.json +1 -1
  36. package/android/src/main/assets/saplingtree/mainnet/1620000.json +1 -1
  37. package/android/src/main/assets/saplingtree/mainnet/1630000.json +1 -1
  38. package/android/src/main/assets/saplingtree/mainnet/1640000.json +1 -1
  39. package/android/src/main/assets/saplingtree/mainnet/1650000.json +1 -1
  40. package/android/src/main/assets/saplingtree/mainnet/1660000.json +1 -1
  41. package/android/src/main/assets/saplingtree/mainnet/1670000.json +1 -1
  42. package/android/src/main/assets/saplingtree/mainnet/1680000.json +1 -1
  43. package/android/src/main/assets/saplingtree/mainnet/1690000.json +2 -1
  44. package/android/src/main/assets/saplingtree/mainnet/1700000.json +2 -1
  45. package/android/src/main/assets/saplingtree/mainnet/1710000.json +2 -1
  46. package/android/src/main/assets/saplingtree/mainnet/1720000.json +2 -1
  47. package/android/src/main/assets/saplingtree/mainnet/1730000.json +2 -1
  48. package/android/src/main/assets/saplingtree/mainnet/1740000.json +2 -1
  49. package/android/src/main/assets/saplingtree/mainnet/1750000.json +2 -1
  50. package/android/src/main/assets/saplingtree/mainnet/1760000.json +2 -1
  51. package/android/src/main/assets/saplingtree/mainnet/1770000.json +2 -1
  52. package/android/src/main/assets/saplingtree/mainnet/1780000.json +2 -1
  53. package/android/src/main/assets/saplingtree/mainnet/1790000.json +2 -1
  54. package/android/src/main/assets/saplingtree/mainnet/1800000.json +2 -1
  55. package/android/src/main/assets/saplingtree/mainnet/1810000.json +2 -1
  56. package/android/src/main/assets/saplingtree/mainnet/1820000.json +2 -1
  57. package/android/src/main/assets/saplingtree/mainnet/1830000.json +2 -1
  58. package/android/src/main/assets/saplingtree/mainnet/1840000.json +2 -1
  59. package/android/src/main/assets/saplingtree/mainnet/1850000.json +2 -1
  60. package/android/src/main/assets/saplingtree/mainnet/1860000.json +2 -1
  61. package/android/src/main/assets/saplingtree/mainnet/1870000.json +2 -1
  62. package/android/src/main/assets/saplingtree/mainnet/1880000.json +2 -1
  63. package/android/src/main/assets/saplingtree/mainnet/1890000.json +2 -1
  64. package/android/src/main/assets/saplingtree/mainnet/1900000.json +2 -1
  65. package/android/src/main/assets/saplingtree/mainnet/1910000.json +2 -1
  66. package/android/src/main/assets/saplingtree/mainnet/1920000.json +2 -1
  67. package/android/src/main/assets/saplingtree/mainnet/1930000.json +2 -1
  68. package/android/src/main/assets/saplingtree/mainnet/1940000.json +2 -1
  69. package/android/src/main/assets/saplingtree/mainnet/1950000.json +2 -1
  70. package/android/src/main/assets/saplingtree/mainnet/1960000.json +2 -1
  71. package/android/src/main/assets/saplingtree/mainnet/1970000.json +2 -1
  72. package/android/src/main/assets/saplingtree/mainnet/1980000.json +2 -1
  73. package/android/src/main/assets/saplingtree/mainnet/1990000.json +2 -1
  74. package/android/src/main/assets/saplingtree/mainnet/2000000.json +2 -1
  75. package/android/src/main/assets/saplingtree/mainnet/2010000.json +2 -1
  76. package/android/src/main/assets/saplingtree/mainnet/2020000.json +2 -1
  77. package/android/src/main/assets/saplingtree/mainnet/2030000.json +2 -1
  78. package/android/src/main/assets/saplingtree/mainnet/2040000.json +2 -1
  79. package/android/src/main/assets/saplingtree/mainnet/2050000.json +2 -1
  80. package/android/src/main/assets/saplingtree/mainnet/2060000.json +2 -1
  81. package/android/src/main/assets/saplingtree/mainnet/2070000.json +2 -1
  82. package/android/src/main/assets/saplingtree/mainnet/2080000.json +2 -1
  83. package/android/src/main/assets/saplingtree/mainnet/2090000.json +2 -1
  84. package/android/src/main/assets/saplingtree/mainnet/2100000.json +2 -1
  85. package/android/src/main/assets/saplingtree/mainnet/2110000.json +2 -1
  86. package/android/src/main/assets/saplingtree/mainnet/2120000.json +2 -1
  87. package/android/src/main/assets/saplingtree/mainnet/2130000.json +2 -1
  88. package/android/src/main/assets/saplingtree/mainnet/2140000.json +2 -1
  89. package/android/src/main/assets/saplingtree/mainnet/2150000.json +2 -1
  90. package/android/src/main/assets/saplingtree/mainnet/2160000.json +2 -1
  91. package/android/src/main/assets/saplingtree/mainnet/2170000.json +2 -1
  92. package/android/src/main/assets/saplingtree/mainnet/2180000.json +8 -0
  93. package/android/src/main/assets/saplingtree/mainnet/2190000.json +8 -0
  94. package/android/src/main/assets/saplingtree/mainnet/2200000.json +8 -0
  95. package/android/src/main/assets/saplingtree/mainnet/2210000.json +8 -0
  96. package/android/src/main/java/app/edge/rnzcash/RNZcashModule.kt +179 -175
  97. package/android/src/main/java/app/edge/rnzcash/RNZcashPackage.kt +2 -3
  98. package/ios/RNZcash.m +5 -22
  99. package/ios/RNZcash.swift +532 -514
  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 +215 -0
  120. package/ios/ZCashLightClientKit/DAO/BlockDao.swift +112 -0
  121. package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +54 -0
  122. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +245 -0
  123. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +210 -0
  124. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +199 -0
  125. package/ios/ZCashLightClientKit/Entity/BlockProgress.swift +24 -0
  126. package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +26 -0
  127. package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +48 -0
  128. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +235 -0
  129. package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +18 -0
  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/Data+Zcash.swift +17 -0
  138. package/ios/ZCashLightClientKit/Extensions/Data+internal.swift +35 -0
  139. package/ios/ZCashLightClientKit/Extensions/Error+ZcashError.swift +18 -0
  140. package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +41 -0
  141. package/ios/ZCashLightClientKit/Extensions/NumberFormatter+Zcash.swift +19 -0
  142. package/ios/ZCashLightClientKit/Extensions/URL+UpdateWithAlias.swift +36 -0
  143. package/ios/ZCashLightClientKit/Extensions/Undescribable.swift +22 -0
  144. package/ios/ZCashLightClientKit/Extensions/Zatoshi+SQLite.swift +20 -0
  145. package/ios/ZCashLightClientKit/Extensions/ZcashRust+Utils.swift +26 -0
  146. package/ios/ZCashLightClientKit/Extensions/ZcashSDK+extensions.swift +34 -0
  147. package/ios/ZCashLightClientKit/Initializer.swift +433 -0
  148. package/ios/ZCashLightClientKit/Metrics/SDKMetrics.swift +270 -0
  149. package/ios/ZCashLightClientKit/Model/Checkpoint.swift +84 -0
  150. package/ios/ZCashLightClientKit/Model/Memo.swift +236 -0
  151. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +281 -0
  152. package/ios/ZCashLightClientKit/Model/Zatoshi.swift +115 -0
  153. package/ios/ZCashLightClientKit/Modules/Service/GRPC/LightWalletGRPCService.swift +342 -0
  154. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
  155. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/compact_formats.pb.swift +399 -0
  156. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/compact_formats.proto +66 -0
  157. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/service.proto +185 -0
  158. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.grpc.swift +1123 -0
  159. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.pb.swift +1208 -0
  160. package/ios/ZCashLightClientKit/Modules/Service/LightWalletService.swift +195 -0
  161. package/ios/ZCashLightClientKit/Providers/LatestBlocksDataProvider.swift +69 -0
  162. package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +65 -0
  163. package/ios/ZCashLightClientKit/Repository/BlockRepository.swift +13 -0
  164. package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +43 -0
  165. package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +17 -0
  166. package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +35 -0
  167. package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +29 -0
  168. package/ios/ZCashLightClientKit/Repository/TransactionRepositoryBuilder.swift +24 -0
  169. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +16 -0
  170. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1000000.json +7 -0
  171. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1010000.json +7 -0
  172. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1020000.json +7 -0
  173. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1030000.json +7 -0
  174. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1040000.json +7 -0
  175. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1050000.json +7 -0
  176. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1060000.json +7 -0
  177. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1070000.json +7 -0
  178. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1080000.json +7 -0
  179. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1090000.json +7 -0
  180. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1100000.json +7 -0
  181. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1110000.json +7 -0
  182. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1120000.json +7 -0
  183. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1130000.json +7 -0
  184. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1140000.json +7 -0
  185. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1150000.json +7 -0
  186. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1160000.json +7 -0
  187. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1170000.json +7 -0
  188. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1180000.json +7 -0
  189. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1190000.json +7 -0
  190. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1200000.json +7 -0
  191. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1210000.json +7 -0
  192. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1220000.json +7 -0
  193. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1230000.json +7 -0
  194. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1240000.json +7 -0
  195. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1250000.json +7 -0
  196. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1260000.json +7 -0
  197. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1270000.json +7 -0
  198. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1280000.json +7 -0
  199. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1290000.json +7 -0
  200. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1300000.json +7 -0
  201. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1310000.json +7 -0
  202. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1320000.json +7 -0
  203. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1330000.json +7 -0
  204. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1340000.json +7 -0
  205. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1350000.json +7 -0
  206. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1360000.json +7 -0
  207. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1370000.json +7 -0
  208. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1380000.json +7 -0
  209. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1390000.json +7 -0
  210. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1400000.json +7 -0
  211. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1410000.json +7 -0
  212. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1420000.json +7 -0
  213. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1430000.json +7 -0
  214. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1440000.json +7 -0
  215. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1450000.json +7 -0
  216. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1460000.json +7 -0
  217. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1470000.json +7 -0
  218. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1480000.json +7 -0
  219. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1490000.json +7 -0
  220. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1500000.json +7 -0
  221. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1510000.json +7 -0
  222. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1520000.json +7 -0
  223. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1530000.json +7 -0
  224. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1540000.json +7 -0
  225. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1550000.json +7 -0
  226. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1560000.json +7 -0
  227. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1570000.json +7 -0
  228. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1580000.json +7 -0
  229. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1590000.json +7 -0
  230. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1600000.json +7 -0
  231. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1610000.json +7 -0
  232. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1620000.json +7 -0
  233. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1630000.json +7 -0
  234. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1631000.json +7 -0
  235. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1640000.json +7 -0
  236. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1650000.json +7 -0
  237. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1660000.json +7 -0
  238. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1670000.json +7 -0
  239. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1680000.json +7 -0
  240. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1686871.json +7 -0
  241. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1687104.json +8 -0
  242. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1690000.json +8 -0
  243. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1700000.json +8 -0
  244. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1710000.json +8 -0
  245. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1720000.json +8 -0
  246. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1722500.json +8 -0
  247. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1725000.json +8 -0
  248. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1727500.json +8 -0
  249. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1730000.json +8 -0
  250. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1732500.json +8 -0
  251. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1735000.json +8 -0
  252. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1737500.json +8 -0
  253. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1740000.json +8 -0
  254. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1742500.json +8 -0
  255. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1745000.json +8 -0
  256. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1747500.json +8 -0
  257. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1750000.json +8 -0
  258. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1752500.json +8 -0
  259. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1755000.json +9 -0
  260. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1757500.json +8 -0
  261. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1760000.json +8 -0
  262. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1762500.json +8 -0
  263. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1765000.json +8 -0
  264. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1767500.json +8 -0
  265. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1770000.json +8 -0
  266. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1772500.json +8 -0
  267. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1775000.json +8 -0
  268. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1777500.json +8 -0
  269. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1780000.json +8 -0
  270. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1782500.json +8 -0
  271. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1785000.json +8 -0
  272. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1787500.json +8 -0
  273. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1790000.json +8 -0
  274. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1792500.json +8 -0
  275. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1795000.json +8 -0
  276. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1797500.json +8 -0
  277. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1800000.json +8 -0
  278. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1802500.json +8 -0
  279. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1805000.json +8 -0
  280. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1807500.json +8 -0
  281. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1810000.json +8 -0
  282. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1812500.json +8 -0
  283. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1815000.json +8 -0
  284. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1817500.json +8 -0
  285. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1820000.json +8 -0
  286. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1822500.json +8 -0
  287. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1825000.json +8 -0
  288. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1827500.json +8 -0
  289. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1830000.json +8 -0
  290. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1832500.json +8 -0
  291. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1835000.json +8 -0
  292. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1837500.json +8 -0
  293. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1840000.json +8 -0
  294. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1842500.json +8 -0
  295. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1845000.json +8 -0
  296. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1847500.json +8 -0
  297. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1850000.json +8 -0
  298. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1852500.json +8 -0
  299. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1855000.json +8 -0
  300. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1857500.json +8 -0
  301. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1860000.json +8 -0
  302. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1862500.json +8 -0
  303. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1865000.json +8 -0
  304. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1867500.json +8 -0
  305. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1870000.json +8 -0
  306. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1872500.json +8 -0
  307. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1875000.json +8 -0
  308. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1877500.json +8 -0
  309. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1880000.json +8 -0
  310. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1882500.json +8 -0
  311. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1885000.json +8 -0
  312. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1887500.json +8 -0
  313. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1890000.json +8 -0
  314. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1892500.json +8 -0
  315. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1895000.json +8 -0
  316. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1897500.json +8 -0
  317. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1900000.json +8 -0
  318. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1902500.json +8 -0
  319. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1905000.json +8 -0
  320. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1907500.json +8 -0
  321. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1910000.json +8 -0
  322. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1912500.json +8 -0
  323. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1915000.json +8 -0
  324. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1917500.json +8 -0
  325. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1920000.json +8 -0
  326. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1922500.json +8 -0
  327. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1925000.json +8 -0
  328. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1927500.json +8 -0
  329. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1930000.json +8 -0
  330. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1932500.json +8 -0
  331. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1935000.json +8 -0
  332. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1937500.json +8 -0
  333. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1940000.json +8 -0
  334. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1942500.json +8 -0
  335. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1945000.json +8 -0
  336. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1947500.json +8 -0
  337. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1950000.json +8 -0
  338. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1952500.json +8 -0
  339. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1955000.json +8 -0
  340. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1957500.json +8 -0
  341. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1960000.json +8 -0
  342. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1962500.json +8 -0
  343. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1965000.json +8 -0
  344. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1967500.json +8 -0
  345. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1970000.json +8 -0
  346. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1972500.json +8 -0
  347. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1975000.json +8 -0
  348. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1977500.json +8 -0
  349. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1980000.json +8 -0
  350. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1982500.json +8 -0
  351. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1985000.json +8 -0
  352. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1987500.json +8 -0
  353. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1990000.json +8 -0
  354. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1992500.json +8 -0
  355. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1995000.json +8 -0
  356. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1997500.json +8 -0
  357. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2000000.json +8 -0
  358. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2002500.json +8 -0
  359. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2005000.json +8 -0
  360. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2007500.json +8 -0
  361. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2010000.json +8 -0
  362. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2012500.json +8 -0
  363. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2015000.json +8 -0
  364. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2017500.json +8 -0
  365. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2020000.json +8 -0
  366. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2022500.json +8 -0
  367. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2025000.json +8 -0
  368. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2027500.json +8 -0
  369. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2030000.json +8 -0
  370. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2032500.json +8 -0
  371. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2035000.json +8 -0
  372. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2037500.json +8 -0
  373. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2040000.json +8 -0
  374. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2042500.json +8 -0
  375. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2045000.json +8 -0
  376. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2047500.json +8 -0
  377. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2050000.json +8 -0
  378. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2052500.json +8 -0
  379. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2055000.json +8 -0
  380. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2057500.json +8 -0
  381. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2060000.json +8 -0
  382. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2062500.json +8 -0
  383. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2065000.json +8 -0
  384. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2067500.json +8 -0
  385. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2070000.json +8 -0
  386. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2072500.json +8 -0
  387. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2075000.json +8 -0
  388. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2077500.json +8 -0
  389. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2080000.json +8 -0
  390. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2082500.json +8 -0
  391. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2085000.json +8 -0
  392. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2087500.json +8 -0
  393. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2090000.json +8 -0
  394. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2100000.json +8 -0
  395. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2110000.json +8 -0
  396. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2120000.json +8 -0
  397. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2130000.json +8 -0
  398. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2140000.json +8 -0
  399. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2150000.json +8 -0
  400. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2160000.json +8 -0
  401. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2170000.json +8 -0
  402. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2180000.json +8 -0
  403. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2190000.json +8 -0
  404. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2200000.json +8 -0
  405. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2210000.json +8 -0
  406. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/419200.json +7 -0
  407. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/500000.json +7 -0
  408. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/510000.json +7 -0
  409. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/520000.json +7 -0
  410. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/530000.json +7 -0
  411. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/540000.json +7 -0
  412. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/550000.json +7 -0
  413. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/560000.json +7 -0
  414. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/570000.json +7 -0
  415. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/580000.json +7 -0
  416. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/590000.json +7 -0
  417. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/600000.json +7 -0
  418. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/610000.json +7 -0
  419. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/620000.json +7 -0
  420. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/630000.json +7 -0
  421. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/640000.json +7 -0
  422. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/650000.json +7 -0
  423. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/660000.json +7 -0
  424. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/663150.json +8 -0
  425. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/670000.json +7 -0
  426. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/680000.json +7 -0
  427. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/690000.json +7 -0
  428. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/700000.json +7 -0
  429. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/710000.json +7 -0
  430. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/720000.json +7 -0
  431. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/730000.json +7 -0
  432. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/740000.json +7 -0
  433. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/750000.json +7 -0
  434. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/760000.json +7 -0
  435. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/770000.json +7 -0
  436. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/780000.json +7 -0
  437. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/790000.json +7 -0
  438. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/800000.json +7 -0
  439. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/810000.json +7 -0
  440. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/820000.json +7 -0
  441. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/830000.json +7 -0
  442. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/840000.json +7 -0
  443. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/850000.json +7 -0
  444. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/860000.json +7 -0
  445. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/870000.json +7 -0
  446. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/880000.json +7 -0
  447. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/890000.json +7 -0
  448. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/900000.json +7 -0
  449. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/910000.json +7 -0
  450. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/920000.json +7 -0
  451. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/930000.json +7 -0
  452. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/940000.json +7 -0
  453. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/950000.json +7 -0
  454. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/960000.json +7 -0
  455. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/970000.json +7 -0
  456. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/980000.json +7 -0
  457. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/990000.json +7 -0
  458. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1000000.json +7 -0
  459. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1010000.json +7 -0
  460. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1020000.json +7 -0
  461. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1030000.json +7 -0
  462. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1040000.json +7 -0
  463. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1050000.json +7 -0
  464. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1060000.json +7 -0
  465. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1070000.json +7 -0
  466. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1080000.json +7 -0
  467. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1090000.json +7 -0
  468. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1100000.json +7 -0
  469. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1110000.json +7 -0
  470. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1120000.json +7 -0
  471. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1130000.json +7 -0
  472. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1140000.json +7 -0
  473. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1150000.json +7 -0
  474. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1160000.json +7 -0
  475. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1170000.json +7 -0
  476. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1180000.json +7 -0
  477. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1190000.json +7 -0
  478. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1200000.json +7 -0
  479. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1210000.json +7 -0
  480. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1220000.json +7 -0
  481. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1230000.json +7 -0
  482. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1240000.json +7 -0
  483. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1250000.json +7 -0
  484. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1260000.json +7 -0
  485. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1270000.json +7 -0
  486. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1280000.json +7 -0
  487. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1290000.json +7 -0
  488. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1300000.json +7 -0
  489. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1310000.json +7 -0
  490. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1320000.json +7 -0
  491. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1330000.json +7 -0
  492. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1340000.json +7 -0
  493. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1350000.json +7 -0
  494. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1360000.json +7 -0
  495. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1370000.json +7 -0
  496. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1380000.json +7 -0
  497. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1390000.json +7 -0
  498. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1400000.json +7 -0
  499. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1410000.json +7 -0
  500. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1420000.json +7 -0
  501. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1430000.json +7 -0
  502. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1440000.json +7 -0
  503. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1450000.json +7 -0
  504. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1460000.json +7 -0
  505. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1470000.json +7 -0
  506. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1480000.json +7 -0
  507. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1490000.json +7 -0
  508. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1500000.json +7 -0
  509. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1510000.json +7 -0
  510. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1520000.json +7 -0
  511. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1530000.json +7 -0
  512. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1540000.json +7 -0
  513. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1550000.json +7 -0
  514. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1560000.json +7 -0
  515. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1570000.json +7 -0
  516. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1580000.json +7 -0
  517. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1590000.json +7 -0
  518. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1600000.json +7 -0
  519. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1610000.json +7 -0
  520. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1620000.json +7 -0
  521. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1630000.json +7 -0
  522. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1640000.json +7 -0
  523. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1650000.json +7 -0
  524. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1660000.json +7 -0
  525. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1670000.json +7 -0
  526. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1680000.json +7 -0
  527. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1690000.json +7 -0
  528. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1700000.json +7 -0
  529. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1710000.json +7 -0
  530. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1720000.json +7 -0
  531. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1730000.json +7 -0
  532. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1740000.json +7 -0
  533. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1750000.json +7 -0
  534. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1760000.json +7 -0
  535. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1770000.json +7 -0
  536. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1780000.json +7 -0
  537. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1790000.json +7 -0
  538. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1800000.json +7 -0
  539. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1810000.json +7 -0
  540. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1820000.json +7 -0
  541. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1830000.json +7 -0
  542. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1840000.json +7 -0
  543. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1842420.json +8 -0
  544. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1850000.json +8 -0
  545. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1860000.json +8 -0
  546. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1870000.json +8 -0
  547. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1880000.json +8 -0
  548. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1890000.json +8 -0
  549. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1900000.json +8 -0
  550. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1910000.json +8 -0
  551. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1920000.json +8 -0
  552. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1930000.json +8 -0
  553. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1940000.json +8 -0
  554. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1950000.json +8 -0
  555. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1960000.json +8 -0
  556. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1970000.json +8 -0
  557. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1980000.json +8 -0
  558. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1990000.json +8 -0
  559. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2000000.json +8 -0
  560. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2010000.json +8 -0
  561. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2020000.json +8 -0
  562. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2030000.json +8 -0
  563. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2040000.json +8 -0
  564. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2050000.json +8 -0
  565. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2060000.json +8 -0
  566. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2070000.json +8 -0
  567. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2080000.json +8 -0
  568. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2090000.json +8 -0
  569. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2100000.json +8 -0
  570. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2110000.json +8 -0
  571. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2120000.json +8 -0
  572. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2130000.json +8 -0
  573. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2140000.json +8 -0
  574. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2150000.json +8 -0
  575. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2160000.json +8 -0
  576. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2170000.json +8 -0
  577. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2180000.json +8 -0
  578. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2190000.json +8 -0
  579. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2200000.json +8 -0
  580. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2210000.json +8 -0
  581. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2220000.json +8 -0
  582. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2230000.json +8 -0
  583. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2240000.json +8 -0
  584. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2250000.json +8 -0
  585. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2260000.json +8 -0
  586. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2270000.json +8 -0
  587. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2280000.json +8 -0
  588. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2290000.json +8 -0
  589. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2300000.json +8 -0
  590. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2310000.json +8 -0
  591. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2320000.json +8 -0
  592. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2330000.json +8 -0
  593. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2340000.json +8 -0
  594. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/280000.json +7 -0
  595. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/290000.json +7 -0
  596. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/300000.json +7 -0
  597. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/310000.json +7 -0
  598. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/320000.json +7 -0
  599. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/330000.json +7 -0
  600. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/340000.json +7 -0
  601. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/350000.json +7 -0
  602. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/360000.json +7 -0
  603. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/370000.json +7 -0
  604. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/380000.json +7 -0
  605. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/390000.json +7 -0
  606. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/400000.json +7 -0
  607. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/410000.json +7 -0
  608. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/420000.json +7 -0
  609. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/430000.json +7 -0
  610. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/440000.json +7 -0
  611. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/450000.json +7 -0
  612. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/460000.json +7 -0
  613. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/470000.json +7 -0
  614. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/480000.json +7 -0
  615. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/490000.json +7 -0
  616. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/500000.json +7 -0
  617. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/510000.json +7 -0
  618. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/520000.json +7 -0
  619. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/530000.json +7 -0
  620. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/540000.json +7 -0
  621. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/550000.json +7 -0
  622. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/560000.json +7 -0
  623. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/570000.json +7 -0
  624. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/580000.json +7 -0
  625. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/590000.json +7 -0
  626. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/600000.json +7 -0
  627. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/610000.json +7 -0
  628. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/620000.json +7 -0
  629. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/630000.json +7 -0
  630. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/640000.json +7 -0
  631. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/650000.json +7 -0
  632. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/660000.json +7 -0
  633. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/670000.json +7 -0
  634. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/680000.json +7 -0
  635. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/690000.json +7 -0
  636. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/700000.json +7 -0
  637. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/710000.json +7 -0
  638. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/720000.json +7 -0
  639. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/730000.json +7 -0
  640. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/740000.json +7 -0
  641. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/750000.json +7 -0
  642. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/760000.json +7 -0
  643. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/770000.json +7 -0
  644. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/780000.json +7 -0
  645. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/790000.json +7 -0
  646. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/800000.json +7 -0
  647. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/810000.json +7 -0
  648. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/820000.json +7 -0
  649. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/830000.json +7 -0
  650. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/840000.json +7 -0
  651. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/850000.json +7 -0
  652. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/860000.json +7 -0
  653. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/870000.json +7 -0
  654. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/880000.json +7 -0
  655. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/890000.json +7 -0
  656. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/900000.json +7 -0
  657. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/910000.json +7 -0
  658. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/920000.json +7 -0
  659. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/930000.json +7 -0
  660. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/940000.json +7 -0
  661. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/950000.json +7 -0
  662. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/960000.json +7 -0
  663. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/970000.json +7 -0
  664. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/980000.json +7 -0
  665. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/990000.json +7 -0
  666. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackend.swift +218 -0
  667. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackendWelding.swift +88 -0
  668. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +645 -0
  669. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +256 -0
  670. package/ios/ZCashLightClientKit/Rust/zcashlc.h +1051 -0
  671. package/ios/ZCashLightClientKit/Synchronizer/ClosureSDKSynchronizer.swift +180 -0
  672. package/ios/ZCashLightClientKit/Synchronizer/CombineSDKSynchronizer.swift +175 -0
  673. package/ios/ZCashLightClientKit/Synchronizer/Dependencies.swift +207 -0
  674. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +663 -0
  675. package/ios/ZCashLightClientKit/Synchronizer.swift +504 -0
  676. package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +207 -0
  677. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +66 -0
  678. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +165 -0
  679. package/ios/ZCashLightClientKit/Utils/AsyncToClosureGateway.swift +46 -0
  680. package/ios/ZCashLightClientKit/Utils/AsyncToCombineGateway.swift +59 -0
  681. package/ios/ZCashLightClientKit/Utils/Clamped.swift +32 -0
  682. package/ios/ZCashLightClientKit/Utils/DIContainer.swift +86 -0
  683. package/ios/ZCashLightClientKit/Utils/GenericActor.swift +18 -0
  684. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +48 -0
  685. package/ios/ZCashLightClientKit/Utils/OSLogger.swift +109 -0
  686. package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +159 -0
  687. package/ios/ZCashLightClientKit/Utils/SpecificCombineTypes.swift +16 -0
  688. package/ios/ZCashLightClientKit/Utils/SyncSessionIDGenerator.swift +32 -0
  689. package/ios/ZCashLightClientKit/Utils/Task+sleep.swift +14 -0
  690. package/ios/ZCashLightClientKit/Utils/UsedAliasesChecker.swift +41 -0
  691. package/ios/libzcashlc.xcframework/Info.plist +40 -0
  692. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  693. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  694. package/ios/react-native-zcash-Bridging-Header.h +2 -0
  695. package/ios/react-native-zcash.xcodeproj/project.pbxproj +1 -0
  696. package/lib/rnzcash.rn.js +37 -80
  697. package/lib/rnzcash.rn.js.map +1 -1
  698. package/lib/scripts/copyCheckpoints.d.ts +5 -0
  699. package/lib/scripts/updateSources.d.ts +1 -0
  700. package/lib/src/react-native.d.ts +5 -10
  701. package/lib/src/types.d.ts +3 -4
  702. package/package.json +23 -37
  703. package/react-native-zcash.podspec +19 -8
  704. package/src/react-native.ts +15 -41
  705. package/src/types.ts +3 -4
  706. package/ios/RNZcash-Bridging-Header.h +0 -6
  707. package/ios/RNZcash.xcodeproj/project.pbxproj +0 -271
  708. package/ios/RNZcash.xcworkspace/contents.xcworkspacedata +0 -7
  709. package/ios/RNZcash.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  710. package/lib/src/browser.d.ts +0 -0
  711. package/lib/src/index.d.ts +0 -0
  712. package/lib/test/test.test.d.ts +0 -0
  713. package/scripts/copyCheckpoints.js +0 -12
  714. package/src/browser.ts +0 -36
  715. package/src/index.flow.js +0 -168
  716. package/src/index.ts +0 -1
@@ -0,0 +1,12 @@
1
+ //
2
+ // ConnectorProvider.swift
3
+ //
4
+ //
5
+ // Created by Francisco Gindre on 1/12/23.
6
+ //
7
+ import SQLite
8
+
9
+ protocol ConnectionProvider {
10
+ func connection() throws -> Connection
11
+ func close()
12
+ }
@@ -0,0 +1,20 @@
1
+ //
2
+ // Storage.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/13/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ enum DatabaseStorageError: Error {
12
+ case couldNotCreate
13
+ case openFailed
14
+ case closeFailed
15
+ case operationFailed
16
+ case updateFailed
17
+ case malformedEntity(fields: [String]?)
18
+ case transactionFailed(underlyingError: Error)
19
+ case latestBlockNotFound
20
+ }
@@ -0,0 +1,39 @@
1
+ //
2
+ // SimpleConnectionProvider.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/13/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ import SQLite
11
+
12
+ class SimpleConnectionProvider: ConnectionProvider {
13
+ let path: String
14
+ let readonly: Bool
15
+ var db: Connection?
16
+
17
+ init(path: String, readonly: Bool = false) {
18
+ self.path = path
19
+ self.readonly = readonly
20
+ }
21
+
22
+ /// throws ZcashError.simpleConnectionProvider
23
+ func connection() throws -> Connection {
24
+ guard let conn = db else {
25
+ do {
26
+ let conn = try Connection(path, readonly: readonly)
27
+ self.db = conn
28
+ return conn
29
+ } catch {
30
+ throw ZcashError.simpleConnectionProvider(error)
31
+ }
32
+ }
33
+ return conn
34
+ }
35
+
36
+ func close() {
37
+ self.db = nil
38
+ }
39
+ }
@@ -0,0 +1,295 @@
1
+ //
2
+ // CompactBlockDownload.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/16/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ private class BlockDownloaderStream {
12
+ let stream: AsyncThrowingStream<ZcashCompactBlock, Error>
13
+ var iterator: AsyncThrowingStream<ZcashCompactBlock, Error>.Iterator
14
+
15
+ init(stream: AsyncThrowingStream<ZcashCompactBlock, Error>) {
16
+ self.stream = stream
17
+ self.iterator = stream.makeAsyncIterator()
18
+ }
19
+
20
+ func nextBlock() async throws -> ZcashCompactBlock? {
21
+ return try await iterator.next()
22
+ }
23
+ }
24
+
25
+ /// Described object which can download blocks.
26
+ protocol BlockDownloader {
27
+ /// Set max height to which blocks will be downloaded. If this is higher than upper bound of the whole range then upper bound of the whole range
28
+ /// is used as limit.
29
+ func setDownloadLimit(_ limit: BlockHeight) async
30
+
31
+ /// Set the range for the whole sync process. This method creates stream that is used to download blocks.
32
+ /// This method must be called before `startDownload()` is called. And it can't be called while download is in progress otherwise bad things
33
+ /// happen.
34
+ func setSyncRange(_ range: CompactBlockRange, batchSize: Int) async throws
35
+
36
+ /// Start downloading blocks.
37
+ ///
38
+ /// This methods creates new detached Task which is used to do the actual downloading.
39
+ ///
40
+ /// It's possible to call this methods anytime. If any download is already in progress nothing happens.
41
+ /// If the download limit is changed while download is in progress then blocks within new limit are downloaded automatically.
42
+ /// If the downlading finishes and then limit is changed you must call this method to start downloading.
43
+ ///
44
+ /// - Parameters:
45
+ /// - maxBlockBufferSize: Number of blocks that is held in memory before blocks are written to disk.
46
+ func startDownload(maxBlockBufferSize: Int) async
47
+
48
+ /// Stop download. This method cancels Task used for downloading. And then it is waiting until internal `isDownloading` flag is set to `false`
49
+ func stopDownload() async
50
+
51
+ /// Waits until blocks from `range` are downloaded. This method does just the waiting. If `startDownload(maxBlockBufferSize:syncRange:)` isn't
52
+ /// called before then nothing is downloaded.
53
+ /// - Parameter range: Wait until blocks from `range` are downloaded.
54
+ func waitUntilRequestedBlocksAreDownloaded(in range: CompactBlockRange) async throws
55
+ }
56
+
57
+ actor BlockDownloaderImpl {
58
+ private enum Constants {
59
+ static let rebuildStreamAfterBatchesCount = 3
60
+ }
61
+
62
+ let service: LightWalletService
63
+ let downloaderService: BlockDownloaderService
64
+ let storage: CompactBlockRepository
65
+ let internalSyncProgress: InternalSyncProgress
66
+ let metrics: SDKMetrics
67
+ let logger: Logger
68
+
69
+ private var downloadStreamCreatedAtRange: CompactBlockRange = 0...0
70
+ private var downloadStream: BlockDownloaderStream?
71
+ private var syncRange: CompactBlockRange?
72
+ private var batchSize: Int?
73
+
74
+ private var downloadToHeight: BlockHeight = 0
75
+ private var isDownloading = false
76
+ private var task: Task<Void, Error>?
77
+ private var lastError: Error?
78
+
79
+ init(
80
+ service: LightWalletService,
81
+ downloaderService: BlockDownloaderService,
82
+ storage: CompactBlockRepository,
83
+ internalSyncProgress: InternalSyncProgress,
84
+ metrics: SDKMetrics,
85
+ logger: Logger
86
+ ) {
87
+ self.service = service
88
+ self.downloaderService = downloaderService
89
+ self.storage = storage
90
+ self.internalSyncProgress = internalSyncProgress
91
+ self.metrics = metrics
92
+ self.logger = logger
93
+ }
94
+
95
+ private func doDownload(maxBlockBufferSize: Int) async {
96
+ lastError = nil
97
+ do {
98
+ guard let batchSize = self.batchSize, let syncRange = self.syncRange else {
99
+ logger.error("Dont have downloadStream. Trying to download blocks before sync range is not set.")
100
+ throw ZcashError.blockDownloadSyncRangeNotSet
101
+ }
102
+
103
+ let latestDownloadedBlockHeight = await internalSyncProgress.load(.latestDownloadedBlockHeight)
104
+
105
+ let downloadFrom = max(syncRange.lowerBound, latestDownloadedBlockHeight + 1)
106
+ let downloadTo = min(downloadToHeight, syncRange.upperBound)
107
+
108
+ if downloadFrom > downloadTo {
109
+ logger.debug("""
110
+ Download from \(downloadFrom) is higher or same as dowload to \(downloadTo). All blocks are probably downloaded. Exiting.
111
+ """)
112
+ isDownloading = false
113
+ task = nil
114
+ return
115
+ }
116
+
117
+ let range = downloadFrom...downloadTo
118
+ let maxAmountBlocksDownloadedByStream = Constants.rebuildStreamAfterBatchesCount * batchSize
119
+ let createNewStream =
120
+ self.downloadStream == nil ||
121
+ range.lowerBound - downloadStreamCreatedAtRange.lowerBound >= maxAmountBlocksDownloadedByStream ||
122
+ downloadTo >= downloadStreamCreatedAtRange.upperBound
123
+
124
+ let downloadStream: BlockDownloaderStream
125
+ if let stream = self.downloadStream, !createNewStream {
126
+ downloadStream = stream
127
+ } else {
128
+ // In case that limit is larger than Constants.rebuildStreamAfterBatchesCount * batchSize we need to set upper bound of the range like
129
+ // this. This is not normal operational mode but something can request to download whole sync range at one go for example.
130
+ let streamRange = range.lowerBound...max(downloadToHeight, range.lowerBound + maxAmountBlocksDownloadedByStream)
131
+ logger.debug("Creating new stream for range \(streamRange.lowerBound)...\(streamRange.upperBound)")
132
+
133
+ downloadStreamCreatedAtRange = streamRange
134
+ let stream = service.blockStream(startHeight: streamRange.lowerBound, endHeight: streamRange.upperBound)
135
+ downloadStream = BlockDownloaderStream(stream: stream)
136
+ self.downloadStream = downloadStream
137
+ }
138
+
139
+ logger.debug("""
140
+ Starting downloading blocks.
141
+ syncRange: \(syncRange.lowerBound)...\(syncRange.upperBound)
142
+ downloadToHeight: \(downloadToHeight)
143
+ latestDownloadedBlockHeight: \(latestDownloadedBlockHeight)
144
+ range: \(range.lowerBound)...\(range.upperBound)
145
+ """)
146
+
147
+ try await downloadAndStoreBlocks(
148
+ using: downloadStream,
149
+ at: range,
150
+ maxBlockBufferSize: maxBlockBufferSize,
151
+ totalProgressRange: syncRange
152
+ )
153
+
154
+ task = nil
155
+ if downloadToHeight > range.upperBound {
156
+ logger.debug("""
157
+ Finished downloading with range: \(range.lowerBound)...\(range.upperBound). Going to start new download.
158
+ range upper bound: \(range.upperBound)
159
+ new downloadToHeight: \(downloadToHeight)
160
+ """)
161
+ await startDownload(maxBlockBufferSize: maxBlockBufferSize)
162
+ logger.debug("finishing after start download")
163
+ } else {
164
+ logger.debug("Finished downloading with range: \(range.lowerBound)...\(range.upperBound)")
165
+ isDownloading = false
166
+ }
167
+ } catch {
168
+ if Task.isCancelled {
169
+ logger.debug("Blocks downloading canceled.")
170
+ } else {
171
+ lastError = error
172
+ logger.error("Blocks downloading failed: \(error)")
173
+ }
174
+ isDownloading = false
175
+ task = nil
176
+ }
177
+ }
178
+
179
+ private func compactBlocksDownloadStream(startHeight: BlockHeight, targetHeight: BlockHeight) async throws -> BlockDownloaderStream {
180
+ try Task.checkCancellation()
181
+ let stream = service.blockStream(startHeight: startHeight, endHeight: targetHeight)
182
+ return BlockDownloaderStream(stream: stream)
183
+ }
184
+
185
+ private func downloadAndStoreBlocks(
186
+ using stream: BlockDownloaderStream,
187
+ at range: CompactBlockRange,
188
+ maxBlockBufferSize: Int,
189
+ totalProgressRange: CompactBlockRange
190
+ ) async throws {
191
+ var buffer: [ZcashCompactBlock] = []
192
+ logger.debug("Downloading blocks in range: \(range.lowerBound)...\(range.upperBound)")
193
+
194
+ var startTime = Date()
195
+ var counter = 0
196
+ var lastDownloadedBlockHeight = -1
197
+
198
+ let pushMetrics: (BlockHeight, Date, Date) -> Void = { [metrics] lastDownloadedBlockHeight, startTime, finishTime in
199
+ metrics.pushProgressReport(
200
+ progress: BlockProgress(
201
+ startHeight: totalProgressRange.lowerBound,
202
+ targetHeight: totalProgressRange.upperBound,
203
+ progressHeight: Int(lastDownloadedBlockHeight)
204
+ ),
205
+ start: startTime,
206
+ end: finishTime,
207
+ batchSize: maxBlockBufferSize,
208
+ operation: .downloadBlocks
209
+ )
210
+ }
211
+
212
+ for _ in stride(from: range.lowerBound, to: range.upperBound + 1, by: 1) {
213
+ try Task.checkCancellation()
214
+ guard let block = try await stream.nextBlock() else { break }
215
+
216
+ counter += 1
217
+ lastDownloadedBlockHeight = block.height
218
+
219
+ buffer.append(block)
220
+ if buffer.count >= maxBlockBufferSize {
221
+ let finishTime = Date()
222
+ try await storage.write(blocks: buffer)
223
+ await blocksBufferWritten(buffer)
224
+ buffer.removeAll(keepingCapacity: true)
225
+
226
+ pushMetrics(block.height, startTime, finishTime)
227
+
228
+ counter = 0
229
+ startTime = finishTime
230
+ }
231
+ }
232
+
233
+ if counter > 0 {
234
+ pushMetrics(lastDownloadedBlockHeight, startTime, Date())
235
+ }
236
+
237
+ try await storage.write(blocks: buffer)
238
+ await blocksBufferWritten(buffer)
239
+ }
240
+
241
+ private func blocksBufferWritten(_ buffer: [ZcashCompactBlock]) async {
242
+ guard let lastBlock = buffer.last else { return }
243
+ await internalSyncProgress.set(lastBlock.height, .latestDownloadedBlockHeight)
244
+ }
245
+ }
246
+
247
+ extension BlockDownloaderImpl: BlockDownloader {
248
+ func setDownloadLimit(_ limit: BlockHeight) async {
249
+ downloadToHeight = limit
250
+ }
251
+
252
+ func setSyncRange(_ range: CompactBlockRange, batchSize: Int) async throws {
253
+ downloadStream = nil
254
+ self.batchSize = batchSize
255
+ syncRange = range
256
+ }
257
+
258
+ func startDownload(maxBlockBufferSize: Int) async {
259
+ guard task == nil else {
260
+ logger.debug("Download already in progress.")
261
+ return
262
+ }
263
+ isDownloading = true
264
+ task = Task.detached() { [weak self] in
265
+ // Solve when self is nil, task should be niled.
266
+ await self?.doDownload(maxBlockBufferSize: maxBlockBufferSize)
267
+ }
268
+ }
269
+
270
+ func stopDownload() async {
271
+ task?.cancel()
272
+ task = nil
273
+ while isDownloading {
274
+ do {
275
+ try await Task.sleep(milliseconds: 10)
276
+ } catch {
277
+ break
278
+ }
279
+ }
280
+ downloadStream = nil
281
+ }
282
+
283
+ func waitUntilRequestedBlocksAreDownloaded(in range: CompactBlockRange) async throws {
284
+ logger.debug("Waiting until requested blocks are downloaded at \(range)")
285
+ var latestDownloadedBlock = await internalSyncProgress.load(.latestDownloadedBlockHeight)
286
+ while latestDownloadedBlock < range.upperBound {
287
+ if let error = lastError {
288
+ throw error
289
+ }
290
+ try await Task.sleep(milliseconds: 10)
291
+ latestDownloadedBlock = await internalSyncProgress.load(.latestDownloadedBlockHeight)
292
+ }
293
+ logger.debug("Waiting done. Blocks are downloaded at \(range)")
294
+ }
295
+ }
@@ -0,0 +1,117 @@
1
+ //
2
+ // BlockDownloader.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 17/09/2019.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ enum BlockDownloaderServiceError: Error {
12
+ case timeout
13
+ case generalError(error: Error)
14
+ }
15
+ /**
16
+ Represents what a compact block downloaded should provide to its clients
17
+ */
18
+ protocol BlockDownloaderService {
19
+ var storage: CompactBlockRepository { get }
20
+
21
+ /**
22
+ Downloads and stores the given block range.
23
+ */
24
+ func downloadBlockRange(_ heightRange: CompactBlockRange) async throws
25
+
26
+ /**
27
+ Restore the download progress up to the given height.
28
+ */
29
+ func rewind(to height: BlockHeight) async throws
30
+
31
+ /**
32
+ Returns the height of the latest compact block stored locally.
33
+ BlockHeight.empty() if no blocks are stored yet
34
+ */
35
+ func lastDownloadedBlockHeight() async throws -> BlockHeight
36
+
37
+ /**
38
+ Returns the latest block height
39
+ */
40
+ func latestBlockHeight() async throws -> BlockHeight
41
+
42
+ /**
43
+ Gets the transaction for the Id given
44
+ - Parameter txId: Data representing the transaction Id
45
+ */
46
+ func fetchTransaction(txId: Data) async throws -> ZcashTransaction.Fetched
47
+
48
+ func fetchUnspentTransactionOutputs(tAddress: String, startHeight: BlockHeight) -> AsyncThrowingStream<UnspentTransactionOutputEntity, Error>
49
+
50
+ func fetchUnspentTransactionOutputs(tAddresses: [String], startHeight: BlockHeight) -> AsyncThrowingStream<UnspentTransactionOutputEntity, Error>
51
+
52
+ func closeConnection()
53
+ }
54
+
55
+ /**
56
+ Serves as a source of compact blocks received from the light wallet server. Once started, it will use the given
57
+ lightwallet service to request all the appropriate blocks and compact block store to persist them. By delegating to
58
+ these dependencies, the downloader remains agnostic to the particular implementation of how to retrieve and store
59
+ data; although, by default the SDK uses gRPC and SQL.
60
+ - Property lightwalletService: the service used for requesting compact blocks
61
+ - Property storage: responsible for persisting the compact blocks that are received
62
+ */
63
+ class BlockDownloaderServiceImpl {
64
+ let lightwalletService: LightWalletService
65
+ let storage: CompactBlockRepository
66
+
67
+ init(service: LightWalletService, storage: CompactBlockRepository) {
68
+ self.lightwalletService = service
69
+ self.storage = storage
70
+ }
71
+ }
72
+
73
+ extension BlockDownloaderServiceImpl: BlockDownloaderService {
74
+ func closeConnection() {
75
+ lightwalletService.closeConnection()
76
+ }
77
+
78
+ func fetchUnspentTransactionOutputs(
79
+ tAddresses: [String],
80
+ startHeight: BlockHeight
81
+ ) -> AsyncThrowingStream<UnspentTransactionOutputEntity, Error> {
82
+ lightwalletService.fetchUTXOs(for: tAddresses, height: startHeight)
83
+ }
84
+
85
+ func fetchUnspentTransactionOutputs(tAddress: String, startHeight: BlockHeight) -> AsyncThrowingStream<UnspentTransactionOutputEntity, Error> {
86
+ lightwalletService.fetchUTXOs(for: tAddress, height: startHeight)
87
+ }
88
+
89
+ func latestBlockHeight() async throws -> BlockHeight {
90
+ try await lightwalletService.latestBlockHeight()
91
+ }
92
+
93
+ func downloadBlockRange( _ heightRange: CompactBlockRange) async throws {
94
+ let stream: AsyncThrowingStream<ZcashCompactBlock, Error> = lightwalletService.blockRange(heightRange)
95
+ do {
96
+ var compactBlocks: [ZcashCompactBlock] = []
97
+ for try await compactBlock in stream {
98
+ compactBlocks.append(compactBlock)
99
+ }
100
+ try await self.storage.write(blocks: compactBlocks)
101
+ } catch {
102
+ throw ZcashError.blockDownloaderServiceDownloadBlockRange(error)
103
+ }
104
+ }
105
+
106
+ func rewind(to height: BlockHeight) async throws {
107
+ try await self.storage.rewind(to: height)
108
+ }
109
+
110
+ func lastDownloadedBlockHeight() async -> BlockHeight {
111
+ await self.storage.latestHeight()
112
+ }
113
+
114
+ func fetchTransaction(txId: Data) async throws -> ZcashTransaction.Fetched {
115
+ try await lightwalletService.fetchTransaction(txId: txId)
116
+ }
117
+ }
@@ -0,0 +1,123 @@
1
+ //
2
+ // CompactBlockEnhancement.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 4/10/20.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ protocol BlockEnhancer {
11
+ func enhance(at range: CompactBlockRange, didEnhance: (EnhancementProgress) async -> Void) async throws -> [ZcashTransaction.Overview]?
12
+ }
13
+
14
+ struct BlockEnhancerImpl {
15
+ let blockDownloaderService: BlockDownloaderService
16
+ let internalSyncProgress: InternalSyncProgress
17
+ let rustBackend: ZcashRustBackendWelding
18
+ let transactionRepository: TransactionRepository
19
+ let metrics: SDKMetrics
20
+ let logger: Logger
21
+
22
+ private func enhance(transaction: ZcashTransaction.Overview) async throws -> ZcashTransaction.Overview {
23
+ logger.debug("Zoom.... Enhance... Tx: \(transaction.rawID.toHexStringTxId())")
24
+
25
+ let fetchedTransaction = try await blockDownloaderService.fetchTransaction(txId: transaction.rawID)
26
+
27
+ let transactionID = fetchedTransaction.rawID.toHexStringTxId()
28
+ let block = String(describing: transaction.minedHeight)
29
+ logger.debug("Decrypting and storing transaction id: \(transactionID) block: \(block)")
30
+
31
+ try await rustBackend.decryptAndStoreTransaction(
32
+ txBytes: fetchedTransaction.raw.bytes,
33
+ minedHeight: Int32(fetchedTransaction.minedHeight)
34
+ )
35
+
36
+ return try await transactionRepository.find(rawID: fetchedTransaction.rawID)
37
+ }
38
+ }
39
+
40
+ extension BlockEnhancerImpl: BlockEnhancer {
41
+ func enhance(at range: CompactBlockRange, didEnhance: (EnhancementProgress) async -> Void) async throws -> [ZcashTransaction.Overview]? {
42
+ try Task.checkCancellation()
43
+
44
+ logger.debug("Started Enhancing range: \(range)")
45
+
46
+ var retries = 0
47
+ let maxRetries = 5
48
+
49
+ // fetch transactions
50
+ do {
51
+ let startTime = Date()
52
+ let transactions = try await transactionRepository.find(in: range, limit: Int.max, kind: .all)
53
+
54
+ guard !transactions.isEmpty else {
55
+ await internalSyncProgress.set(range.upperBound, .latestEnhancedHeight)
56
+ logger.debug("no transactions detected on range: \(range.lowerBound)...\(range.upperBound)")
57
+ return nil
58
+ }
59
+
60
+ let chainTipHeight = try await blockDownloaderService.latestBlockHeight()
61
+
62
+ let newlyMinedLowerBound = chainTipHeight - ZcashSDK.expiryOffset
63
+
64
+ let newlyMinedRange = newlyMinedLowerBound...chainTipHeight
65
+
66
+ for index in 0 ..< transactions.count {
67
+ let transaction = transactions[index]
68
+ var retry = true
69
+
70
+ while retry && retries < maxRetries {
71
+ try Task.checkCancellation()
72
+ do {
73
+ let confirmedTx = try await enhance(transaction: transaction)
74
+ retry = false
75
+
76
+ let progress = EnhancementProgress(
77
+ totalTransactions: transactions.count,
78
+ enhancedTransactions: index + 1,
79
+ lastFoundTransaction: confirmedTx,
80
+ range: range,
81
+ newlyMined: confirmedTx.isSentTransaction && newlyMinedRange.contains(confirmedTx.minedHeight ?? 0)
82
+ )
83
+
84
+ await didEnhance(progress)
85
+
86
+ if let minedHeight = confirmedTx.minedHeight {
87
+ await internalSyncProgress.set(minedHeight, .latestEnhancedHeight)
88
+ }
89
+ } catch {
90
+ retries += 1
91
+ logger.error("could not enhance txId \(transaction.rawID.toHexStringTxId()) - Error: \(error)")
92
+ if retries > maxRetries {
93
+ throw error
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ metrics.pushProgressReport(
100
+ progress: BlockProgress(
101
+ startHeight: range.lowerBound,
102
+ targetHeight: range.upperBound,
103
+ progressHeight: range.upperBound
104
+ ),
105
+ start: startTime,
106
+ end: Date(),
107
+ batchSize: range.count,
108
+ operation: .enhancement
109
+ )
110
+ } catch {
111
+ logger.error("error enhancing transactions! \(error)")
112
+ throw error
113
+ }
114
+
115
+ await internalSyncProgress.set(range.upperBound, .latestEnhancedHeight)
116
+
117
+ if Task.isCancelled {
118
+ logger.debug("Warning: compactBlockEnhancement on range \(range) cancelled")
119
+ }
120
+
121
+ return (try? await transactionRepository.find(in: range, limit: Int.max, kind: .all))
122
+ }
123
+ }