react-native-zcash 0.3.4 → 0.3.5

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 (427) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +22 -0
  3. package/README.md +44 -44
  4. package/android/build.gradle +1 -1
  5. package/ios/RNZcash.m +0 -1
  6. package/ios/RNZcash.swift +14 -15
  7. package/ios/ZCashLightClientKit/Block/DatabaseStorage/CompactBlockStorage.swift +123 -0
  8. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseMigrationManager.swift +222 -0
  9. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageError.swift +22 -0
  10. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageManager.swift +73 -0
  11. package/ios/ZCashLightClientKit/Block/Downloader/BlockDownloader.swift +240 -0
  12. package/ios/ZCashLightClientKit/Block/Downloader/CompactBlockDownloaderBuilder.swift +26 -0
  13. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockDownloadOperation.swift +258 -0
  14. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockEnhancementOperation.swift +157 -0
  15. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockProcessor.swift +1454 -0
  16. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockScanningOperation.swift +238 -0
  17. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockValidationInformation.swift +66 -0
  18. package/ios/ZCashLightClientKit/Block/Processor/FetchUnspentTxOutputsOperation.swift +103 -0
  19. package/ios/ZCashLightClientKit/Block/Processor/FigureNextBatchOperation.swift +58 -0
  20. package/ios/ZCashLightClientKit/Block/Processor/ZcashOperation.swift +68 -0
  21. package/ios/ZCashLightClientKit/Constants/WalletBirthday+Constants.swift +58 -0
  22. package/ios/ZCashLightClientKit/Constants/WalletBirthday+mainnet.swift +20 -0
  23. package/ios/ZCashLightClientKit/Constants/WalletBirthday+testnet.swift +20 -0
  24. package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +245 -0
  25. package/ios/ZCashLightClientKit/DAO/BlockDao.swift +67 -0
  26. package/ios/ZCashLightClientKit/DAO/CompactBlockDAO.swift +24 -0
  27. package/ios/ZCashLightClientKit/DAO/NotesDao.swift +142 -0
  28. package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +62 -0
  29. package/ios/ZCashLightClientKit/DAO/PendingTransactionDao.swift +213 -0
  30. package/ios/ZCashLightClientKit/DAO/TransactionBuilder.swift +169 -0
  31. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +393 -0
  32. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +188 -0
  33. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +201 -0
  34. package/ios/ZCashLightClientKit/Entity/CompactBlockEntity.swift +13 -0
  35. package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +26 -0
  36. package/ios/ZCashLightClientKit/Entity/PendingTransactionEntity.swift +205 -0
  37. package/ios/ZCashLightClientKit/Entity/ReceivedNoteEntity.swift +22 -0
  38. package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +45 -0
  39. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +161 -0
  40. package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +17 -0
  41. package/ios/ZCashLightClientKit/Extensions/Data+Zcash.swift +17 -0
  42. package/ios/ZCashLightClientKit/Extensions/Data+internal.swift +35 -0
  43. package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +41 -0
  44. package/ios/ZCashLightClientKit/Extensions/ZcashRust+Utils.swift +26 -0
  45. package/ios/ZCashLightClientKit/Extensions/ZcashSDK+extensions.swift +34 -0
  46. package/ios/ZCashLightClientKit/Initializer.swift +357 -0
  47. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +108 -0
  48. package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +47 -0
  49. package/ios/ZCashLightClientKit/Repository/BlockRepository.swift +13 -0
  50. package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +75 -0
  51. package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +16 -0
  52. package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +35 -0
  53. package/ios/ZCashLightClientKit/Repository/PendingTransactionRepository.swift +19 -0
  54. package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +30 -0
  55. package/ios/ZCashLightClientKit/Repository/TransactionRepositoryBuilder.swift +24 -0
  56. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +18 -0
  57. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1000000.json +7 -0
  58. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1010000.json +7 -0
  59. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1020000.json +7 -0
  60. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1030000.json +7 -0
  61. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1040000.json +7 -0
  62. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1050000.json +7 -0
  63. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1060000.json +7 -0
  64. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1070000.json +7 -0
  65. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1080000.json +7 -0
  66. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1090000.json +7 -0
  67. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1100000.json +7 -0
  68. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1110000.json +7 -0
  69. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1120000.json +7 -0
  70. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1130000.json +7 -0
  71. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1140000.json +7 -0
  72. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1150000.json +7 -0
  73. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1160000.json +7 -0
  74. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1170000.json +7 -0
  75. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1180000.json +7 -0
  76. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1190000.json +7 -0
  77. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1200000.json +7 -0
  78. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1210000.json +7 -0
  79. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1220000.json +7 -0
  80. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1230000.json +7 -0
  81. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1240000.json +7 -0
  82. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1250000.json +7 -0
  83. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1260000.json +7 -0
  84. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1270000.json +7 -0
  85. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1280000.json +7 -0
  86. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1290000.json +7 -0
  87. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1300000.json +7 -0
  88. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1310000.json +7 -0
  89. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1320000.json +7 -0
  90. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1330000.json +7 -0
  91. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1340000.json +7 -0
  92. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1350000.json +7 -0
  93. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1360000.json +7 -0
  94. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1370000.json +7 -0
  95. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1380000.json +7 -0
  96. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1390000.json +7 -0
  97. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1400000.json +7 -0
  98. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1410000.json +7 -0
  99. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1420000.json +7 -0
  100. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1430000.json +7 -0
  101. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1440000.json +7 -0
  102. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1450000.json +7 -0
  103. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1460000.json +7 -0
  104. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1470000.json +7 -0
  105. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1480000.json +7 -0
  106. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1490000.json +7 -0
  107. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1500000.json +7 -0
  108. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1510000.json +7 -0
  109. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1520000.json +7 -0
  110. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1530000.json +7 -0
  111. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1540000.json +7 -0
  112. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1550000.json +7 -0
  113. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1560000.json +7 -0
  114. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1570000.json +7 -0
  115. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1580000.json +7 -0
  116. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1590000.json +7 -0
  117. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1600000.json +7 -0
  118. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1610000.json +7 -0
  119. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1620000.json +7 -0
  120. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1630000.json +7 -0
  121. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1640000.json +7 -0
  122. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1650000.json +7 -0
  123. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1660000.json +7 -0
  124. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1670000.json +7 -0
  125. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1680000.json +7 -0
  126. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1690000.json +7 -0
  127. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1700000.json +7 -0
  128. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1710000.json +7 -0
  129. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1720000.json +7 -0
  130. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1730000.json +7 -0
  131. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1740000.json +7 -0
  132. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1750000.json +7 -0
  133. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1760000.json +7 -0
  134. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1770000.json +7 -0
  135. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1780000.json +7 -0
  136. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1790000.json +7 -0
  137. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1800000.json +7 -0
  138. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1810000.json +7 -0
  139. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1820000.json +7 -0
  140. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1830000.json +7 -0
  141. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1840000.json +7 -0
  142. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1850000.json +7 -0
  143. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1860000.json +7 -0
  144. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1870000.json +7 -0
  145. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1880000.json +7 -0
  146. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1890000.json +7 -0
  147. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1900000.json +7 -0
  148. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1910000.json +7 -0
  149. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1920000.json +7 -0
  150. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1930000.json +7 -0
  151. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1940000.json +7 -0
  152. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1950000.json +7 -0
  153. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1960000.json +7 -0
  154. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1970000.json +7 -0
  155. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1980000.json +7 -0
  156. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1990000.json +7 -0
  157. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2000000.json +7 -0
  158. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2010000.json +7 -0
  159. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2020000.json +7 -0
  160. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2030000.json +7 -0
  161. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2040000.json +7 -0
  162. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2050000.json +7 -0
  163. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2060000.json +7 -0
  164. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2070000.json +7 -0
  165. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2080000.json +7 -0
  166. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2090000.json +7 -0
  167. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2100000.json +7 -0
  168. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2110000.json +7 -0
  169. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2120000.json +7 -0
  170. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2130000.json +7 -0
  171. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2140000.json +7 -0
  172. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2150000.json +7 -0
  173. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2160000.json +7 -0
  174. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2170000.json +7 -0
  175. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/419200.json +7 -0
  176. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/500000.json +7 -0
  177. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/510000.json +7 -0
  178. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/520000.json +7 -0
  179. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/530000.json +7 -0
  180. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/540000.json +7 -0
  181. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/550000.json +7 -0
  182. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/560000.json +7 -0
  183. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/570000.json +7 -0
  184. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/580000.json +7 -0
  185. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/590000.json +7 -0
  186. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/600000.json +7 -0
  187. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/610000.json +7 -0
  188. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/620000.json +7 -0
  189. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/630000.json +7 -0
  190. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/640000.json +7 -0
  191. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/650000.json +7 -0
  192. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/660000.json +7 -0
  193. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/663150.json +8 -0
  194. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/670000.json +7 -0
  195. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/680000.json +7 -0
  196. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/690000.json +7 -0
  197. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/700000.json +7 -0
  198. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/710000.json +7 -0
  199. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/720000.json +7 -0
  200. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/730000.json +7 -0
  201. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/740000.json +7 -0
  202. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/750000.json +7 -0
  203. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/760000.json +7 -0
  204. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/770000.json +7 -0
  205. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/780000.json +7 -0
  206. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/790000.json +7 -0
  207. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/800000.json +7 -0
  208. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/810000.json +7 -0
  209. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/820000.json +7 -0
  210. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/830000.json +7 -0
  211. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/840000.json +7 -0
  212. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/850000.json +7 -0
  213. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/860000.json +7 -0
  214. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/870000.json +7 -0
  215. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/880000.json +7 -0
  216. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/890000.json +7 -0
  217. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/900000.json +7 -0
  218. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/910000.json +7 -0
  219. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/920000.json +7 -0
  220. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/930000.json +7 -0
  221. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/940000.json +7 -0
  222. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/950000.json +7 -0
  223. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/960000.json +7 -0
  224. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/970000.json +7 -0
  225. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/980000.json +7 -0
  226. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/990000.json +7 -0
  227. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1000000.json +7 -0
  228. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1010000.json +7 -0
  229. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1020000.json +7 -0
  230. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1030000.json +7 -0
  231. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1040000.json +7 -0
  232. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1050000.json +7 -0
  233. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1060000.json +7 -0
  234. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1070000.json +7 -0
  235. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1080000.json +7 -0
  236. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1090000.json +7 -0
  237. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1100000.json +7 -0
  238. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1110000.json +7 -0
  239. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1120000.json +7 -0
  240. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1130000.json +7 -0
  241. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1140000.json +7 -0
  242. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1150000.json +7 -0
  243. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1160000.json +7 -0
  244. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1170000.json +7 -0
  245. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1180000.json +7 -0
  246. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1190000.json +7 -0
  247. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1200000.json +7 -0
  248. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1210000.json +7 -0
  249. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1220000.json +7 -0
  250. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1230000.json +7 -0
  251. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1240000.json +7 -0
  252. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1250000.json +7 -0
  253. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1260000.json +7 -0
  254. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1270000.json +7 -0
  255. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1280000.json +7 -0
  256. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1290000.json +7 -0
  257. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1300000.json +7 -0
  258. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1310000.json +7 -0
  259. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1320000.json +7 -0
  260. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1330000.json +7 -0
  261. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1340000.json +7 -0
  262. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1350000.json +7 -0
  263. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1360000.json +7 -0
  264. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1370000.json +7 -0
  265. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1380000.json +7 -0
  266. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1390000.json +7 -0
  267. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1400000.json +7 -0
  268. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1410000.json +7 -0
  269. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1420000.json +7 -0
  270. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1430000.json +7 -0
  271. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1440000.json +7 -0
  272. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1450000.json +7 -0
  273. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1460000.json +7 -0
  274. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1470000.json +7 -0
  275. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1480000.json +7 -0
  276. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1490000.json +7 -0
  277. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1500000.json +7 -0
  278. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1510000.json +7 -0
  279. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1520000.json +7 -0
  280. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1530000.json +7 -0
  281. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1540000.json +7 -0
  282. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1550000.json +7 -0
  283. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1560000.json +7 -0
  284. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1570000.json +7 -0
  285. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1580000.json +7 -0
  286. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1590000.json +7 -0
  287. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1600000.json +7 -0
  288. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1610000.json +7 -0
  289. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1620000.json +7 -0
  290. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1630000.json +7 -0
  291. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1640000.json +7 -0
  292. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1650000.json +7 -0
  293. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1660000.json +7 -0
  294. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1670000.json +7 -0
  295. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1680000.json +7 -0
  296. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1690000.json +7 -0
  297. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1700000.json +7 -0
  298. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1710000.json +7 -0
  299. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1720000.json +7 -0
  300. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1730000.json +7 -0
  301. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1740000.json +7 -0
  302. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1750000.json +7 -0
  303. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1760000.json +7 -0
  304. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1770000.json +7 -0
  305. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1780000.json +7 -0
  306. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1790000.json +7 -0
  307. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1800000.json +7 -0
  308. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1810000.json +7 -0
  309. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1820000.json +7 -0
  310. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1830000.json +7 -0
  311. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1840000.json +7 -0
  312. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1850000.json +7 -0
  313. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1860000.json +7 -0
  314. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/280000.json +7 -0
  315. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/290000.json +7 -0
  316. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/300000.json +7 -0
  317. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/310000.json +7 -0
  318. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/320000.json +7 -0
  319. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/330000.json +7 -0
  320. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/340000.json +7 -0
  321. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/350000.json +7 -0
  322. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/360000.json +7 -0
  323. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/370000.json +7 -0
  324. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/380000.json +7 -0
  325. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/390000.json +7 -0
  326. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/400000.json +7 -0
  327. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/410000.json +7 -0
  328. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/420000.json +7 -0
  329. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/430000.json +7 -0
  330. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/440000.json +7 -0
  331. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/450000.json +7 -0
  332. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/460000.json +7 -0
  333. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/470000.json +7 -0
  334. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/480000.json +7 -0
  335. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/490000.json +7 -0
  336. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/500000.json +7 -0
  337. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/510000.json +7 -0
  338. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/520000.json +7 -0
  339. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/530000.json +7 -0
  340. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/540000.json +7 -0
  341. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/550000.json +7 -0
  342. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/560000.json +7 -0
  343. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/570000.json +7 -0
  344. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/580000.json +7 -0
  345. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/590000.json +7 -0
  346. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/600000.json +7 -0
  347. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/610000.json +7 -0
  348. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/620000.json +7 -0
  349. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/630000.json +7 -0
  350. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/640000.json +7 -0
  351. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/650000.json +7 -0
  352. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/660000.json +7 -0
  353. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/670000.json +7 -0
  354. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/680000.json +7 -0
  355. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/690000.json +7 -0
  356. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/700000.json +7 -0
  357. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/710000.json +7 -0
  358. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/720000.json +7 -0
  359. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/730000.json +7 -0
  360. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/740000.json +7 -0
  361. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/750000.json +7 -0
  362. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/760000.json +7 -0
  363. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/770000.json +7 -0
  364. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/780000.json +7 -0
  365. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/790000.json +7 -0
  366. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/800000.json +7 -0
  367. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/810000.json +7 -0
  368. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/820000.json +7 -0
  369. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/830000.json +7 -0
  370. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/840000.json +7 -0
  371. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/850000.json +7 -0
  372. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/860000.json +7 -0
  373. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/870000.json +7 -0
  374. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/880000.json +7 -0
  375. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/890000.json +7 -0
  376. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/900000.json +7 -0
  377. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/910000.json +7 -0
  378. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/920000.json +7 -0
  379. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/930000.json +7 -0
  380. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/940000.json +7 -0
  381. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/950000.json +7 -0
  382. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/960000.json +7 -0
  383. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/970000.json +7 -0
  384. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/980000.json +7 -0
  385. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/990000.json +7 -0
  386. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +718 -0
  387. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +389 -0
  388. package/ios/ZCashLightClientKit/Rust/zcashlc.h +385 -0
  389. package/ios/ZCashLightClientKit/Service/LightWalletGRPCService.swift +551 -0
  390. package/ios/ZCashLightClientKit/Service/LightWalletService.swift +214 -0
  391. package/ios/ZCashLightClientKit/Service/Model/ZcashCompactBlock.swift +46 -0
  392. package/ios/ZCashLightClientKit/Service/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
  393. package/ios/ZCashLightClientKit/Service/ProtoBuf/compact_formats.pb.swift +332 -0
  394. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/compact_formats.proto +56 -0
  395. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/service.proto +180 -0
  396. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.grpc.swift +383 -0
  397. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.pb.swift +1173 -0
  398. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +929 -0
  399. package/ios/ZCashLightClientKit/Synchronizer.swift +430 -0
  400. package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +344 -0
  401. package/ios/ZCashLightClientKit/Transaction/PersistentTransactionManager.swift +339 -0
  402. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +116 -0
  403. package/ios/ZCashLightClientKit/Transaction/TransactionManager.swift +42 -0
  404. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +216 -0
  405. package/ios/ZCashLightClientKit/Utils/Bundle+module.swift +30 -0
  406. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +47 -0
  407. package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +124 -0
  408. package/ios/libzcashlc.xcframework/Info.plist +40 -0
  409. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  410. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  411. package/ios/react-native-zcash-Bridging-Header.h +2 -0
  412. package/ios/react-native-zcash.xcodeproj/project.pbxproj +1 -0
  413. package/lib/scripts/copyCheckpoints.d.ts +5 -0
  414. package/lib/scripts/updateSources.d.ts +1 -0
  415. package/package.json +20 -37
  416. package/react-native-zcash.podspec +17 -7
  417. package/ios/RNZcash-Bridging-Header.h +0 -6
  418. package/ios/RNZcash.xcodeproj/project.pbxproj +0 -271
  419. package/ios/RNZcash.xcworkspace/contents.xcworkspacedata +0 -7
  420. package/ios/RNZcash.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  421. package/lib/src/browser.d.ts +0 -0
  422. package/lib/src/index.d.ts +0 -0
  423. package/lib/test/test.test.d.ts +0 -0
  424. package/scripts/copyCheckpoints.js +0 -12
  425. package/src/browser.ts +0 -36
  426. package/src/index.flow.js +0 -168
  427. package/src/index.ts +0 -1
