react-native-zcash 0.3.5 → 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 (1060) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +10 -7
  3. package/android/build.gradle +6 -4
  4. package/android/src/main/assets/saplingtree/mainnet/1310000.json +1 -1
  5. package/android/src/main/assets/saplingtree/mainnet/1320000.json +1 -1
  6. package/android/src/main/assets/saplingtree/mainnet/1330000.json +1 -1
  7. package/android/src/main/assets/saplingtree/mainnet/1340000.json +1 -1
  8. package/android/src/main/assets/saplingtree/mainnet/1350000.json +1 -1
  9. package/android/src/main/assets/saplingtree/mainnet/1360000.json +1 -1
  10. package/android/src/main/assets/saplingtree/mainnet/1370000.json +1 -1
  11. package/android/src/main/assets/saplingtree/mainnet/1380000.json +1 -1
  12. package/android/src/main/assets/saplingtree/mainnet/1390000.json +1 -1
  13. package/android/src/main/assets/saplingtree/mainnet/1400000.json +1 -1
  14. package/android/src/main/assets/saplingtree/mainnet/1410000.json +1 -1
  15. package/android/src/main/assets/saplingtree/mainnet/1420000.json +1 -1
  16. package/android/src/main/assets/saplingtree/mainnet/1430000.json +1 -1
  17. package/android/src/main/assets/saplingtree/mainnet/1440000.json +1 -1
  18. package/android/src/main/assets/saplingtree/mainnet/1450000.json +1 -1
  19. package/android/src/main/assets/saplingtree/mainnet/1460000.json +1 -1
  20. package/android/src/main/assets/saplingtree/mainnet/1470000.json +1 -1
  21. package/android/src/main/assets/saplingtree/mainnet/1480000.json +1 -1
  22. package/android/src/main/assets/saplingtree/mainnet/1490000.json +1 -1
  23. package/android/src/main/assets/saplingtree/mainnet/1500000.json +1 -1
  24. package/android/src/main/assets/saplingtree/mainnet/1510000.json +1 -1
  25. package/android/src/main/assets/saplingtree/mainnet/1520000.json +1 -1
  26. package/android/src/main/assets/saplingtree/mainnet/1530000.json +1 -1
  27. package/android/src/main/assets/saplingtree/mainnet/1540000.json +1 -1
  28. package/android/src/main/assets/saplingtree/mainnet/1550000.json +1 -1
  29. package/android/src/main/assets/saplingtree/mainnet/1560000.json +1 -1
  30. package/android/src/main/assets/saplingtree/mainnet/1570000.json +1 -1
  31. package/android/src/main/assets/saplingtree/mainnet/1580000.json +1 -1
  32. package/android/src/main/assets/saplingtree/mainnet/1590000.json +1 -1
  33. package/android/src/main/assets/saplingtree/mainnet/1600000.json +1 -1
  34. package/android/src/main/assets/saplingtree/mainnet/1610000.json +1 -1
  35. package/android/src/main/assets/saplingtree/mainnet/1620000.json +1 -1
  36. package/android/src/main/assets/saplingtree/mainnet/1630000.json +1 -1
  37. package/android/src/main/assets/saplingtree/mainnet/1640000.json +1 -1
  38. package/android/src/main/assets/saplingtree/mainnet/1650000.json +1 -1
  39. package/android/src/main/assets/saplingtree/mainnet/1660000.json +1 -1
  40. package/android/src/main/assets/saplingtree/mainnet/1670000.json +1 -1
  41. package/android/src/main/assets/saplingtree/mainnet/1680000.json +1 -1
  42. package/android/src/main/assets/saplingtree/mainnet/1690000.json +2 -1
  43. package/android/src/main/assets/saplingtree/mainnet/1700000.json +2 -1
  44. package/android/src/main/assets/saplingtree/mainnet/1710000.json +2 -1
  45. package/android/src/main/assets/saplingtree/mainnet/1720000.json +2 -1
  46. package/android/src/main/assets/saplingtree/mainnet/1730000.json +2 -1
  47. package/android/src/main/assets/saplingtree/mainnet/1740000.json +2 -1
  48. package/android/src/main/assets/saplingtree/mainnet/1750000.json +2 -1
  49. package/android/src/main/assets/saplingtree/mainnet/1760000.json +2 -1
  50. package/android/src/main/assets/saplingtree/mainnet/1770000.json +2 -1
  51. package/android/src/main/assets/saplingtree/mainnet/1780000.json +2 -1
  52. package/android/src/main/assets/saplingtree/mainnet/1790000.json +2 -1
  53. package/android/src/main/assets/saplingtree/mainnet/1800000.json +2 -1
  54. package/android/src/main/assets/saplingtree/mainnet/1810000.json +2 -1
  55. package/android/src/main/assets/saplingtree/mainnet/1820000.json +2 -1
  56. package/android/src/main/assets/saplingtree/mainnet/1830000.json +2 -1
  57. package/android/src/main/assets/saplingtree/mainnet/1840000.json +2 -1
  58. package/android/src/main/assets/saplingtree/mainnet/1850000.json +2 -1
  59. package/android/src/main/assets/saplingtree/mainnet/1860000.json +2 -1
  60. package/android/src/main/assets/saplingtree/mainnet/1870000.json +2 -1
  61. package/android/src/main/assets/saplingtree/mainnet/1880000.json +2 -1
  62. package/android/src/main/assets/saplingtree/mainnet/1890000.json +2 -1
  63. package/android/src/main/assets/saplingtree/mainnet/1900000.json +2 -1
  64. package/android/src/main/assets/saplingtree/mainnet/1910000.json +2 -1
  65. package/android/src/main/assets/saplingtree/mainnet/1920000.json +2 -1
  66. package/android/src/main/assets/saplingtree/mainnet/1930000.json +2 -1
  67. package/android/src/main/assets/saplingtree/mainnet/1940000.json +2 -1
  68. package/android/src/main/assets/saplingtree/mainnet/1950000.json +2 -1
  69. package/android/src/main/assets/saplingtree/mainnet/1960000.json +2 -1
  70. package/android/src/main/assets/saplingtree/mainnet/1970000.json +2 -1
  71. package/android/src/main/assets/saplingtree/mainnet/1980000.json +2 -1
  72. package/android/src/main/assets/saplingtree/mainnet/1990000.json +2 -1
  73. package/android/src/main/assets/saplingtree/mainnet/2000000.json +2 -1
  74. package/android/src/main/assets/saplingtree/mainnet/2010000.json +2 -1
  75. package/android/src/main/assets/saplingtree/mainnet/2020000.json +2 -1
  76. package/android/src/main/assets/saplingtree/mainnet/2030000.json +2 -1
  77. package/android/src/main/assets/saplingtree/mainnet/2040000.json +2 -1
  78. package/android/src/main/assets/saplingtree/mainnet/2050000.json +2 -1
  79. package/android/src/main/assets/saplingtree/mainnet/2060000.json +2 -1
  80. package/android/src/main/assets/saplingtree/mainnet/2070000.json +2 -1
  81. package/android/src/main/assets/saplingtree/mainnet/2080000.json +2 -1
  82. package/android/src/main/assets/saplingtree/mainnet/2090000.json +2 -1
  83. package/android/src/main/assets/saplingtree/mainnet/2100000.json +2 -1
  84. package/android/src/main/assets/saplingtree/mainnet/2110000.json +2 -1
  85. package/android/src/main/assets/saplingtree/mainnet/2120000.json +2 -1
  86. package/android/src/main/assets/saplingtree/mainnet/2130000.json +2 -1
  87. package/android/src/main/assets/saplingtree/mainnet/2140000.json +2 -1
  88. package/android/src/main/assets/saplingtree/mainnet/2150000.json +2 -1
  89. package/android/src/main/assets/saplingtree/mainnet/2160000.json +2 -1
  90. package/android/src/main/assets/saplingtree/mainnet/2170000.json +2 -1
  91. package/android/src/main/assets/saplingtree/mainnet/2180000.json +8 -0
  92. package/android/src/main/assets/saplingtree/mainnet/2190000.json +8 -0
  93. package/android/src/main/assets/saplingtree/mainnet/2200000.json +8 -0
  94. package/android/src/main/assets/saplingtree/mainnet/2210000.json +8 -0
  95. package/android/src/main/java/app/edge/rnzcash/RNZcashModule.kt +179 -175
  96. package/android/src/main/java/app/edge/rnzcash/RNZcashPackage.kt +2 -3
  97. package/ios/RNZcash.m +5 -21
  98. package/ios/RNZcash.swift +531 -512
  99. package/ios/ZCashLightClientKit/Block/CompactBlockProcessor.swift +1365 -0
  100. package/ios/ZCashLightClientKit/Block/DatabaseStorage/ConnectorProvider.swift +12 -0
  101. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseStorageError.swift +20 -0
  102. package/ios/ZCashLightClientKit/Block/DatabaseStorage/SimpleConnectionProvider.swift +39 -0
  103. package/ios/ZCashLightClientKit/Block/Download/BlockDownloader.swift +295 -0
  104. package/ios/ZCashLightClientKit/Block/Download/BlockDownloaderService.swift +117 -0
  105. package/ios/ZCashLightClientKit/Block/Enhance/BlockEnhancer.swift +123 -0
  106. package/ios/ZCashLightClientKit/Block/FetchUnspentTxOutputs/UTXOFetcher.swift +114 -0
  107. package/ios/ZCashLightClientKit/Block/FilesystemStorage/FSCompactBlockRepository.swift +419 -0
  108. package/ios/ZCashLightClientKit/Block/SaplingParameters/SaplingParametersHandler.swift +52 -0
  109. package/ios/ZCashLightClientKit/Block/Scan/BlockScanner.swift +114 -0
  110. package/ios/ZCashLightClientKit/Block/Utils/AfterSyncHooksManager.swift +88 -0
  111. package/ios/ZCashLightClientKit/Block/Utils/InternalSyncProgress.swift +200 -0
  112. package/ios/ZCashLightClientKit/Block/Validate/BlockValidator.swift +51 -0
  113. package/ios/ZCashLightClientKit/ClosureSynchronizer.swift +84 -0
  114. package/ios/ZCashLightClientKit/CombineSynchronizer.swift +76 -0
  115. package/ios/ZCashLightClientKit/Constants/Checkpoint+Constants.swift +98 -0
  116. package/ios/ZCashLightClientKit/Constants/Checkpoint+mainnet.swift +19 -0
  117. package/ios/ZCashLightClientKit/Constants/Checkpoint+testnet.swift +20 -0
  118. package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +139 -169
  119. package/ios/ZCashLightClientKit/DAO/BlockDao.swift +65 -20
  120. package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +20 -28
  121. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +175 -323
  122. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +80 -58
  123. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +86 -88
  124. package/ios/ZCashLightClientKit/Entity/BlockProgress.swift +24 -0
  125. package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +3 -3
  126. package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +15 -12
  127. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +205 -131
  128. package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +7 -6
  129. package/ios/ZCashLightClientKit/Entity/ZcashCompactBlock.swift +96 -0
  130. package/ios/ZCashLightClientKit/Error/Sourcery/ZcashError.stencil +40 -0
  131. package/ios/ZCashLightClientKit/Error/Sourcery/ZcashErrorCode.stencil +15 -0
  132. package/ios/ZCashLightClientKit/Error/Sourcery/generateErrorCode.sh +34 -0
  133. package/ios/ZCashLightClientKit/Error/ZcashError.swift +820 -0
  134. package/ios/ZCashLightClientKit/Error/ZcashErrorCode.swift +306 -0
  135. package/ios/ZCashLightClientKit/Error/ZcashErrorCodeDefinition.swift +596 -0
  136. package/ios/ZCashLightClientKit/Extensions/Error+ZcashError.swift +18 -0
  137. package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +1 -1
  138. package/ios/ZCashLightClientKit/Extensions/NumberFormatter+Zcash.swift +19 -0
  139. package/ios/ZCashLightClientKit/Extensions/URL+UpdateWithAlias.swift +36 -0
  140. package/ios/ZCashLightClientKit/Extensions/Undescribable.swift +22 -0
  141. package/ios/ZCashLightClientKit/Extensions/Zatoshi+SQLite.swift +20 -0
  142. package/ios/ZCashLightClientKit/Initializer.swift +336 -260
  143. package/ios/ZCashLightClientKit/Metrics/SDKMetrics.swift +270 -0
  144. package/ios/ZCashLightClientKit/Model/Checkpoint.swift +84 -0
  145. package/ios/ZCashLightClientKit/Model/Memo.swift +236 -0
  146. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +261 -88
  147. package/ios/ZCashLightClientKit/Model/Zatoshi.swift +115 -0
  148. package/ios/ZCashLightClientKit/Modules/Service/GRPC/LightWalletGRPCService.swift +342 -0
  149. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
  150. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/compact_formats.pb.swift +399 -0
  151. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/compact_formats.proto +66 -0
  152. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/service.proto +185 -0
  153. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.grpc.swift +1123 -0
  154. package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.pb.swift +1208 -0
  155. package/ios/ZCashLightClientKit/Modules/Service/LightWalletService.swift +195 -0
  156. package/ios/ZCashLightClientKit/Providers/LatestBlocksDataProvider.swift +69 -0
  157. package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +24 -6
  158. package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +14 -46
  159. package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +1 -0
  160. package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +6 -6
  161. package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +18 -19
  162. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +5 -7
  163. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1000000.json +7 -0
  164. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1010000.json +7 -0
  165. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1020000.json +7 -0
  166. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1030000.json +7 -0
  167. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1040000.json +7 -0
  168. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1050000.json +7 -0
  169. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1060000.json +7 -0
  170. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1070000.json +7 -0
  171. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1080000.json +7 -0
  172. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1090000.json +7 -0
  173. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1100000.json +7 -0
  174. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1110000.json +7 -0
  175. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1120000.json +7 -0
  176. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1130000.json +7 -0
  177. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1140000.json +7 -0
  178. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1150000.json +7 -0
  179. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1160000.json +7 -0
  180. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1170000.json +7 -0
  181. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1180000.json +7 -0
  182. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1190000.json +7 -0
  183. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1200000.json +7 -0
  184. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1210000.json +7 -0
  185. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1220000.json +7 -0
  186. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1230000.json +7 -0
  187. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1240000.json +7 -0
  188. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1250000.json +7 -0
  189. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1260000.json +7 -0
  190. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1270000.json +7 -0
  191. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1280000.json +7 -0
  192. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1290000.json +7 -0
  193. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1300000.json +7 -0
  194. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1310000.json +7 -0
  195. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1320000.json +7 -0
  196. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1330000.json +7 -0
  197. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1340000.json +7 -0
  198. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1350000.json +7 -0
  199. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1360000.json +7 -0
  200. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1370000.json +7 -0
  201. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1380000.json +7 -0
  202. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1390000.json +7 -0
  203. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1400000.json +7 -0
  204. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1410000.json +7 -0
  205. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1420000.json +7 -0
  206. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1430000.json +7 -0
  207. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1440000.json +7 -0
  208. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1450000.json +7 -0
  209. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1460000.json +7 -0
  210. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1470000.json +7 -0
  211. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1480000.json +7 -0
  212. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1490000.json +7 -0
  213. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1500000.json +7 -0
  214. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1510000.json +7 -0
  215. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1520000.json +7 -0
  216. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1530000.json +7 -0
  217. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1540000.json +7 -0
  218. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1550000.json +7 -0
  219. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1560000.json +7 -0
  220. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1570000.json +7 -0
  221. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1580000.json +7 -0
  222. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1590000.json +7 -0
  223. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1600000.json +7 -0
  224. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1610000.json +7 -0
  225. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1620000.json +7 -0
  226. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1630000.json +7 -0
  227. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1631000.json +7 -0
  228. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1640000.json +7 -0
  229. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1650000.json +7 -0
  230. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1660000.json +7 -0
  231. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1670000.json +7 -0
  232. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1680000.json +7 -0
  233. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1686871.json +7 -0
  234. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1687104.json +8 -0
  235. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1690000.json +8 -0
  236. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1700000.json +8 -0
  237. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1710000.json +8 -0
  238. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1720000.json +8 -0
  239. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1722500.json +8 -0
  240. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1725000.json +8 -0
  241. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1727500.json +8 -0
  242. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1730000.json +8 -0
  243. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1732500.json +8 -0
  244. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1735000.json +8 -0
  245. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1737500.json +8 -0
  246. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1740000.json +8 -0
  247. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1742500.json +8 -0
  248. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1745000.json +8 -0
  249. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1747500.json +8 -0
  250. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1750000.json +8 -0
  251. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1752500.json +8 -0
  252. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1755000.json +9 -0
  253. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1757500.json +8 -0
  254. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1760000.json +8 -0
  255. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1762500.json +8 -0
  256. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1765000.json +8 -0
  257. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1767500.json +8 -0
  258. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1770000.json +8 -0
  259. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1772500.json +8 -0
  260. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1775000.json +8 -0
  261. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1777500.json +8 -0
  262. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1780000.json +8 -0
  263. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1782500.json +8 -0
  264. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1785000.json +8 -0
  265. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1787500.json +8 -0
  266. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1790000.json +8 -0
  267. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1792500.json +8 -0
  268. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1795000.json +8 -0
  269. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1797500.json +8 -0
  270. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1800000.json +8 -0
  271. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1802500.json +8 -0
  272. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1805000.json +8 -0
  273. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1807500.json +8 -0
  274. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1810000.json +8 -0
  275. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1812500.json +8 -0
  276. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1815000.json +8 -0
  277. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1817500.json +8 -0
  278. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1820000.json +8 -0
  279. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1822500.json +8 -0
  280. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1825000.json +8 -0
  281. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1827500.json +8 -0
  282. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1830000.json +8 -0
  283. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1832500.json +8 -0
  284. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1835000.json +8 -0
  285. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1837500.json +8 -0
  286. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1840000.json +8 -0
  287. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1842500.json +8 -0
  288. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1845000.json +8 -0
  289. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1847500.json +8 -0
  290. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1850000.json +8 -0
  291. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1852500.json +8 -0
  292. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1855000.json +8 -0
  293. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1857500.json +8 -0
  294. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1860000.json +8 -0
  295. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1862500.json +8 -0
  296. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1865000.json +8 -0
  297. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1867500.json +8 -0
  298. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1870000.json +8 -0
  299. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1872500.json +8 -0
  300. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1875000.json +8 -0
  301. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1877500.json +8 -0
  302. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1880000.json +8 -0
  303. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1882500.json +8 -0
  304. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1885000.json +8 -0
  305. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1887500.json +8 -0
  306. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1890000.json +8 -0
  307. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1892500.json +8 -0
  308. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1895000.json +8 -0
  309. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1897500.json +8 -0
  310. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1900000.json +8 -0
  311. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1902500.json +8 -0
  312. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1905000.json +8 -0
  313. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1907500.json +8 -0
  314. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1910000.json +8 -0
  315. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1912500.json +8 -0
  316. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1915000.json +8 -0
  317. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1917500.json +8 -0
  318. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1920000.json +8 -0
  319. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1922500.json +8 -0
  320. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1925000.json +8 -0
  321. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1927500.json +8 -0
  322. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1930000.json +8 -0
  323. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1932500.json +8 -0
  324. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1935000.json +8 -0
  325. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1937500.json +8 -0
  326. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1940000.json +8 -0
  327. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1942500.json +8 -0
  328. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1945000.json +8 -0
  329. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1947500.json +8 -0
  330. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1950000.json +8 -0
  331. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1952500.json +8 -0
  332. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1955000.json +8 -0
  333. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1957500.json +8 -0
  334. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1960000.json +8 -0
  335. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1962500.json +8 -0
  336. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1965000.json +8 -0
  337. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1967500.json +8 -0
  338. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1970000.json +8 -0
  339. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1972500.json +8 -0
  340. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1975000.json +8 -0
  341. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1977500.json +8 -0
  342. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1980000.json +8 -0
  343. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1982500.json +8 -0
  344. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1985000.json +8 -0
  345. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1987500.json +8 -0
  346. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1990000.json +8 -0
  347. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1992500.json +8 -0
  348. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1995000.json +8 -0
  349. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1997500.json +8 -0
  350. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2000000.json +8 -0
  351. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2002500.json +8 -0
  352. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2005000.json +8 -0
  353. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2007500.json +8 -0
  354. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2010000.json +8 -0
  355. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2012500.json +8 -0
  356. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2015000.json +8 -0
  357. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2017500.json +8 -0
  358. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2020000.json +8 -0
  359. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2022500.json +8 -0
  360. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2025000.json +8 -0
  361. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2027500.json +8 -0
  362. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2030000.json +8 -0
  363. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2032500.json +8 -0
  364. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2035000.json +8 -0
  365. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2037500.json +8 -0
  366. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2040000.json +8 -0
  367. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2042500.json +8 -0
  368. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2045000.json +8 -0
  369. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2047500.json +8 -0
  370. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2050000.json +8 -0
  371. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2052500.json +8 -0
  372. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2055000.json +8 -0
  373. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2057500.json +8 -0
  374. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2060000.json +8 -0
  375. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2062500.json +8 -0
  376. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2065000.json +8 -0
  377. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2067500.json +8 -0
  378. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2070000.json +8 -0
  379. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2072500.json +8 -0
  380. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2075000.json +8 -0
  381. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2077500.json +8 -0
  382. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2080000.json +8 -0
  383. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2082500.json +8 -0
  384. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2085000.json +8 -0
  385. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2087500.json +8 -0
  386. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2090000.json +8 -0
  387. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2100000.json +8 -0
  388. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2110000.json +8 -0
  389. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2120000.json +8 -0
  390. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2130000.json +8 -0
  391. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2140000.json +8 -0
  392. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2150000.json +8 -0
  393. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2160000.json +8 -0
  394. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2170000.json +8 -0
  395. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2180000.json +8 -0
  396. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2190000.json +8 -0
  397. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2200000.json +8 -0
  398. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2210000.json +8 -0
  399. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/419200.json +7 -0
  400. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/500000.json +7 -0
  401. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/510000.json +7 -0
  402. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/520000.json +7 -0
  403. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/530000.json +7 -0
  404. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/540000.json +7 -0
  405. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/550000.json +7 -0
  406. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/560000.json +7 -0
  407. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/570000.json +7 -0
  408. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/580000.json +7 -0
  409. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/590000.json +7 -0
  410. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/600000.json +7 -0
  411. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/610000.json +7 -0
  412. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/620000.json +7 -0
  413. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/630000.json +7 -0
  414. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/640000.json +7 -0
  415. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/650000.json +7 -0
  416. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/660000.json +7 -0
  417. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/663150.json +8 -0
  418. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/670000.json +7 -0
  419. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/680000.json +7 -0
  420. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/690000.json +7 -0
  421. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/700000.json +7 -0
  422. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/710000.json +7 -0
  423. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/720000.json +7 -0
  424. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/730000.json +7 -0
  425. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/740000.json +7 -0
  426. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/750000.json +7 -0
  427. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/760000.json +7 -0
  428. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/770000.json +7 -0
  429. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/780000.json +7 -0
  430. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/790000.json +7 -0
  431. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/800000.json +7 -0
  432. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/810000.json +7 -0
  433. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/820000.json +7 -0
  434. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/830000.json +7 -0
  435. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/840000.json +7 -0
  436. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/850000.json +7 -0
  437. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/860000.json +7 -0
  438. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/870000.json +7 -0
  439. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/880000.json +7 -0
  440. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/890000.json +7 -0
  441. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/900000.json +7 -0
  442. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/910000.json +7 -0
  443. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/920000.json +7 -0
  444. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/930000.json +7 -0
  445. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/940000.json +7 -0
  446. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/950000.json +7 -0
  447. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/960000.json +7 -0
  448. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/970000.json +7 -0
  449. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/980000.json +7 -0
  450. package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/990000.json +7 -0
  451. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1000000.json +7 -0
  452. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1010000.json +7 -0
  453. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1020000.json +7 -0
  454. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1030000.json +7 -0
  455. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1040000.json +7 -0
  456. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1050000.json +7 -0
  457. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1060000.json +7 -0
  458. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1070000.json +7 -0
  459. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1080000.json +7 -0
  460. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1090000.json +7 -0
  461. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1100000.json +7 -0
  462. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1110000.json +7 -0
  463. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1120000.json +7 -0
  464. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1130000.json +7 -0
  465. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1140000.json +7 -0
  466. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1150000.json +7 -0
  467. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1160000.json +7 -0
  468. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1170000.json +7 -0
  469. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1180000.json +7 -0
  470. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1190000.json +7 -0
  471. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1200000.json +7 -0
  472. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1210000.json +7 -0
  473. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1220000.json +7 -0
  474. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1230000.json +7 -0
  475. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1240000.json +7 -0
  476. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1250000.json +7 -0
  477. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1260000.json +7 -0
  478. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1270000.json +7 -0
  479. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1280000.json +7 -0
  480. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1290000.json +7 -0
  481. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1300000.json +7 -0
  482. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1310000.json +7 -0
  483. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1320000.json +7 -0
  484. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1330000.json +7 -0
  485. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1340000.json +7 -0
  486. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1350000.json +7 -0
  487. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1360000.json +7 -0
  488. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1370000.json +7 -0
  489. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1380000.json +7 -0
  490. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1390000.json +7 -0
  491. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1400000.json +7 -0
  492. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1410000.json +7 -0
  493. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1420000.json +7 -0
  494. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1430000.json +7 -0
  495. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1440000.json +7 -0
  496. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1450000.json +7 -0
  497. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1460000.json +7 -0
  498. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1470000.json +7 -0
  499. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1480000.json +7 -0
  500. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1490000.json +7 -0
  501. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1500000.json +7 -0
  502. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1510000.json +7 -0
  503. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1520000.json +7 -0
  504. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1530000.json +7 -0
  505. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1540000.json +7 -0
  506. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1550000.json +7 -0
  507. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1560000.json +7 -0
  508. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1570000.json +7 -0
  509. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1580000.json +7 -0
  510. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1590000.json +7 -0
  511. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1600000.json +7 -0
  512. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1610000.json +7 -0
  513. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1620000.json +7 -0
  514. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1630000.json +7 -0
  515. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1640000.json +7 -0
  516. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1650000.json +7 -0
  517. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1660000.json +7 -0
  518. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1670000.json +7 -0
  519. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1680000.json +7 -0
  520. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1690000.json +7 -0
  521. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1700000.json +7 -0
  522. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1710000.json +7 -0
  523. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1720000.json +7 -0
  524. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1730000.json +7 -0
  525. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1740000.json +7 -0
  526. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1750000.json +7 -0
  527. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1760000.json +7 -0
  528. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1770000.json +7 -0
  529. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1780000.json +7 -0
  530. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1790000.json +7 -0
  531. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1800000.json +7 -0
  532. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1810000.json +7 -0
  533. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1820000.json +7 -0
  534. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1830000.json +7 -0
  535. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1840000.json +7 -0
  536. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1842420.json +8 -0
  537. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1850000.json +8 -0
  538. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1860000.json +8 -0
  539. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1870000.json +8 -0
  540. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1880000.json +8 -0
  541. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1890000.json +8 -0
  542. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1900000.json +8 -0
  543. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1910000.json +8 -0
  544. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1920000.json +8 -0
  545. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1930000.json +8 -0
  546. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1940000.json +8 -0
  547. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1950000.json +8 -0
  548. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1960000.json +8 -0
  549. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1970000.json +8 -0
  550. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1980000.json +8 -0
  551. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1990000.json +8 -0
  552. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2000000.json +8 -0
  553. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2010000.json +8 -0
  554. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2020000.json +8 -0
  555. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2030000.json +8 -0
  556. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2040000.json +8 -0
  557. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2050000.json +8 -0
  558. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2060000.json +8 -0
  559. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2070000.json +8 -0
  560. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2080000.json +8 -0
  561. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2090000.json +8 -0
  562. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2100000.json +8 -0
  563. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2110000.json +8 -0
  564. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2120000.json +8 -0
  565. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2130000.json +8 -0
  566. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2140000.json +8 -0
  567. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2150000.json +8 -0
  568. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2160000.json +8 -0
  569. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2170000.json +8 -0
  570. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2180000.json +8 -0
  571. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2190000.json +8 -0
  572. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2200000.json +8 -0
  573. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2210000.json +8 -0
  574. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2220000.json +8 -0
  575. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2230000.json +8 -0
  576. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2240000.json +8 -0
  577. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2250000.json +8 -0
  578. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2260000.json +8 -0
  579. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2270000.json +8 -0
  580. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2280000.json +8 -0
  581. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2290000.json +8 -0
  582. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2300000.json +8 -0
  583. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2310000.json +8 -0
  584. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2320000.json +8 -0
  585. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2330000.json +8 -0
  586. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2340000.json +8 -0
  587. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/280000.json +7 -0
  588. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/290000.json +7 -0
  589. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/300000.json +7 -0
  590. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/310000.json +7 -0
  591. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/320000.json +7 -0
  592. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/330000.json +7 -0
  593. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/340000.json +7 -0
  594. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/350000.json +7 -0
  595. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/360000.json +7 -0
  596. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/370000.json +7 -0
  597. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/380000.json +7 -0
  598. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/390000.json +7 -0
  599. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/400000.json +7 -0
  600. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/410000.json +7 -0
  601. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/420000.json +7 -0
  602. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/430000.json +7 -0
  603. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/440000.json +7 -0
  604. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/450000.json +7 -0
  605. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/460000.json +7 -0
  606. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/470000.json +7 -0
  607. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/480000.json +7 -0
  608. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/490000.json +7 -0
  609. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/500000.json +7 -0
  610. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/510000.json +7 -0
  611. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/520000.json +7 -0
  612. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/530000.json +7 -0
  613. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/540000.json +7 -0
  614. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/550000.json +7 -0
  615. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/560000.json +7 -0
  616. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/570000.json +7 -0
  617. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/580000.json +7 -0
  618. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/590000.json +7 -0
  619. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/600000.json +7 -0
  620. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/610000.json +7 -0
  621. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/620000.json +7 -0
  622. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/630000.json +7 -0
  623. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/640000.json +7 -0
  624. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/650000.json +7 -0
  625. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/660000.json +7 -0
  626. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/670000.json +7 -0
  627. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/680000.json +7 -0
  628. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/690000.json +7 -0
  629. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/700000.json +7 -0
  630. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/710000.json +7 -0
  631. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/720000.json +7 -0
  632. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/730000.json +7 -0
  633. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/740000.json +7 -0
  634. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/750000.json +7 -0
  635. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/760000.json +7 -0
  636. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/770000.json +7 -0
  637. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/780000.json +7 -0
  638. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/790000.json +7 -0
  639. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/800000.json +7 -0
  640. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/810000.json +7 -0
  641. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/820000.json +7 -0
  642. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/830000.json +7 -0
  643. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/840000.json +7 -0
  644. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/850000.json +7 -0
  645. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/860000.json +7 -0
  646. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/870000.json +7 -0
  647. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/880000.json +7 -0
  648. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/890000.json +7 -0
  649. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/900000.json +7 -0
  650. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/910000.json +7 -0
  651. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/920000.json +7 -0
  652. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/930000.json +7 -0
  653. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/940000.json +7 -0
  654. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/950000.json +7 -0
  655. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/960000.json +7 -0
  656. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/970000.json +7 -0
  657. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/980000.json +7 -0
  658. package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/990000.json +7 -0
  659. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackend.swift +218 -0
  660. package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackendWelding.swift +88 -0
  661. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +531 -604
  662. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +223 -356
  663. package/ios/ZCashLightClientKit/Rust/zcashlc.h +802 -136
  664. package/ios/ZCashLightClientKit/Synchronizer/ClosureSDKSynchronizer.swift +180 -0
  665. package/ios/ZCashLightClientKit/Synchronizer/CombineSDKSynchronizer.swift +175 -0
  666. package/ios/ZCashLightClientKit/Synchronizer/Dependencies.swift +207 -0
  667. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +527 -793
  668. package/ios/ZCashLightClientKit/Synchronizer.swift +416 -342
  669. package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +163 -300
  670. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +39 -89
  671. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +93 -144
  672. package/ios/ZCashLightClientKit/Utils/AsyncToClosureGateway.swift +46 -0
  673. package/ios/ZCashLightClientKit/Utils/AsyncToCombineGateway.swift +59 -0
  674. package/ios/ZCashLightClientKit/Utils/Clamped.swift +32 -0
  675. package/ios/ZCashLightClientKit/Utils/DIContainer.swift +86 -0
  676. package/ios/ZCashLightClientKit/Utils/GenericActor.swift +18 -0
  677. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +22 -21
  678. package/ios/ZCashLightClientKit/Utils/OSLogger.swift +109 -0
  679. package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +124 -89
  680. package/ios/ZCashLightClientKit/Utils/SpecificCombineTypes.swift +16 -0
  681. package/ios/ZCashLightClientKit/Utils/SyncSessionIDGenerator.swift +32 -0
  682. package/ios/ZCashLightClientKit/Utils/Task+sleep.swift +14 -0
  683. package/ios/ZCashLightClientKit/Utils/UsedAliasesChecker.swift +41 -0
  684. package/ios/libzcashlc.xcframework/Info.plist +5 -5
  685. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  686. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  687. package/lib/rnzcash.rn.js +37 -80
  688. package/lib/rnzcash.rn.js.map +1 -1
  689. package/lib/src/react-native.d.ts +5 -10
  690. package/lib/src/types.d.ts +3 -4
  691. package/package.json +4 -1
  692. package/react-native-zcash.podspec +5 -4
  693. package/src/react-native.ts +15 -41
  694. package/src/types.ts +3 -4
  695. package/ios/ZCashLightClientKit/Block/DatabaseStorage/CompactBlockStorage.swift +0 -123
  696. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseMigrationManager.swift +0 -222
  697. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageError.swift +0 -22
  698. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageManager.swift +0 -73
  699. package/ios/ZCashLightClientKit/Block/Downloader/BlockDownloader.swift +0 -240
  700. package/ios/ZCashLightClientKit/Block/Downloader/CompactBlockDownloaderBuilder.swift +0 -26
  701. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockDownloadOperation.swift +0 -258
  702. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockEnhancementOperation.swift +0 -157
  703. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockProcessor.swift +0 -1454
  704. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockScanningOperation.swift +0 -238
  705. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockValidationInformation.swift +0 -66
  706. package/ios/ZCashLightClientKit/Block/Processor/FetchUnspentTxOutputsOperation.swift +0 -103
  707. package/ios/ZCashLightClientKit/Block/Processor/FigureNextBatchOperation.swift +0 -58
  708. package/ios/ZCashLightClientKit/Block/Processor/ZcashOperation.swift +0 -68
  709. package/ios/ZCashLightClientKit/Constants/WalletBirthday+Constants.swift +0 -58
  710. package/ios/ZCashLightClientKit/Constants/WalletBirthday+mainnet.swift +0 -20
  711. package/ios/ZCashLightClientKit/Constants/WalletBirthday+testnet.swift +0 -20
  712. package/ios/ZCashLightClientKit/DAO/CompactBlockDAO.swift +0 -24
  713. package/ios/ZCashLightClientKit/DAO/NotesDao.swift +0 -142
  714. package/ios/ZCashLightClientKit/DAO/PendingTransactionDao.swift +0 -213
  715. package/ios/ZCashLightClientKit/DAO/TransactionBuilder.swift +0 -169
  716. package/ios/ZCashLightClientKit/Entity/CompactBlockEntity.swift +0 -13
  717. package/ios/ZCashLightClientKit/Entity/PendingTransactionEntity.swift +0 -205
  718. package/ios/ZCashLightClientKit/Entity/ReceivedNoteEntity.swift +0 -22
  719. package/ios/ZCashLightClientKit/Repository/PendingTransactionRepository.swift +0 -19
  720. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1000000.json +0 -7
  721. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1010000.json +0 -7
  722. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1020000.json +0 -7
  723. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1030000.json +0 -7
  724. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1040000.json +0 -7
  725. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1050000.json +0 -7
  726. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1060000.json +0 -7
  727. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1070000.json +0 -7
  728. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1080000.json +0 -7
  729. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1090000.json +0 -7
  730. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1100000.json +0 -7
  731. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1110000.json +0 -7
  732. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1120000.json +0 -7
  733. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1130000.json +0 -7
  734. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1140000.json +0 -7
  735. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1150000.json +0 -7
  736. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1160000.json +0 -7
  737. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1170000.json +0 -7
  738. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1180000.json +0 -7
  739. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1190000.json +0 -7
  740. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1200000.json +0 -7
  741. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1210000.json +0 -7
  742. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1220000.json +0 -7
  743. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1230000.json +0 -7
  744. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1240000.json +0 -7
  745. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1250000.json +0 -7
  746. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1260000.json +0 -7
  747. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1270000.json +0 -7
  748. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1280000.json +0 -7
  749. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1290000.json +0 -7
  750. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1300000.json +0 -7
  751. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1310000.json +0 -7
  752. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1320000.json +0 -7
  753. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1330000.json +0 -7
  754. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1340000.json +0 -7
  755. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1350000.json +0 -7
  756. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1360000.json +0 -7
  757. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1370000.json +0 -7
  758. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1380000.json +0 -7
  759. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1390000.json +0 -7
  760. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1400000.json +0 -7
  761. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1410000.json +0 -7
  762. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1420000.json +0 -7
  763. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1430000.json +0 -7
  764. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1440000.json +0 -7
  765. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1450000.json +0 -7
  766. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1460000.json +0 -7
  767. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1470000.json +0 -7
  768. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1480000.json +0 -7
  769. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1490000.json +0 -7
  770. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1500000.json +0 -7
  771. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1510000.json +0 -7
  772. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1520000.json +0 -7
  773. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1530000.json +0 -7
  774. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1540000.json +0 -7
  775. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1550000.json +0 -7
  776. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1560000.json +0 -7
  777. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1570000.json +0 -7
  778. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1580000.json +0 -7
  779. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1590000.json +0 -7
  780. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1600000.json +0 -7
  781. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1610000.json +0 -7
  782. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1620000.json +0 -7
  783. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1630000.json +0 -7
  784. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1640000.json +0 -7
  785. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1650000.json +0 -7
  786. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1660000.json +0 -7
  787. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1670000.json +0 -7
  788. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1680000.json +0 -7
  789. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1690000.json +0 -7
  790. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1700000.json +0 -7
  791. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1710000.json +0 -7
  792. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1720000.json +0 -7
  793. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1730000.json +0 -7
  794. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1740000.json +0 -7
  795. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1750000.json +0 -7
  796. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1760000.json +0 -7
  797. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1770000.json +0 -7
  798. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1780000.json +0 -7
  799. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1790000.json +0 -7
  800. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1800000.json +0 -7
  801. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1810000.json +0 -7
  802. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1820000.json +0 -7
  803. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1830000.json +0 -7
  804. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1840000.json +0 -7
  805. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1850000.json +0 -7
  806. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1860000.json +0 -7
  807. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1870000.json +0 -7
  808. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1880000.json +0 -7
  809. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1890000.json +0 -7
  810. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1900000.json +0 -7
  811. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1910000.json +0 -7
  812. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1920000.json +0 -7
  813. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1930000.json +0 -7
  814. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1940000.json +0 -7
  815. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1950000.json +0 -7
  816. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1960000.json +0 -7
  817. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1970000.json +0 -7
  818. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1980000.json +0 -7
  819. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1990000.json +0 -7
  820. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2000000.json +0 -7
  821. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2010000.json +0 -7
  822. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2020000.json +0 -7
  823. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2030000.json +0 -7
  824. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2040000.json +0 -7
  825. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2050000.json +0 -7
  826. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2060000.json +0 -7
  827. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2070000.json +0 -7
  828. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2080000.json +0 -7
  829. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2090000.json +0 -7
  830. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2100000.json +0 -7
  831. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2110000.json +0 -7
  832. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2120000.json +0 -7
  833. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2130000.json +0 -7
  834. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2140000.json +0 -7
  835. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2150000.json +0 -7
  836. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2160000.json +0 -7
  837. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2170000.json +0 -7
  838. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/419200.json +0 -7
  839. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/500000.json +0 -7
  840. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/510000.json +0 -7
  841. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/520000.json +0 -7
  842. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/530000.json +0 -7
  843. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/540000.json +0 -7
  844. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/550000.json +0 -7
  845. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/560000.json +0 -7
  846. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/570000.json +0 -7
  847. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/580000.json +0 -7
  848. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/590000.json +0 -7
  849. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/600000.json +0 -7
  850. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/610000.json +0 -7
  851. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/620000.json +0 -7
  852. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/630000.json +0 -7
  853. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/640000.json +0 -7
  854. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/650000.json +0 -7
  855. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/660000.json +0 -7
  856. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/663150.json +0 -8
  857. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/670000.json +0 -7
  858. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/680000.json +0 -7
  859. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/690000.json +0 -7
  860. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/700000.json +0 -7
  861. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/710000.json +0 -7
  862. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/720000.json +0 -7
  863. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/730000.json +0 -7
  864. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/740000.json +0 -7
  865. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/750000.json +0 -7
  866. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/760000.json +0 -7
  867. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/770000.json +0 -7
  868. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/780000.json +0 -7
  869. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/790000.json +0 -7
  870. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/800000.json +0 -7
  871. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/810000.json +0 -7
  872. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/820000.json +0 -7
  873. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/830000.json +0 -7
  874. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/840000.json +0 -7
  875. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/850000.json +0 -7
  876. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/860000.json +0 -7
  877. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/870000.json +0 -7
  878. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/880000.json +0 -7
  879. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/890000.json +0 -7
  880. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/900000.json +0 -7
  881. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/910000.json +0 -7
  882. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/920000.json +0 -7
  883. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/930000.json +0 -7
  884. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/940000.json +0 -7
  885. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/950000.json +0 -7
  886. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/960000.json +0 -7
  887. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/970000.json +0 -7
  888. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/980000.json +0 -7
  889. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/990000.json +0 -7
  890. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1000000.json +0 -7
  891. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1010000.json +0 -7
  892. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1020000.json +0 -7
  893. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1030000.json +0 -7
  894. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1040000.json +0 -7
  895. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1050000.json +0 -7
  896. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1060000.json +0 -7
  897. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1070000.json +0 -7
  898. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1080000.json +0 -7
  899. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1090000.json +0 -7
  900. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1100000.json +0 -7
  901. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1110000.json +0 -7
  902. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1120000.json +0 -7
  903. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1130000.json +0 -7
  904. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1140000.json +0 -7
  905. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1150000.json +0 -7
  906. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1160000.json +0 -7
  907. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1170000.json +0 -7
  908. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1180000.json +0 -7
  909. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1190000.json +0 -7
  910. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1200000.json +0 -7
  911. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1210000.json +0 -7
  912. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1220000.json +0 -7
  913. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1230000.json +0 -7
  914. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1240000.json +0 -7
  915. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1250000.json +0 -7
  916. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1260000.json +0 -7
  917. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1270000.json +0 -7
  918. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1280000.json +0 -7
  919. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1290000.json +0 -7
  920. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1300000.json +0 -7
  921. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1310000.json +0 -7
  922. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1320000.json +0 -7
  923. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1330000.json +0 -7
  924. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1340000.json +0 -7
  925. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1350000.json +0 -7
  926. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1360000.json +0 -7
  927. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1370000.json +0 -7
  928. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1380000.json +0 -7
  929. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1390000.json +0 -7
  930. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1400000.json +0 -7
  931. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1410000.json +0 -7
  932. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1420000.json +0 -7
  933. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1430000.json +0 -7
  934. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1440000.json +0 -7
  935. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1450000.json +0 -7
  936. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1460000.json +0 -7
  937. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1470000.json +0 -7
  938. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1480000.json +0 -7
  939. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1490000.json +0 -7
  940. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1500000.json +0 -7
  941. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1510000.json +0 -7
  942. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1520000.json +0 -7
  943. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1530000.json +0 -7
  944. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1540000.json +0 -7
  945. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1550000.json +0 -7
  946. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1560000.json +0 -7
  947. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1570000.json +0 -7
  948. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1580000.json +0 -7
  949. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1590000.json +0 -7
  950. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1600000.json +0 -7
  951. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1610000.json +0 -7
  952. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1620000.json +0 -7
  953. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1630000.json +0 -7
  954. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1640000.json +0 -7
  955. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1650000.json +0 -7
  956. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1660000.json +0 -7
  957. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1670000.json +0 -7
  958. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1680000.json +0 -7
  959. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1690000.json +0 -7
  960. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1700000.json +0 -7
  961. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1710000.json +0 -7
  962. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1720000.json +0 -7
  963. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1730000.json +0 -7
  964. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1740000.json +0 -7
  965. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1750000.json +0 -7
  966. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1760000.json +0 -7
  967. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1770000.json +0 -7
  968. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1780000.json +0 -7
  969. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1790000.json +0 -7
  970. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1800000.json +0 -7
  971. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1810000.json +0 -7
  972. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1820000.json +0 -7
  973. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1830000.json +0 -7
  974. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1840000.json +0 -7
  975. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1850000.json +0 -7
  976. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1860000.json +0 -7
  977. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/280000.json +0 -7
  978. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/290000.json +0 -7
  979. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/300000.json +0 -7
  980. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/310000.json +0 -7
  981. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/320000.json +0 -7
  982. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/330000.json +0 -7
  983. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/340000.json +0 -7
  984. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/350000.json +0 -7
  985. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/360000.json +0 -7
  986. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/370000.json +0 -7
  987. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/380000.json +0 -7
  988. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/390000.json +0 -7
  989. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/400000.json +0 -7
  990. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/410000.json +0 -7
  991. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/420000.json +0 -7
  992. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/430000.json +0 -7
  993. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/440000.json +0 -7
  994. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/450000.json +0 -7
  995. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/460000.json +0 -7
  996. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/470000.json +0 -7
  997. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/480000.json +0 -7
  998. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/490000.json +0 -7
  999. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/500000.json +0 -7
  1000. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/510000.json +0 -7
  1001. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/520000.json +0 -7
  1002. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/530000.json +0 -7
  1003. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/540000.json +0 -7
  1004. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/550000.json +0 -7
  1005. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/560000.json +0 -7
  1006. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/570000.json +0 -7
  1007. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/580000.json +0 -7
  1008. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/590000.json +0 -7
  1009. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/600000.json +0 -7
  1010. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/610000.json +0 -7
  1011. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/620000.json +0 -7
  1012. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/630000.json +0 -7
  1013. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/640000.json +0 -7
  1014. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/650000.json +0 -7
  1015. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/660000.json +0 -7
  1016. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/670000.json +0 -7
  1017. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/680000.json +0 -7
  1018. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/690000.json +0 -7
  1019. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/700000.json +0 -7
  1020. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/710000.json +0 -7
  1021. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/720000.json +0 -7
  1022. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/730000.json +0 -7
  1023. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/740000.json +0 -7
  1024. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/750000.json +0 -7
  1025. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/760000.json +0 -7
  1026. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/770000.json +0 -7
  1027. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/780000.json +0 -7
  1028. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/790000.json +0 -7
  1029. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/800000.json +0 -7
  1030. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/810000.json +0 -7
  1031. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/820000.json +0 -7
  1032. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/830000.json +0 -7
  1033. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/840000.json +0 -7
  1034. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/850000.json +0 -7
  1035. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/860000.json +0 -7
  1036. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/870000.json +0 -7
  1037. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/880000.json +0 -7
  1038. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/890000.json +0 -7
  1039. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/900000.json +0 -7
  1040. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/910000.json +0 -7
  1041. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/920000.json +0 -7
  1042. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/930000.json +0 -7
  1043. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/940000.json +0 -7
  1044. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/950000.json +0 -7
  1045. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/960000.json +0 -7
  1046. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/970000.json +0 -7
  1047. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/980000.json +0 -7
  1048. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/990000.json +0 -7
  1049. package/ios/ZCashLightClientKit/Service/LightWalletGRPCService.swift +0 -551
  1050. package/ios/ZCashLightClientKit/Service/LightWalletService.swift +0 -214
  1051. package/ios/ZCashLightClientKit/Service/Model/ZcashCompactBlock.swift +0 -46
  1052. package/ios/ZCashLightClientKit/Service/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +0 -50
  1053. package/ios/ZCashLightClientKit/Service/ProtoBuf/compact_formats.pb.swift +0 -332
  1054. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/compact_formats.proto +0 -56
  1055. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/service.proto +0 -180
  1056. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.grpc.swift +0 -383
  1057. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.pb.swift +0 -1173
  1058. package/ios/ZCashLightClientKit/Transaction/PersistentTransactionManager.swift +0 -339
  1059. package/ios/ZCashLightClientKit/Transaction/TransactionManager.swift +0 -42
  1060. package/ios/ZCashLightClientKit/Utils/Bundle+module.swift +0 -30