@@ -0,0 +1,238 @@
1
+ //
2
+ // CompactBlockProcessingOperation.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/15/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ class CompactBlockScanningOperation: ZcashOperation {
12
+ override var isConcurrent: Bool { false }
13
+
14
+ override var isAsynchronous: Bool { false }
15
+
16
+ var rustBackend: ZcashRustBackendWelding.Type
17
+
18
+ private var cacheDb: URL
19
+ private var dataDb: URL
20
+ private var limit: UInt32
21
+ private var network: NetworkType
22
+ init(rustWelding: ZcashRustBackendWelding.Type, cacheDb: URL, dataDb: URL, limit: UInt32 = 0, networkType: NetworkType) {
23
+ rustBackend = rustWelding
24
+ self.cacheDb = cacheDb
25
+ self.dataDb = dataDb
26
+ self.limit = limit
27
+ self.network = networkType
28
+ super.init()
29
+ }
30
+
31
+ override func main() {
32
+ guard !shouldCancel() else {
33
+ cancel()
34
+ return
35
+ }
36
+ self.startedHandler?()
37
+ guard self.rustBackend.scanBlocks(dbCache: self.cacheDb, dbData: self.dataDb, limit: limit, networkType: network) else {
38
+ self.error = self.rustBackend.lastError() ?? ZcashOperationError.unknown
39
+ LoggerProxy.debug("block scanning failed with error: \(String(describing: self.error))")
40
+ self.fail()
41
+ return
42
+ }
43
+ }
44
+ }
45
+
46
+ public enum SDKMetrics {
47
+ struct BlockMetricReport {
48
+ var startHeight: BlockHeight
49
+ var targetHeight: BlockHeight
50
+ var duration: TimeInterval
51
+ var task: TaskReported
52
+ }
53
+
54
+ enum TaskReported: String {
55
+ case scanBlocks
56
+ }
57
+
58
+ static let startBlockHeightKey = "SDKMetrics.startBlockHeightKey"
59
+ static let targetBlockHeightKey = "SDKMetrics.targetBlockHeightKey"
60
+ static let progressHeightKey = "SDKMetrics.progressHeight"
61
+ static let startDateKey = "SDKMetrics.startDateKey"
62
+ static let endDateKey = "SDKMetrics.endDateKey"
63
+ static let taskReportedKey = "SDKMetrics.taskReported"
64
+ static let notificationName = Notification.Name("SDKMetrics.Notification")
65
+
66
+ static func blockReportFromNotification(_ notification: Notification) -> BlockMetricReport? {
67
+ guard
68
+ notification.name == notificationName,
69
+ let info = notification.userInfo,
70
+ let startHeight = info[startBlockHeightKey] as? BlockHeight,
71
+ let targetHeight = info[targetBlockHeightKey] as? BlockHeight,
72
+ let task = info[taskReportedKey] as? TaskReported,
73
+ let startDate = info[startDateKey] as? Date,
74
+ let endDate = info[endDateKey] as? Date
75
+ else {
76
+ return nil
77
+ }
78
+
79
+ return BlockMetricReport(
80
+ startHeight: startHeight,
81
+ targetHeight: targetHeight,
82
+ duration: abs(
83
+ startDate.timeIntervalSinceReferenceDate - endDate.timeIntervalSinceReferenceDate
84
+ ),
85
+ task: task
86
+ )
87
+ }
88
+
89
+ static func progressReportNotification(
90
+ progress: BlockProgress,
91
+ start: Date,
92
+ end: Date,
93
+ task: SDKMetrics.TaskReported
94
+ ) -> Notification {
95
+ var notification = Notification(name: notificationName)
96
+ notification.userInfo = [
97
+ startBlockHeightKey: progress.startHeight,
98
+ targetBlockHeightKey: progress.targetHeight,
99
+ progressHeightKey: progress.progressHeight,
100
+ startDateKey: start,
101
+ endDateKey: end,
102
+ taskReportedKey: task
103
+ ]
104
+
105
+ return notification
106
+ }
107
+ }
108
+
109
+ extension String.StringInterpolation {
110
+ mutating func appendInterpolation(_ value: SDKMetrics.BlockMetricReport) {
111
+ let literal = "\(value.task) - \(abs(value.startHeight - value.targetHeight)) processed on \(value.duration) seconds"
112
+ appendLiteral(literal)
113
+ }
114
+ }
115
+
116
+ class CompactBlockBatchScanningOperation: ZcashOperation {
117
+ override var isConcurrent: Bool { false }
118
+ override var isAsynchronous: Bool { false }
119
+
120
+ var rustBackend: ZcashRustBackendWelding.Type
121
+
122
+ private var cacheDb: URL
123
+ private var dataDb: URL
124
+ private var batchSize: UInt32
125
+ private var blockRange: CompactBlockRange
126
+ private var transactionRepository: TransactionRepository
127
+ private var network: NetworkType
128
+
129
+ private weak var progressDelegate: CompactBlockProgressDelegate?
130
+
131
+ init(
132
+ rustWelding: ZcashRustBackendWelding.Type,
133
+ cacheDb: URL,
134
+ dataDb: URL,
135
+ transactionRepository: TransactionRepository,
136
+ range: CompactBlockRange,
137
+ batchSize: UInt32 = 100,
138
+ networkType: NetworkType,
139
+ progressDelegate: CompactBlockProgressDelegate? = nil
140
+ ) {
141
+ rustBackend = rustWelding
142
+ self.cacheDb = cacheDb
143
+ self.dataDb = dataDb
144
+ self.transactionRepository = transactionRepository
145
+ self.blockRange = range
146
+ self.batchSize = batchSize
147
+ self.progressDelegate = progressDelegate
148
+ self.network = networkType
149
+ super.init()
150
+ }
151
+
152
+ override func main() {
153
+ guard !shouldCancel() else {
154
+ cancel()
155
+ return
156
+ }
157
+
158
+ self.startedHandler?()
159
+
160
+ do {
161
+ if batchSize == 0 {
162
+ let scanStartTime = Date()
163
+ guard self.rustBackend.scanBlocks(dbCache: self.cacheDb, dbData: self.dataDb, limit: batchSize, networkType: network) else {
164
+ self.scanFailed(self.rustBackend.lastError() ?? ZcashOperationError.unknown)
165
+ return
166
+ }
167
+ let scanFinishTime = Date()
168
+ NotificationCenter.default.post(
169
+ SDKMetrics.progressReportNotification(
170
+ progress: BlockProgress(
171
+ startHeight: self.blockRange.lowerBound,
172
+ targetHeight: self.blockRange.upperBound,
173
+ progressHeight: self.blockRange.upperBound
174
+ ),
175
+ start: scanStartTime,
176
+ end: scanFinishTime,
177
+ task: .scanBlocks
178
+ )
179
+ )
180
+ let seconds = scanFinishTime.timeIntervalSinceReferenceDate - scanStartTime.timeIntervalSinceReferenceDate
181
+ LoggerProxy.debug("Scanned \(blockRange.count) blocks in \(seconds) seconds")
182
+ } else {
183
+ let scanStartHeight = try transactionRepository.lastScannedHeight()
184
+ let targetScanHeight = blockRange.upperBound
185
+
186
+ var scannedNewBlocks = false
187
+ var lastScannedHeight = scanStartHeight
188
+
189
+ repeat {
190
+ guard !shouldCancel() else {
191
+ cancel()
192
+ return
193
+ }
194
+ let previousScannedHeight = lastScannedHeight
195
+ let scanStartTime = Date()
196
+ guard self.rustBackend.scanBlocks(
197
+ dbCache: self.cacheDb,
198
+ dbData: self.dataDb,
199
+ limit: batchSize,
200
+ networkType: network
201
+ ) else {
202
+ self.scanFailed(self.rustBackend.lastError() ?? ZcashOperationError.unknown)
203
+ return
204
+ }
205
+ let scanFinishTime = Date()
206
+
207
+ lastScannedHeight = try transactionRepository.lastScannedHeight()
208
+
209
+ scannedNewBlocks = previousScannedHeight != lastScannedHeight
210
+ if scannedNewBlocks {
211
+ let progress = BlockProgress(startHeight: scanStartHeight, targetHeight: targetScanHeight, progressHeight: lastScannedHeight)
212
+ progressDelegate?.progressUpdated(.scan(progress))
213
+ NotificationCenter.default.post(
214
+ SDKMetrics.progressReportNotification(
215
+ progress: progress,
216
+ start: scanStartTime,
217
+ end: scanFinishTime,
218
+ task: .scanBlocks
219
+ )
220
+ )
221
+
222
+ let heightCount = lastScannedHeight - previousScannedHeight
223
+ let seconds = scanFinishTime.timeIntervalSinceReferenceDate - scanStartTime.timeIntervalSinceReferenceDate
224
+ LoggerProxy.debug("Scanned \(heightCount) blocks in \(seconds) seconds")
225
+ }
226
+ } while !self.isCancelled && scannedNewBlocks && lastScannedHeight < targetScanHeight
227
+ }
228
+ } catch {
229
+ scanFailed(error)
230
+ }
231
+ }
232
+
233
+ func scanFailed(_ error: Error) {
234
+ self.error = error
235
+ LoggerProxy.debug("block scanning failed with error: \(String(describing: self.error))")
236
+ self.fail()
237
+ }
238
+ }
@@ -0,0 +1,66 @@
1
+ //
2
+ // CompactBlockValidationInformation.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/30/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ enum CompactBlockValidationError: Error {
12
+ case validationFailed(height: BlockHeight)
13
+ case failedWithError(_ error: Error?)
14
+ }
15
+ class CompactBlockValidationOperation: ZcashOperation {
16
+ override var isConcurrent: Bool { false }
17
+
18
+ override var isAsynchronous: Bool { false }
19
+
20
+ var rustBackend: ZcashRustBackendWelding.Type
21
+
22
+ private var cacheDb: URL
23
+ private var dataDb: URL
24
+ private var network: NetworkType
25
+
26
+ init(
27
+ rustWelding: ZcashRustBackendWelding.Type,
28
+ cacheDb: URL,
29
+ dataDb: URL,
30
+ networkType: NetworkType
31
+ ) {
32
+ rustBackend = rustWelding
33
+ self.cacheDb = cacheDb
34
+ self.dataDb = dataDb
35
+ self.network = networkType
36
+ super.init()
37
+ }
38
+
39
+ override func main() {
40
+ guard !shouldCancel() else {
41
+ cancel()
42
+ return
43
+ }
44
+
45
+ self.startedHandler?()
46
+
47
+ let result = self.rustBackend.validateCombinedChain(dbCache: cacheDb, dbData: dataDb, networkType: self.network)
48
+
49
+ switch result {
50
+ case 0:
51
+ let error = CompactBlockValidationError.failedWithError(rustBackend.lastError())
52
+ self.error = error
53
+ LoggerProxy.debug("block scanning failed with error: \(String(describing: self.error))")
54
+ self.fail(error: error)
55
+
56
+ case ZcashRustBackendWeldingConstants.validChain:
57
+ break
58
+
59
+ default:
60
+ let error = CompactBlockValidationError.validationFailed(height: BlockHeight(result))
61
+ self.error = error
62
+ LoggerProxy.debug("block scanning failed with error: \(String(describing: self.error))")
63
+ self.fail(error: error)
64
+ }
65
+ }
66
+ }
@@ -0,0 +1,103 @@
1
+ //
2
+ // FetchUnspentTxOutputsOperation.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 6/2/21.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ class FetchUnspentTxOutputsOperation: ZcashOperation {
11
+ enum FetchUTXOError: Error {
12
+ case clearingFailed(_ error: Error?)
13
+ case fetchFailed(error: Error)
14
+ }
15
+
16
+ override var isConcurrent: Bool { false }
17
+ override var isAsynchronous: Bool { false }
18
+
19
+ var fetchedUTXOsHandler: ((RefreshedUTXOs) -> Void)?
20
+
21
+ private var accountRepository: AccountRepository
22
+ private var downloader: CompactBlockDownloading
23
+ private var rustbackend: ZcashRustBackendWelding.Type
24
+ private var startHeight: BlockHeight
25
+ private var network: NetworkType
26
+ private var dataDb: URL
27
+
28
+ init(
29
+ accountRepository: AccountRepository,
30
+ downloader: CompactBlockDownloading,
31
+ rustbackend: ZcashRustBackendWelding.Type,
32
+ dataDb: URL,
33
+ startHeight: BlockHeight,
34
+ networkType: NetworkType
35
+ ) {
36
+ self.dataDb = dataDb
37
+ self.accountRepository = accountRepository
38
+ self.downloader = downloader
39
+ self.rustbackend = rustbackend
40
+ self.startHeight = startHeight
41
+ self.network = networkType
42
+ }
43
+
44
+ override func main() {
45
+ guard !shouldCancel() else {
46
+ cancel()
47
+ return
48
+ }
49
+
50
+ self.startedHandler?()
51
+
52
+ do {
53
+ let tAddresses = try accountRepository.getAll().map({ $0.transparentAddress })
54
+ do {
55
+ for tAddress in tAddresses {
56
+ guard try self.rustbackend.clearUtxos(
57
+ dbData: dataDb,
58
+ address: tAddress,
59
+ sinceHeight: startHeight - 1,
60
+ networkType: network
61
+ ) >= 0 else {
62
+ throw rustbackend.lastError() ?? RustWeldingError.genericError(message: "attempted to clear utxos but -1 was returned")
63
+ }
64
+ }
65
+ } catch {
66
+ throw FetchUTXOError.clearingFailed(error)
67
+ }
68
+
69
+ let utxos = try downloader.fetchUnspentTransactionOutputs(tAddresses: tAddresses, startHeight: startHeight)
70
+
71
+ let result = storeUTXOs(utxos, in: dataDb)
72
+
73
+ self.fetchedUTXOsHandler?(result)
74
+ } catch {
75
+ self.fail(error: error)
76
+ }
77
+ }
78
+
79
+ private func storeUTXOs(_ utxos: [UnspentTransactionOutputEntity], in dataDb: URL) -> RefreshedUTXOs {
80
+ var refreshed: [UnspentTransactionOutputEntity] = []
81
+ var skipped: [UnspentTransactionOutputEntity] = []
82
+
83
+ for utxo in utxos {
84
+ do {
85
+ try self.rustbackend.putUnspentTransparentOutput(
86
+ dbData: dataDb,
87
+ address: utxo.address,
88
+ txid: utxo.txid.bytes,
89
+ index: utxo.index,
90
+ script: utxo.script.bytes,
91
+ value: Int64(utxo.valueZat),
92
+ height: utxo.height,
93
+ networkType: network
94
+ ) ? refreshed.append(utxo) : skipped.append(utxo)
95
+ } catch {
96
+ LoggerProxy.error("failed to put utxo - error: \(error)")
97
+ skipped.append(utxo)
98
+ }
99
+ }
100
+
101
+ return (inserted: refreshed, skipped: skipped)
102
+ }
103
+ }
@@ -0,0 +1,58 @@
1
+ //
2
+ // FigureNextBatchOperation.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 6/17/21.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ class FigureNextBatchOperation: ZcashOperation {
11
+ enum NextState {
12
+ case finishProcessing(height: BlockHeight)
13
+ case processNewBlocks(range: CompactBlockRange)
14
+ case wait(latestHeight: BlockHeight, latestDownloadHeight: BlockHeight)
15
+ }
16
+
17
+ private var service: LightWalletService
18
+ private var downloader: CompactBlockDownloading
19
+ private var config: CompactBlockProcessor.Configuration
20
+ private var rustBackend: ZcashRustBackendWelding.Type
21
+ private(set) var result: NextState?
22
+
23
+ required init(
24
+ downloader: CompactBlockDownloading,
25
+ service: LightWalletService,
26
+ config: CompactBlockProcessor.Configuration,
27
+ rustBackend: ZcashRustBackendWelding.Type
28
+ ) {
29
+ self.service = service
30
+ self.config = config
31
+ self.downloader = downloader
32
+ self.rustBackend = rustBackend
33
+
34
+ super.init()
35
+
36
+ self.name = "Next Batch Operation"
37
+ }
38
+
39
+ override func main() {
40
+ guard !shouldCancel() else {
41
+ cancel()
42
+ return
43
+ }
44
+
45
+ self.startedHandler?()
46
+
47
+ do {
48
+ result = try CompactBlockProcessor.NextStateHelper.nextState(
49
+ service: self.service,
50
+ downloader: self.downloader,
51
+ config: self.config,
52
+ rustBackend: self.rustBackend
53
+ )
54
+ } catch {
55
+ self.fail(error: error)
56
+ }
57
+ }
58
+ }
@@ -0,0 +1,68 @@
1
+ //
2
+ // ZcashOperation.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/27/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ typealias ZcashOperationCompletionBlock = (_ finished: Bool, _ cancelled: Bool) -> Void
12
+ typealias ZcashOperationStartedBlock = () -> Void
13
+ typealias ZcashOperationErrorBlock = (_ error: Error) -> Void
14
+
15
+ enum ZcashOperationError: Error {
16
+ case unknown
17
+ }
18
+
19
+ class ZcashOperation: Operation {
20
+ var error: Error?
21
+ var startedHandler: ZcashOperationStartedBlock?
22
+ var errorHandler: ZcashOperationErrorBlock?
23
+ var completionHandler: ZcashOperationCompletionBlock?
24
+ var handlerDispatchQueue = DispatchQueue.main
25
+
26
+ override init() {
27
+ super.init()
28
+
29
+ completionBlock = { [weak self] in
30
+ guard let self = self, let handler = self.completionHandler else { return }
31
+
32
+ handler(self.isFinished, self.isCancelled)
33
+ }
34
+ }
35
+
36
+ convenience init(completionDispatchQueue: DispatchQueue = DispatchQueue.main) {
37
+ self.init()
38
+ self.handlerDispatchQueue = completionDispatchQueue
39
+ }
40
+
41
+ func shouldCancel() -> Bool {
42
+ self.error != nil || isCancelled || dependencyCancelled()
43
+ }
44
+
45
+ func dependencyCancelled() -> Bool {
46
+ self.dependencies.first { $0.isCancelled } != nil
47
+ }
48
+
49
+ func fail(error: Error? = nil) {
50
+ defer {
51
+ self.cancel()
52
+ }
53
+
54
+ if let error = error {
55
+ self.error = error
56
+ }
57
+ LoggerProxy.debug("\(self) failed")
58
+
59
+ guard let errorHandler = self.errorHandler else {
60
+ return
61
+ }
62
+
63
+ self.handlerDispatchQueue.async { [weak self] in
64
+ let error = error ?? (self?.error ?? ZcashOperationError.unknown)
65
+ errorHandler(error)
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,58 @@
1
+ //
2
+ // WalletBirthday+Constants.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 7/28/21.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ public extension WalletBirthday {
11
+ static func birthday(with height: BlockHeight, network: ZcashNetwork) -> WalletBirthday {
12
+ switch network.networkType {
13
+ case .mainnet:
14
+ return birthday(with: height, checkpointDirectory: Self.mainnetCheckpointDirectory) ?? .mainnetMin
15
+ case .testnet:
16
+ return birthday(with: height, checkpointDirectory: Self.testnetCheckpointDirectory) ?? .testnetMin
17
+ }
18
+ }
19
+ }
20
+
21
+ extension WalletBirthday {
22
+ static func birthday(with height: BlockHeight, checkpointDirectory: URL) -> WalletBirthday? {
23
+ return bestCheckpointHeight(for: height, checkpointDirectory: checkpointDirectory)
24
+ .flatMap { checkpoint(height: $0, directory: checkpointDirectory) }
25
+ }
26
+
27
+ private static func bestCheckpointHeight(for height: BlockHeight, checkpointDirectory: URL) -> Int? {
28
+ guard let checkPointURLs = try? FileManager.default.contentsOfDirectory(
29
+ at: checkpointDirectory,
30
+ includingPropertiesForKeys: nil,
31
+ options: .skipsHiddenFiles
32
+ ) else {
33
+ return nil
34
+ }
35
+
36
+ return checkPointURLs
37
+ .map { $0.deletingPathExtension() }
38
+ .map(\.lastPathComponent)
39
+ .compactMap(Int.init)
40
+ .filter { $0 <= height }
41
+ .sorted()
42
+ .last
43
+ }
44
+
45
+ private static func checkpoint(height: BlockHeight, directory checkpointDirectory: URL) -> WalletBirthday? {
46
+ let url = checkpointDirectory
47
+ .appendingPathComponent(String(height))
48
+ .appendingPathExtension("json")
49
+
50
+ return try? checkpoint(at: url)
51
+ }
52
+
53
+ private static func checkpoint(at url: URL) throws -> WalletBirthday {
54
+ let data = try Data(contentsOf: url)
55
+ let checkpoint = try JSONDecoder().decode(WalletBirthday.self, from: data)
56
+ return checkpoint
57
+ }
58
+ }
@@ -0,0 +1,20 @@
1
+ //
2
+ // WalletBirthday+mainnet.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 7/28/21.
6
+ //
7
+ // swiftlint:disable function_body_length line_length cyclomatic_complexity
8
+ import Foundation
9
+
10
+ extension WalletBirthday {
11
+ static let mainnetMin = WalletBirthday(
12
+ height: 419_200,
13
+ hash: "00000000025a57200d898ac7f21e26bf29028bbe96ec46e05b2c17cc9db9e4f3",
14
+ time: 1540779337,
15
+ tree: "000000"
16
+ )
17
+
18
+ static let mainnetCheckpointDirectory = Bundle.main.url(forResource: "zcash-mainnet", withExtension: "bundle")!
19
+
20
+ }
@@ -0,0 +1,20 @@
1
+ //
2
+ // WalletBirthday+testnet.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 7/28/21.
6
+ //
7
+ // swiftlint:disable line_length cyclomatic_complexity function_body_length
8
+ import Foundation
9
+
10
+ extension WalletBirthday {
11
+ static let testnetMin = WalletBirthday(
12
+ height: 280000,
13
+ hash: "000420e7fcc3a49d729479fb0b560dd7b8617b178a08e9e389620a9d1dd6361a",
14
+ time: 1535262293,
15
+ tree: "000000"
16
+ )
17
+
18
+ static let testnetCheckpointDirectory = Bundle.main.url(forResource: "zcash-testnet", withExtension: "bundle")!
19
+
20
+ }