@@ -9,695 +9,577 @@
9
9
  import Foundation
10
10
 
11
11
 
12
- class ZcashRustBackend: ZcashRustBackendWelding {
13
- static func lastError() -> RustWeldingError? {
14
- guard let message = getLastError() else { return nil }
12
+ actor ZcashRustBackend: ZcashRustBackendWelding {
13
+ let minimumConfirmations: UInt32 = 10
14
+ let useZIP317Fees = false
15
15
 
16
- zcashlc_clear_last_error()
16
+ let dbData: (String, UInt)
17
+ let fsBlockDbRoot: (String, UInt)
18
+ let spendParamsPath: (String, UInt)
19
+ let outputParamsPath: (String, UInt)
20
+ let keyDeriving: ZcashKeyDerivationBackendWelding
17
21
 
18
- if message.contains("couldn't load Sapling spend parameters") {
19
- return RustWeldingError.saplingSpendParametersNotFound
20
- } else if message.contains("is not empty") {
21
- return RustWeldingError.dataDbNotEmpty
22
- }
22
+ nonisolated let networkType: NetworkType
23
23
 
24
- return RustWeldingError.genericError(message: message)
25
- }
26
-
27
- static func getLastError() -> String? {
28
- let errorLen = zcashlc_last_error_length()
29
- if errorLen > 0 {
30
- let error = UnsafeMutablePointer<Int8>.allocate(capacity: Int(errorLen))
31
- zcashlc_error_message_utf8(error, errorLen)
32
- zcashlc_clear_last_error()
33
- return String(validatingUTF8: error)
34
- } else {
35
- return nil
36
- }
24
+ /// Creates instance of `ZcashRustBackend`.
25
+ /// - Parameters:
26
+ /// - dbData: `URL` pointing to file where data database will be.
27
+ /// - fsBlockDbRoot: `URL` pointing to the filesystem root directory where the fsBlock cache is.
28
+ /// this directory is expected to contain a `/blocks` sub-directory with the blocks stored in the convened filename
29
+ /// format `{height}-{hash}-block`. This directory has must be granted both write and read permissions.
30
+ /// - spendParamsPath: `URL` pointing to spend parameters file.
31
+ /// - outputParamsPath: `URL` pointing to output parameters file.
32
+ /// - networkType: Network type to use.
33
+ init(dbData: URL, fsBlockDbRoot: URL, spendParamsPath: URL, outputParamsPath: URL, networkType: NetworkType) {
34
+ self.dbData = dbData.osStr()
35
+ self.fsBlockDbRoot = fsBlockDbRoot.osPathStr()
36
+ self.spendParamsPath = spendParamsPath.osPathStr()
37
+ self.outputParamsPath = outputParamsPath.osPathStr()
38
+ self.networkType = networkType
39
+ self.keyDeriving = ZcashKeyDerivationBackend(networkType: networkType)
37
40
  }
38
-
39
- /**
40
- * Sets up the internal structure of the data database.
41
- */
42
- static func initDataDb(dbData: URL, networkType: NetworkType) throws {
43
- let dbData = dbData.osStr()
44
- guard zcashlc_init_data_database(dbData.0, dbData.1, networkType.networkId) != 0 else {
45
- if let error = lastError() {
46
- throw throwDataDbError(error)
47
- }
48
- throw RustWeldingError.dataDbInitFailed(message: "unknown error")
41
+
42
+ func createAccount(seed: [UInt8]) async throws -> UnifiedSpendingKey {
43
+ let ffiBinaryKeyPtr = zcashlc_create_account(
44
+ dbData.0,
45
+ dbData.1,
46
+ seed,
47
+ UInt(seed.count),
48
+ networkType.networkId
49
+ )
50
+
51
+ guard let ffiBinaryKeyPtr else {
52
+ throw ZcashError.rustCreateAccount(lastErrorMessage(fallback: "`createAccount` failed with unknown error"))
49
53
  }
54
+
55
+ defer { zcashlc_free_binary_key(ffiBinaryKeyPtr) }
56
+
57
+ return ffiBinaryKeyPtr.pointee.unsafeToUnifiedSpendingKey(network: networkType)
50
58
  }
51
-
52
- static func isValidShieldedAddress(_ address: String, networkType: NetworkType) throws -> Bool {
53
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
54
- return false
59
+
60
+ func createToAddress(
61
+ usk: UnifiedSpendingKey,
62
+ to address: String,
63
+ value: Int64,
64
+ memo: MemoBytes?
65
+ ) async throws -> Int64 {
66
+ let result = usk.bytes.withUnsafeBufferPointer { uskPtr in
67
+ zcashlc_create_to_address(
68
+ dbData.0,
69
+ dbData.1,
70
+ uskPtr.baseAddress,
71
+ UInt(usk.bytes.count),
72
+ [CChar](address.utf8CString),
73
+ value,
74
+ memo?.bytes,
75
+ spendParamsPath.0,
76
+ spendParamsPath.1,
77
+ outputParamsPath.0,
78
+ outputParamsPath.1,
79
+ networkType.networkId,
80
+ minimumConfirmations,
81
+ useZIP317Fees
82
+ )
55
83
  }
56
-
57
- guard zcashlc_is_valid_shielded_address([CChar](address.utf8CString), networkType.networkId) else {
58
- if let error = lastError() {
59
- throw error
60
- }
61
- return false
84
+
85
+ guard result > 0 else {
86
+ throw ZcashError.rustCreateToAddress(lastErrorMessage(fallback: "`createToAddress` failed with unknown error"))
62
87
  }
63
88
 
64
- return true
89
+ return result
65
90
  }
66
-
67
- static func isValidTransparentAddress(_ address: String, networkType: NetworkType) throws -> Bool {
68
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
69
- return false
91
+
92
+ func decryptAndStoreTransaction(txBytes: [UInt8], minedHeight: Int32) async throws {
93
+ let result = zcashlc_decrypt_and_store_transaction(
94
+ dbData.0,
95
+ dbData.1,
96
+ txBytes,
97
+ UInt(txBytes.count),
98
+ UInt32(minedHeight),
99
+ networkType.networkId
100
+ )
101
+
102
+ guard result != 0 else {
103
+ throw ZcashError.rustDecryptAndStoreTransaction(lastErrorMessage(fallback: "`decryptAndStoreTransaction` failed with unknown error"))
70
104
  }
71
-
72
- guard zcashlc_is_valid_transparent_address([CChar](address.utf8CString), networkType.networkId ) else {
73
- if let error = lastError() {
74
- throw error
75
- }
76
- return false
105
+ }
106
+
107
+ func getBalance(account: Int32) async throws -> Int64 {
108
+ let balance = zcashlc_get_balance(dbData.0, dbData.1, account, networkType.networkId)
109
+
110
+ guard balance >= 0 else {
111
+ throw ZcashError.rustGetBalance(Int(account), lastErrorMessage(fallback: "Error getting total balance from account \(account)"))
77
112
  }
78
113
 
79
- return true
114
+ return balance
80
115
  }
81
-
82
- static func isValidExtendedFullViewingKey(_ key: String, networkType: NetworkType) throws -> Bool {
83
- guard !key.containsCStringNullBytesBeforeStringEnding() else {
84
- return false
85
- }
86
-
87
- guard zcashlc_is_valid_viewing_key([CChar](key.utf8CString), networkType.networkId) else {
88
- if let error = lastError() {
89
- throw error
90
- }
91
- return false
92
- }
93
-
94
- return true
95
- }
96
-
97
- static func initAccountsTable(dbData: URL, seed: [UInt8], accounts: Int32, networkType: NetworkType) -> [String]? {
98
- let dbData = dbData.osStr()
99
- var capacity = UInt(0)
100
- let extsksCStr = zcashlc_init_accounts_table(dbData.0, dbData.1, seed, UInt(seed.count), accounts, &capacity, networkType.networkId)
101
- if extsksCStr == nil {
102
- return nil
103
- }
104
-
105
- let extsks = UnsafeBufferPointer(start: extsksCStr, count: Int(accounts)).compactMap({ cStr -> String? in
106
- guard let str = cStr else { return nil }
107
- return String(cString: str)
108
- })
109
- zcashlc_vec_string_free(extsksCStr, UInt(accounts), capacity)
110
-
111
- return extsks
112
- }
113
-
114
- static func initAccountsTable(dbData: URL, uvks: [UnifiedViewingKey], networkType: NetworkType) throws -> Bool {
115
- let dbData = dbData.osStr()
116
-
117
- var ffiUvks: [FFIUnifiedViewingKey] = []
118
- for uvk in uvks {
119
- guard !uvk.extfvk.containsCStringNullBytesBeforeStringEnding() else {
120
- throw RustWeldingError.malformedStringInput
121
- }
122
- guard !uvk.extpub.containsCStringNullBytesBeforeStringEnding() else {
123
- throw RustWeldingError.malformedStringInput
124
- }
125
-
126
- guard try self.isValidExtendedFullViewingKey(uvk.extfvk, networkType: networkType) else {
127
- throw RustWeldingError.malformedStringInput
128
- }
129
116
 
130
- let extfvkCStr = [CChar](String(uvk.extfvk).utf8CString)
131
-
132
- let extfvkPtr = UnsafeMutablePointer<CChar>.allocate(capacity: extfvkCStr.count)
133
- extfvkPtr.initialize(from: extfvkCStr, count: extfvkCStr.count)
134
-
135
- let extpubCStr = [CChar](String(uvk.extpub).utf8CString)
136
- let extpubPtr = UnsafeMutablePointer<CChar>.allocate(capacity: extpubCStr.count)
137
- extpubPtr.initialize(from: extpubCStr, count: extpubCStr.count)
138
-
139
- ffiUvks.append(FFIUnifiedViewingKey(extfvk: extfvkPtr, extpub: extpubPtr))
140
- }
141
-
142
- var result = false
117
+ func getCurrentAddress(account: Int32) async throws -> UnifiedAddress {
118
+ let addressCStr = zcashlc_get_current_address(
119
+ dbData.0,
120
+ dbData.1,
121
+ account,
122
+ networkType.networkId
123
+ )
143
124
 
144
- ffiUvks.withContiguousMutableStorageIfAvailable { pointer in
145
- let slice = UnsafeMutablePointer<FFIUVKBoxedSlice>.allocate(capacity: 1)
146
- slice.initialize(to: FFIUVKBoxedSlice(ptr: pointer.baseAddress, len: UInt(pointer.count)))
147
-
148
- result = zcashlc_init_accounts_table_with_keys(dbData.0, dbData.1, slice, networkType.networkId)
149
- slice.deinitialize(count: 1)
125
+ guard let addressCStr else {
126
+ throw ZcashError.rustGetCurrentAddress(lastErrorMessage(fallback: "`getCurrentAddress` failed with unknown error"))
150
127
  }
151
-
152
- defer {
153
- for uvk in ffiUvks {
154
- uvk.extfvk.deallocate()
155
- uvk.extpub.deallocate()
156
- }
128
+
129
+ defer { zcashlc_string_free(addressCStr) }
130
+
131
+ guard let address = String(validatingUTF8: addressCStr) else {
132
+ throw ZcashError.rustGetCurrentAddressInvalidAddress
157
133
  }
158
-
159
- return result
134
+
135
+ return UnifiedAddress(validatedEncoding: address, networkType: networkType)
160
136
  }
161
- // swiftlint:disable function_parameter_count
162
- static func initBlocksTable(
163
- dbData: URL,
164
- height: Int32,
165
- hash: String,
166
- time: UInt32,
167
- saplingTree: String,
168
- networkType: NetworkType
169
- ) throws {
170
- let dbData = dbData.osStr()
171
-
172
- guard !hash.containsCStringNullBytesBeforeStringEnding() else {
173
- throw RustWeldingError.malformedStringInput
174
- }
175
-
176
- guard !saplingTree.containsCStringNullBytesBeforeStringEnding() else {
177
- throw RustWeldingError.malformedStringInput
178
- }
179
-
180
- guard zcashlc_init_blocks_table(
137
+
138
+ func getNearestRewindHeight(height: Int32) async throws -> Int32 {
139
+ let result = zcashlc_get_nearest_rewind_height(
181
140
  dbData.0,
182
141
  dbData.1,
183
142
  height,
184
- [CChar](hash.utf8CString),
185
- time,
186
- [CChar](saplingTree.utf8CString),
187
143
  networkType.networkId
188
- ) != 0 else {
189
- if let error = lastError() {
190
- throw error
191
- }
192
- throw RustWeldingError.dataDbInitFailed(message: "Unknown Error")
193
- }
194
- }
195
-
196
- static func getAddress(dbData: URL, account: Int32, networkType: NetworkType) -> String? {
197
- let dbData = dbData.osStr()
198
-
199
- guard let addressCStr = zcashlc_get_address(dbData.0, dbData.1, account, networkType.networkId) else { return nil }
200
-
201
- let address = String(validatingUTF8: addressCStr)
202
- zcashlc_string_free(addressCStr)
203
- return address
204
- }
205
-
206
- static func getBalance(dbData: URL, account: Int32, networkType: NetworkType) -> Int64 {
207
- let dbData = dbData.osStr()
208
- return zcashlc_get_balance(dbData.0, dbData.1, account, networkType.networkId)
209
- }
210
-
211
- static func getVerifiedBalance(dbData: URL, account: Int32, networkType: NetworkType) -> Int64 {
212
- let dbData = dbData.osStr()
213
- return zcashlc_get_verified_balance(dbData.0, dbData.1, account, networkType.networkId)
214
- }
215
-
216
- static func getVerifiedTransparentBalance(dbData: URL, address: String, networkType: NetworkType) throws -> Int64 {
217
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
218
- throw RustWeldingError.malformedStringInput
219
- }
220
-
221
- guard try isValidTransparentAddress(address, networkType: networkType) else {
222
- throw RustWeldingError.unableToDeriveKeys
223
- }
224
-
225
- let dbData = dbData.osStr()
226
-
227
- return zcashlc_get_verified_transparent_balance(dbData.0, dbData.1, [CChar](address.utf8CString), networkType.networkId)
228
- }
229
-
230
- static func getTransparentBalance(dbData: URL, address: String, networkType: NetworkType) throws -> Int64 {
231
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
232
- throw RustWeldingError.malformedStringInput
233
- }
234
-
235
- guard try self.isValidTransparentAddress(address, networkType: networkType) else {
236
- throw RustWeldingError.unableToDeriveKeys
237
- }
238
-
239
- let dbData = dbData.osStr()
240
- return zcashlc_get_total_transparent_balance(dbData.0, dbData.1, [CChar](address.utf8CString), networkType.networkId)
241
- }
242
-
243
- static func clearUtxos(dbData: URL, address: String, sinceHeight: BlockHeight, networkType: NetworkType) throws -> Int32 {
244
- let dbData = dbData.osStr()
245
-
246
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
247
- throw RustWeldingError.malformedStringInput
248
- }
249
-
250
- guard try isValidTransparentAddress(address, networkType: networkType) else {
251
- throw RustWeldingError.unableToDeriveKeys
252
- }
253
-
254
- let result = zcashlc_clear_utxos(dbData.0, dbData.1, [CChar](address.utf8CString), Int32(sinceHeight), networkType.networkId)
255
-
144
+ )
145
+
256
146
  guard result > 0 else {
257
- if let error = lastError() {
258
- throw error
259
- }
260
- return result
147
+ throw ZcashError.rustGetNearestRewindHeight(lastErrorMessage(fallback: "`getNearestRewindHeight` failed with unknown error"))
261
148
  }
149
+
262
150
  return result
263
151
  }
264
-
265
- static func putUnspentTransparentOutput(dbData: URL, address: String, txid: [UInt8], index: Int, script: [UInt8], value: Int64, height: BlockHeight, networkType: NetworkType) throws -> Bool {
266
- let dbData = dbData.osStr()
267
-
268
- guard !address.containsCStringNullBytesBeforeStringEnding() else {
269
- throw RustWeldingError.malformedStringInput
270
- }
271
-
272
- guard zcashlc_put_utxo(
152
+
153
+ func getNextAvailableAddress(account: Int32) async throws -> UnifiedAddress {
154
+ let addressCStr = zcashlc_get_next_available_address(
273
155
  dbData.0,
274
156
  dbData.1,
275
- [CChar](address.utf8CString),
276
- txid,
277
- UInt(txid.count),
278
- Int32(index),
279
- script,
280
- UInt(script.count),
281
- value,
282
- Int32(height),
157
+ account,
283
158
  networkType.networkId
284
- ) else {
285
- if let error = lastError() {
286
- throw error
287
- }
288
- return false
289
- }
290
-
291
- return true
292
- }
293
-
294
- static func downloadedUtxoBalance(dbData: URL, address: String, networkType: NetworkType) throws -> WalletBalance {
295
- let verified = try getVerifiedTransparentBalance(dbData: dbData, address: address, networkType: networkType)
296
- let total = try getTransparentBalance(dbData: dbData, address: address, networkType: networkType)
297
- return TransparentBalance(verified: verified, total: total, address: address)
298
- }
299
-
300
- static func getReceivedMemoAsUTF8(dbData: URL, idNote: Int64, networkType: NetworkType) -> String? {
301
- let dbData = dbData.osStr()
302
-
303
- guard let memoCStr = zcashlc_get_received_memo_as_utf8(dbData.0, dbData.1, idNote, networkType.networkId) else { return nil }
304
-
305
- let memo = String(validatingUTF8: memoCStr)
306
- zcashlc_string_free(memoCStr)
307
- return memo
308
- }
309
-
310
- static func getSentMemoAsUTF8(dbData: URL, idNote: Int64, networkType: NetworkType) -> String? {
311
- let dbData = dbData.osStr()
312
-
313
- guard let memoCStr = zcashlc_get_sent_memo_as_utf8(dbData.0, dbData.1, idNote, networkType.networkId) else { return nil }
314
-
315
- let memo = String(validatingUTF8: memoCStr)
316
- zcashlc_string_free(memoCStr)
317
- return memo
318
- }
319
-
320
- static func validateCombinedChain(dbCache: URL, dbData: URL, networkType: NetworkType) -> Int32 {
321
- let dbCache = dbCache.osStr()
322
- let dbData = dbData.osStr()
323
- return zcashlc_validate_combined_chain(dbCache.0, dbCache.1, dbData.0, dbData.1, networkType.networkId)
324
- }
325
-
326
- static func getNearestRewindHeight(dbData: URL, height: Int32, networkType: NetworkType) -> Int32 {
327
- let dbData = dbData.osStr()
328
- return zcashlc_get_nearest_rewind_height(dbData.0, dbData.1, height, networkType.networkId)
329
- }
330
-
331
- static func rewindToHeight(dbData: URL, height: Int32, networkType: NetworkType) -> Bool {
332
- let dbData = dbData.osStr()
333
- return zcashlc_rewind_to_height(dbData.0, dbData.1, height, networkType.networkId)
334
- }
335
-
336
- static func scanBlocks(dbCache: URL, dbData: URL, limit: UInt32 = 0, networkType: NetworkType) -> Bool {
337
- let dbCache = dbCache.osStr()
338
- let dbData = dbData.osStr()
339
- return zcashlc_scan_blocks(dbCache.0, dbCache.1, dbData.0, dbData.1, limit, networkType.networkId) != 0
340
- }
341
-
342
- static func decryptAndStoreTransaction(dbData: URL, txBytes: [UInt8], minedHeight: Int32, networkType: NetworkType) -> Bool {
343
- let dbData = dbData.osStr()
344
- return zcashlc_decrypt_and_store_transaction(
159
+ )
160
+
161
+ guard let addressCStr else {
162
+ throw ZcashError.rustGetNextAvailableAddress(lastErrorMessage(fallback: "`getNextAvailableAddress` failed with unknown error"))
163
+ }
164
+
165
+ defer { zcashlc_string_free(addressCStr) }
166
+
167
+ guard let address = String(validatingUTF8: addressCStr) else {
168
+ throw ZcashError.rustGetNextAvailableAddressInvalidAddress
169
+ }
170
+
171
+ return UnifiedAddress(validatedEncoding: address, networkType: networkType)
172
+ }
173
+
174
+ func getReceivedMemo(idNote: Int64) async -> Memo? {
175
+ var contiguousMemoBytes = ContiguousArray<UInt8>(MemoBytes.empty().bytes)
176
+ var success = false
177
+
178
+ contiguousMemoBytes.withUnsafeMutableBufferPointer { memoBytePtr in
179
+ success = zcashlc_get_received_memo(dbData.0, dbData.1, idNote, memoBytePtr.baseAddress, networkType.networkId)
180
+ }
181
+
182
+ guard success else { return nil }
183
+
184
+ return (try? MemoBytes(contiguousBytes: contiguousMemoBytes)).flatMap { try? $0.intoMemo() }
185
+ }
186
+
187
+ func getSentMemo(idNote: Int64) async -> Memo? {
188
+ var contiguousMemoBytes = ContiguousArray<UInt8>(MemoBytes.empty().bytes)
189
+ var success = false
190
+
191
+ contiguousMemoBytes.withUnsafeMutableBytes { memoBytePtr in
192
+ success = zcashlc_get_sent_memo(dbData.0, dbData.1, idNote, memoBytePtr.baseAddress, networkType.networkId)
193
+ }
194
+
195
+ guard success else { return nil }
196
+
197
+ return (try? MemoBytes(contiguousBytes: contiguousMemoBytes)).flatMap { try? $0.intoMemo() }
198
+ }
199
+
200
+ func getTransparentBalance(account: Int32) async throws -> Int64 {
201
+ guard account >= 0 else {
202
+ throw ZcashError.rustGetTransparentBalanceNegativeAccount(Int(account))
203
+ }
204
+
205
+ let balance = zcashlc_get_total_transparent_balance_for_account(
345
206
  dbData.0,
346
207
  dbData.1,
347
- txBytes,
348
- UInt(txBytes.count),
349
- UInt32(minedHeight),
350
- networkType.networkId
351
- ) != 0
208
+ networkType.networkId,
209
+ account
210
+ )
211
+
212
+ guard balance >= 0 else {
213
+ throw ZcashError.rustGetTransparentBalance(
214
+ Int(account),
215
+ lastErrorMessage(fallback: "Error getting Total Transparent balance from account \(account)")
216
+ )
217
+ }
218
+
219
+ return balance
352
220
  }
353
221
 
354
- // swiftlint:disable function_parameter_count
355
- static func createToAddress(
356
- dbData: URL,
357
- account: Int32,
358
- extsk: String,
359
- to address: String,
360
- value: Int64,
361
- memo: String?,
362
- spendParamsPath: String,
363
- outputParamsPath: String,
364
- networkType: NetworkType
365
- ) -> Int64 {
366
- let dbData = dbData.osStr()
367
- let memoBytes = memo ?? ""
368
-
369
- return zcashlc_create_to_address(
222
+ func getVerifiedBalance(account: Int32) async throws -> Int64 {
223
+ let balance = zcashlc_get_verified_balance(
370
224
  dbData.0,
371
225
  dbData.1,
372
226
  account,
373
- [CChar](extsk.utf8CString),
374
- [CChar](address.utf8CString),
375
- value,
376
- [CChar](memoBytes.utf8CString),
377
- spendParamsPath,
378
- UInt(spendParamsPath.lengthOfBytes(using: .utf8)),
379
- outputParamsPath,
380
- UInt(outputParamsPath.lengthOfBytes(using: .utf8)),
381
- networkType.networkId
227
+ networkType.networkId,
228
+ minimumConfirmations
382
229
  )
230
+
231
+ guard balance >= 0 else {
232
+ throw ZcashError.rustGetVerifiedBalance(
233
+ Int(account),
234
+ lastErrorMessage(fallback: "Error getting verified balance from account \(account)")
235
+ )
236
+ }
237
+
238
+ return balance
383
239
  }
384
-
385
- static func shieldFunds(
386
- dbCache: URL,
387
- dbData: URL,
388
- account: Int32,
389
- tsk: String,
390
- extsk: String,
391
- memo: String?,
392
- spendParamsPath: String,
393
- outputParamsPath: String,
394
- networkType: NetworkType
395
- ) -> Int64 {
396
- let dbData = dbData.osStr()
397
- let memoBytes = memo ?? ""
398
-
399
- return zcashlc_shield_funds(
240
+
241
+ func getVerifiedTransparentBalance(account: Int32) async throws -> Int64 {
242
+ guard account >= 0 else {
243
+ throw ZcashError.rustGetVerifiedTransparentBalanceNegativeAccount(Int(account))
244
+ }
245
+
246
+ let balance = zcashlc_get_verified_transparent_balance_for_account(
400
247
  dbData.0,
401
248
  dbData.1,
249
+ networkType.networkId,
402
250
  account,
403
- [CChar](tsk.utf8CString),
404
- [CChar](extsk.utf8CString),
405
- [CChar](memoBytes.utf8CString),
406
- spendParamsPath,
407
- UInt(spendParamsPath.lengthOfBytes(using: .utf8)),
408
- outputParamsPath,
409
- UInt(outputParamsPath.lengthOfBytes(using: .utf8)),
410
- networkType.networkId
251
+ minimumConfirmations
411
252
  )
253
+
254
+ guard balance >= 0 else {
255
+ throw ZcashError.rustGetVerifiedTransparentBalance(
256
+ Int(account),
257
+ lastErrorMessage(fallback: "Error getting verified transparent balance from account \(account)")
258
+ )
259
+ }
260
+
261
+ return balance
412
262
  }
413
-
414
- static func deriveExtendedFullViewingKey(_ spendingKey: String, networkType: NetworkType) throws -> String? {
415
- guard !spendingKey.containsCStringNullBytesBeforeStringEnding() else {
416
- throw RustWeldingError.malformedStringInput
263
+
264
+ func initDataDb(seed: [UInt8]?) async throws -> DbInitResult {
265
+ switch zcashlc_init_data_database(dbData.0, dbData.1, seed, UInt(seed?.count ?? 0), networkType.networkId) {
266
+ case 0: // ok
267
+ return DbInitResult.success
268
+ case 1:
269
+ return DbInitResult.seedRequired
270
+ default:
271
+ throw ZcashError.rustInitDataDb(lastErrorMessage(fallback: "`initDataDb` failed with unknown error"))
417
272
  }
418
-
419
- guard
420
- let extsk = zcashlc_derive_extended_full_viewing_key(
421
- [CChar](spendingKey.utf8CString),
422
- networkType.networkId
423
- )
424
- else {
425
- if let error = lastError() {
426
- throw error
273
+ }
274
+
275
+ func initAccountsTable(ufvks: [UnifiedFullViewingKey]) async throws {
276
+ var ffiUfvks: [FFIEncodedKey] = []
277
+ for ufvk in ufvks {
278
+ guard !ufvk.encoding.containsCStringNullBytesBeforeStringEnding() else {
279
+ throw ZcashError.rustInitAccountsTableViewingKeyCotainsNullBytes
427
280
  }
428
- return nil
429
- }
430
-
431
- let derived = String(validatingUTF8: extsk)
432
-
433
- zcashlc_string_free(extsk)
434
- return derived
435
- }
436
-
437
- static func deriveExtendedFullViewingKeys(seed: [UInt8], accounts: Int32, networkType: NetworkType) throws -> [String]? {
438
- var capacity = UInt(0)
439
- guard
440
- let extsksCStr = zcashlc_derive_extended_full_viewing_keys(
441
- seed,
442
- UInt(seed.count),
443
- accounts,
444
- &capacity,
445
- networkType.networkId
446
- )
447
- else {
448
- if let error = lastError() {
449
- throw error
281
+
282
+ guard self.keyDeriving.isValidUnifiedFullViewingKey(ufvk.encoding) else {
283
+ throw ZcashError.rustInitAccountsTableViewingKeyIsInvalid
450
284
  }
451
- return nil
452
- }
453
-
454
- let extsks = UnsafeBufferPointer(start: extsksCStr, count: Int(accounts)).compactMap { cStr -> String? in
455
- guard let str = cStr else { return nil }
456
- return String(cString: str)
457
- }
458
-
459
- zcashlc_vec_string_free(extsksCStr, UInt(accounts), capacity)
460
- return extsks
461
- }
462
-
463
- static func deriveExtendedSpendingKeys(seed: [UInt8], accounts: Int32, networkType: NetworkType) throws -> [String]? {
464
- var capacity = UInt(0)
465
- guard
466
- let extsksCStr = zcashlc_derive_extended_spending_keys(
467
- seed,
468
- UInt(seed.count),
469
- accounts,
470
- &capacity,
471
- networkType.networkId
285
+
286
+ let ufvkCStr = [CChar](String(ufvk.encoding).utf8CString)
287
+
288
+ let ufvkPtr = UnsafeMutablePointer<CChar>.allocate(capacity: ufvkCStr.count)
289
+ ufvkPtr.initialize(from: ufvkCStr, count: ufvkCStr.count)
290
+
291
+ ffiUfvks.append(
292
+ FFIEncodedKey(account_id: ufvk.account, encoding: ufvkPtr)
472
293
  )
473
- else {
474
- if let error = lastError() {
475
- throw error
476
- }
477
- return nil
478
- }
479
-
480
- let extsks = UnsafeBufferPointer(start: extsksCStr, count: Int(accounts)).compactMap { cStr -> String? in
481
- guard let str = cStr else { return nil }
482
- return String(cString: str)
483
294
  }
484
295
 
485
- zcashlc_vec_string_free(extsksCStr, UInt(accounts), capacity)
296
+ var contiguousUVKs = ContiguousArray(ffiUfvks)
486
297
 
487
- return extsks
488
- }
298
+ var result = false
489
299
 
490
- static func deriveUnifiedViewingKeyFromSeed(
491
- _ seed: [UInt8],
492
- numberOfAccounts: Int,
493
- networkType: NetworkType
494
- ) throws -> [UnifiedViewingKey] {
495
- guard
496
- let uvksStruct = zcashlc_derive_unified_viewing_keys_from_seed(
497
- seed,
498
- UInt(seed.count),
499
- Int32(numberOfAccounts),
300
+ contiguousUVKs.withContiguousMutableStorageIfAvailable { ufvksPtr in
301
+ result = zcashlc_init_accounts_table_with_keys(
302
+ dbData.0,
303
+ dbData.1,
304
+ ufvksPtr.baseAddress,
305
+ UInt(ufvks.count),
500
306
  networkType.networkId
501
307
  )
502
- else {
503
- if let error = lastError() {
504
- throw error
308
+ }
309
+
310
+ defer {
311
+ for ufvk in ffiUfvks {
312
+ ufvk.encoding.deallocate()
505
313
  }
506
- throw RustWeldingError.unableToDeriveKeys
507
314
  }
508
-
509
- let uvksSize = uvksStruct.pointee.len
510
315
 
511
- guard let uvksArrayPointer = uvksStruct.pointee.ptr, uvksSize > 0 else {
512
- throw RustWeldingError.unableToDeriveKeys
316
+ guard result else {
317
+ let message = lastErrorMessage(fallback: "`initAccountsTable` failed with unknown error")
318
+ if message.isDbNotEmptyErrorMessage() {
319
+ throw ZcashError.rustInitAccountsTableDataDbNotEmpty
320
+ } else {
321
+ throw ZcashError.rustInitAccountsTable(message)
322
+ }
513
323
  }
324
+ }
325
+
326
+ func initBlockMetadataDb() async throws {
327
+ let result = zcashlc_init_block_metadata_db(fsBlockDbRoot.0, fsBlockDbRoot.1)
514
328
 
515
- var uvks: [UnifiedViewingKey] = []
516
-
517
- for item in 0 ..< Int(uvksSize) {
518
- let itemPointer = uvksArrayPointer.advanced(by: item)
519
-
520
- guard let extfvk = String(validatingUTF8: itemPointer.pointee.extfvk) else {
521
- throw RustWeldingError.unableToDeriveKeys
329
+ guard result else {
330
+ throw ZcashError.rustInitBlockMetadataDb(lastErrorMessage(fallback: "`initBlockMetadataDb` failed with unknown error"))
331
+ }
332
+ }
333
+
334
+ func writeBlocksMetadata(blocks: [ZcashCompactBlock]) async throws {
335
+ var ffiBlockMetaVec: [FFIBlockMeta] = []
336
+
337
+ for block in blocks {
338
+ let meta = block.meta
339
+ let hashPtr = UnsafeMutablePointer<UInt8>.allocate(capacity: meta.hash.count)
340
+
341
+ let contiguousHashBytes = ContiguousArray(meta.hash.bytes)
342
+
343
+ let result: Void? = contiguousHashBytes.withContiguousStorageIfAvailable { hashBytesPtr in
344
+ // swiftlint:disable:next force_unwrapping
345
+ hashPtr.initialize(from: hashBytesPtr.baseAddress!, count: hashBytesPtr.count)
522
346
  }
523
-
524
- guard let extpub = String(validatingUTF8: itemPointer.pointee.extpub) else {
525
- throw RustWeldingError.unableToDeriveKeys
347
+
348
+ guard result != nil else {
349
+ defer {
350
+ hashPtr.deallocate()
351
+ ffiBlockMetaVec.deallocateElements()
352
+ }
353
+ throw ZcashError.rustWriteBlocksMetadataAllocationProblem
526
354
  }
527
-
528
- uvks.append(UVK(extfvk: extfvk, extpub: extpub))
529
- }
530
-
531
- zcashlc_free_uvk_array(uvksStruct)
532
-
533
- return uvks
534
- }
535
-
536
- static func deriveShieldedAddressFromSeed(
537
- seed: [UInt8],
538
- accountIndex: Int32,
539
- networkType: NetworkType
540
- ) throws -> String? {
541
- guard
542
- let zaddrCStr = zcashlc_derive_shielded_address_from_seed(
543
- seed,
544
- UInt(seed.count),
545
- accountIndex,
546
- networkType.networkId
355
+
356
+ ffiBlockMetaVec.append(
357
+ FFIBlockMeta(
358
+ height: UInt32(block.height),
359
+ block_hash_ptr: hashPtr,
360
+ block_hash_ptr_len: UInt(contiguousHashBytes.count),
361
+ block_time: meta.time,
362
+ sapling_outputs_count: meta.saplingOutputs,
363
+ orchard_actions_count: meta.orchardOutputs
364
+ )
547
365
  )
548
- else {
549
- if let error = lastError() {
550
- throw error
366
+ }
367
+
368
+ var contiguousFFIBlocks = ContiguousArray(ffiBlockMetaVec)
369
+
370
+ let len = UInt(contiguousFFIBlocks.count)
371
+
372
+ let fsBlocks = UnsafeMutablePointer<FFIBlocksMeta>.allocate(capacity: 1)
373
+
374
+ defer { ffiBlockMetaVec.deallocateElements() }
375
+
376
+ try contiguousFFIBlocks.withContiguousMutableStorageIfAvailable { ptr in
377
+ var meta = FFIBlocksMeta()
378
+ meta.ptr = ptr.baseAddress
379
+ meta.len = len
380
+
381
+ fsBlocks.initialize(to: meta)
382
+
383
+ let res = zcashlc_write_block_metadata(fsBlockDbRoot.0, fsBlockDbRoot.1, fsBlocks)
384
+
385
+ guard res else {
386
+ throw ZcashError.rustWriteBlocksMetadata(lastErrorMessage(fallback: "`writeBlocksMetadata` failed with unknown error"))
551
387
  }
552
- return nil
553
- }
554
- let zAddr = String(validatingUTF8: zaddrCStr)
555
-
556
- zcashlc_string_free(zaddrCStr)
557
-
558
- return zAddr
559
- }
560
-
561
- static func deriveShieldedAddressFromViewingKey(
562
- _ extfvk: String,
563
- networkType: NetworkType
564
- ) throws -> String? {
565
- guard !extfvk.containsCStringNullBytesBeforeStringEnding() else {
566
- throw RustWeldingError.malformedStringInput
567
- }
568
- guard
569
- let zaddrCStr = zcashlc_derive_shielded_address_from_viewing_key(
570
- [CChar](extfvk.utf8CString),
571
- networkType.networkId
572
- )
573
- else {
574
- if let error = lastError() {
575
- throw error
388
+ }
389
+ }
390
+
391
+ func initBlocksTable(
392
+ height: Int32,
393
+ hash: String,
394
+ time: UInt32,
395
+ saplingTree: String
396
+ ) async throws {
397
+ guard !hash.containsCStringNullBytesBeforeStringEnding() else {
398
+ throw ZcashError.rustInitBlocksTableHashContainsNullBytes
399
+ }
400
+
401
+ guard !saplingTree.containsCStringNullBytesBeforeStringEnding() else {
402
+ throw ZcashError.rustInitBlocksTableSaplingTreeContainsNullBytes
403
+ }
404
+
405
+ let result = zcashlc_init_blocks_table(
406
+ dbData.0,
407
+ dbData.1,
408
+ height,
409
+ [CChar](hash.utf8CString),
410
+ time,
411
+ [CChar](saplingTree.utf8CString),
412
+ networkType.networkId
413
+ )
414
+
415
+ guard result != 0 else {
416
+ let message = lastErrorMessage(fallback: "`initBlocksTable` failed with unknown error")
417
+ if message.isDbNotEmptyErrorMessage() {
418
+ throw ZcashError.rustInitBlocksTableDataDbNotEmpty
419
+ } else {
420
+ throw ZcashError.rustInitBlocksTable(message)
576
421
  }
577
- return nil
578
- }
579
- let zAddr = String(validatingUTF8: zaddrCStr)
580
-
581
- zcashlc_string_free(zaddrCStr)
582
-
583
- return zAddr
584
- }
585
-
586
- static func deriveTransparentAddressFromSeed(
587
- seed: [UInt8],
588
- account: Int,
589
- index: Int,
590
- networkType: NetworkType
591
- ) throws -> String? {
592
- guard
593
- let tAddrCStr = zcashlc_derive_transparent_address_from_seed(
594
- seed,
595
- UInt(seed.count),
596
- Int32(account),
597
- Int32(index),
598
- networkType.networkId
599
- )
600
- else {
601
- if let error = lastError() {
602
- throw error
422
+ }
423
+ }
424
+
425
+ func latestCachedBlockHeight() async -> BlockHeight {
426
+ return BlockHeight(zcashlc_latest_cached_block_height(fsBlockDbRoot.0, fsBlockDbRoot.1))
427
+ }
428
+
429
+ func listTransparentReceivers(account: Int32) async throws -> [TransparentAddress] {
430
+ let encodedKeysPtr = zcashlc_list_transparent_receivers(
431
+ dbData.0,
432
+ dbData.1,
433
+ account,
434
+ networkType.networkId
435
+ )
436
+
437
+ guard let encodedKeysPtr else {
438
+ throw ZcashError.rustListTransparentReceivers(lastErrorMessage(fallback: "`listTransparentReceivers` failed with unknown error"))
439
+ }
440
+
441
+ defer { zcashlc_free_keys(encodedKeysPtr) }
442
+
443
+ var addresses: [TransparentAddress] = []
444
+
445
+ for i in (0 ..< Int(encodedKeysPtr.pointee.len)) {
446
+ let key = encodedKeysPtr.pointee.ptr.advanced(by: i).pointee
447
+
448
+ guard let taddrStr = String(validatingUTF8: key.encoding) else {
449
+ throw ZcashError.rustListTransparentReceiversInvalidAddress
603
450
  }
604
- return nil
451
+
452
+ addresses.append(
453
+ TransparentAddress(validatedEncoding: taddrStr)
454
+ )
605
455
  }
606
-
607
- let tAddr = String(validatingUTF8: tAddrCStr)
608
-
609
- return tAddr
456
+
457
+ return addresses
610
458
  }
611
-
612
- static func deriveTransparentPrivateKeyFromSeed(
613
- seed: [UInt8],
614
- account: Int,
459
+
460
+ func putUnspentTransparentOutput(
461
+ txid: [UInt8],
615
462
  index: Int,
616
- networkType: NetworkType
617
- ) throws -> String? {
618
- guard
619
- let skCStr = zcashlc_derive_transparent_private_key_from_seed(
620
- seed,
621
- UInt(seed.count),
622
- Int32(account),
623
- Int32(index),
624
- networkType.networkId
463
+ script: [UInt8],
464
+ value: Int64,
465
+ height: BlockHeight
466
+ ) async throws {
467
+ let result = zcashlc_put_utxo(
468
+ dbData.0,
469
+ dbData.1,
470
+ txid,
471
+ UInt(txid.count),
472
+ Int32(index),
473
+ script,
474
+ UInt(script.count),
475
+ value,
476
+ Int32(height),
477
+ networkType.networkId
478
+ )
479
+
480
+ guard result else {
481
+ throw ZcashError.rustPutUnspentTransparentOutput(lastErrorMessage(fallback: "`putUnspentTransparentOutput` failed with unknown error"))
482
+ }
483
+ }
484
+
485
+ func validateCombinedChain(limit: UInt32 = 0) async throws {
486
+ let result = zcashlc_validate_combined_chain(fsBlockDbRoot.0, fsBlockDbRoot.1, dbData.0, dbData.1, limit, networkType.networkId)
487
+
488
+ switch result {
489
+ case -1:
490
+ return
491
+ case 0:
492
+ throw ZcashError.rustValidateCombinedChainValidationFailed(
493
+ lastErrorMessage(fallback: "`validateCombinedChain` failed with unknown error")
625
494
  )
626
- else {
627
- if let error = lastError() {
628
- throw error
629
- }
630
- return nil
631
- }
632
- let secretKey = String(validatingUTF8: skCStr)
633
-
634
- return secretKey
635
- }
636
-
637
- static func derivedTransparentAddressFromPublicKey(
638
- _ pubkey: String,
639
- networkType: NetworkType
640
- ) throws -> String {
641
- guard !pubkey.containsCStringNullBytesBeforeStringEnding() else {
642
- throw RustWeldingError.malformedStringInput
643
- }
644
-
645
- guard
646
- let tAddrCStr = zcashlc_derive_transparent_address_from_public_key(
647
- [CChar](pubkey.utf8CString),
648
- networkType.networkId
649
- ),
650
- let tAddr = String(validatingUTF8: tAddrCStr)
651
- else {
652
- if let error = lastError() {
653
- throw error
654
- }
655
- throw RustWeldingError.unableToDeriveKeys
495
+ default:
496
+ throw ZcashError.rustValidateCombinedChainInvalidChain(result)
656
497
  }
498
+ }
499
+
500
+ func rewindToHeight(height: Int32) async throws {
501
+ let result = zcashlc_rewind_to_height(dbData.0, dbData.1, height, networkType.networkId)
657
502
 
658
- return tAddr
503
+ guard result else {
504
+ throw ZcashError.rustRewindToHeight(height, lastErrorMessage(fallback: "`rewindToHeight` failed with unknown error"))
505
+ }
659
506
  }
660
-
661
- static func deriveTransparentAddressFromSecretKey(_ tsk: String, networkType: NetworkType) throws -> String? {
662
- guard !tsk.containsCStringNullBytesBeforeStringEnding() else {
663
- throw RustWeldingError.malformedStringInput
507
+
508
+ func rewindCacheToHeight(height: Int32) async throws {
509
+ let result = zcashlc_rewind_fs_block_cache_to_height(fsBlockDbRoot.0, fsBlockDbRoot.1, height)
510
+
511
+ guard result else {
512
+ throw ZcashError.rustRewindCacheToHeight(lastErrorMessage(fallback: "`rewindCacheToHeight` failed with unknown error"))
664
513
  }
665
-
666
- guard let tAddrCStr = zcashlc_derive_transparent_address_from_secret_key([CChar](tsk.utf8CString), networkType.networkId) else {
667
- if let error = lastError() {
668
- throw error
669
- }
670
- return nil
514
+ }
515
+
516
+ func scanBlocks(limit: UInt32 = 0) async throws {
517
+ let result = zcashlc_scan_blocks(fsBlockDbRoot.0, fsBlockDbRoot.1, dbData.0, dbData.1, limit, networkType.networkId)
518
+
519
+ guard result != 0 else {
520
+ throw ZcashError.rustScanBlocks(lastErrorMessage(fallback: "`scanBlocks` failed with unknown error"))
521
+ }
522
+ }
523
+
524
+ func shieldFunds(
525
+ usk: UnifiedSpendingKey,
526
+ memo: MemoBytes?,
527
+ shieldingThreshold: Zatoshi
528
+ ) async throws -> Int64 {
529
+ let result = usk.bytes.withUnsafeBufferPointer { uskBuffer in
530
+ zcashlc_shield_funds(
531
+ dbData.0,
532
+ dbData.1,
533
+ uskBuffer.baseAddress,
534
+ UInt(usk.bytes.count),
535
+ memo?.bytes,
536
+ UInt64(shieldingThreshold.amount),
537
+ spendParamsPath.0,
538
+ spendParamsPath.1,
539
+ outputParamsPath.0,
540
+ outputParamsPath.1,
541
+ networkType.networkId,
542
+ minimumConfirmations,
543
+ useZIP317Fees
544
+ )
545
+ }
546
+
547
+ guard result > 0 else {
548
+ throw ZcashError.rustShieldFunds(lastErrorMessage(fallback: "`shieldFunds` failed with unknown error"))
671
549
  }
672
550
 
673
- let tAddr = String(validatingUTF8: tAddrCStr)
674
-
675
- return tAddr
551
+ return result
676
552
  }
677
-
678
- static func consensusBranchIdFor(height: Int32, networkType: NetworkType) throws -> Int32 {
553
+
554
+ nonisolated func consensusBranchIdFor(height: Int32) throws -> Int32 {
679
555
  let branchId = zcashlc_branch_id_for_height(height, networkType.networkId)
680
-
556
+
681
557
  guard branchId != -1 else {
682
- throw RustWeldingError.noConsensusBranchId(height: height)
558
+ throw ZcashError.rustNoConsensusBranchId(height)
683
559
  }
684
-
560
+
685
561
  return branchId
686
562
  }
687
563
  }
688
564
 
689
- private struct UVK: UnifiedViewingKey {
690
- var extfvk: ExtendedFullViewingKey
691
- var extpub: ExtendedPublicKey
692
- }
693
-
694
565
  private extension ZcashRustBackend {
695
- static func throwDataDbError(_ error: RustWeldingError) -> Error {
696
- if case RustWeldingError.genericError(let message) = error, message.contains("is not empty") {
697
- return RustWeldingError.dataDbNotEmpty
698
- }
566
+ nonisolated func lastErrorMessage(fallback: String) -> String {
567
+ let errorLen = zcashlc_last_error_length()
568
+ defer { zcashlc_clear_last_error() }
699
569
 
700
- return RustWeldingError.dataDbInitFailed(message: error.localizedDescription)
570
+ if errorLen > 0 {
571
+ let error = UnsafeMutablePointer<Int8>.allocate(capacity: Int(errorLen))
572
+ defer { error.deallocate() }
573
+
574
+ zcashlc_error_message_utf8(error, errorLen)
575
+ if let errorMessage = String(validatingUTF8: error) {
576
+ return errorMessage
577
+ } else {
578
+ return fallback
579
+ }
580
+ } else {
581
+ return fallback
582
+ }
701
583
  }
702
584
  }
703
585
 
@@ -706,6 +588,12 @@ private extension URL {
706
588
  let path = self.absoluteString
707
589
  return (path, UInt(path.lengthOfBytes(using: .utf8)))
708
590
  }
591
+
592
+ /// use when the rust ffi needs to make filesystem operations
593
+ func osPathStr() -> (String, UInt) {
594
+ let path = self.path
595
+ return (path, UInt(path.lengthOfBytes(using: .utf8)))
596
+ }
709
597
  }
710
598
 
711
599
  extension String {
@@ -715,4 +603,43 @@ extension String {
715
603
  func containsCStringNullBytesBeforeStringEnding() -> Bool {
716
604
  self.utf8CString.firstIndex(of: 0) != (self.utf8CString.count - 1)
717
605
  }
606
+
607
+ func isDbNotEmptyErrorMessage() -> Bool {
608
+ return contains("is not empty")
609
+ }
610
+ }
611
+
612
+ extension FFIBinaryKey {
613
+ /// converts an [`FFIBinaryKey`] into a [`UnifiedSpendingKey`]
614
+ /// - Note: This does not check that the converted value actually holds a valid USK
615
+ func unsafeToUnifiedSpendingKey(network: NetworkType) -> UnifiedSpendingKey {
616
+ .init(
617
+ network: network,
618
+ bytes: self.encoding.toByteArray(
619
+ length: Int(self.encoding_len)
620
+ ),
621
+ account: self.account_id
622
+ )
623
+ }
624
+ }
625
+
626
+ extension UnsafeMutablePointer where Pointee == UInt8 {
627
+ /// copies the bytes pointed on
628
+ func toByteArray(length: Int) -> [UInt8] {
629
+ var bytes: [UInt8] = []
630
+
631
+ for index in 0 ..< length {
632
+ bytes.append(self.advanced(by: index).pointee)
633
+ }
634
+
635
+ return bytes
636
+ }
637
+ }
638
+
639
+ extension Array where Element == FFIBlockMeta {
640
+ func deallocateElements() {
641
+ self.forEach { element in
642
+ element.block_hash_ptr.deallocate()
643
+ }
644
+ }
718
645
  }