react-native-zcash 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +22 -0
  3. package/README.md +44 -44
  4. package/android/build.gradle +1 -1
  5. package/ios/RNZcash.m +0 -1
  6. package/ios/RNZcash.swift +14 -15
  7. package/ios/ZCashLightClientKit/Block/DatabaseStorage/CompactBlockStorage.swift +123 -0
  8. package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseMigrationManager.swift +222 -0
  9. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageError.swift +22 -0
  10. package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageManager.swift +73 -0
  11. package/ios/ZCashLightClientKit/Block/Downloader/BlockDownloader.swift +240 -0
  12. package/ios/ZCashLightClientKit/Block/Downloader/CompactBlockDownloaderBuilder.swift +26 -0
  13. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockDownloadOperation.swift +258 -0
  14. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockEnhancementOperation.swift +157 -0
  15. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockProcessor.swift +1454 -0
  16. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockScanningOperation.swift +238 -0
  17. package/ios/ZCashLightClientKit/Block/Processor/CompactBlockValidationInformation.swift +66 -0
  18. package/ios/ZCashLightClientKit/Block/Processor/FetchUnspentTxOutputsOperation.swift +103 -0
  19. package/ios/ZCashLightClientKit/Block/Processor/FigureNextBatchOperation.swift +58 -0
  20. package/ios/ZCashLightClientKit/Block/Processor/ZcashOperation.swift +68 -0
  21. package/ios/ZCashLightClientKit/Constants/WalletBirthday+Constants.swift +58 -0
  22. package/ios/ZCashLightClientKit/Constants/WalletBirthday+mainnet.swift +20 -0
  23. package/ios/ZCashLightClientKit/Constants/WalletBirthday+testnet.swift +20 -0
  24. package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +245 -0
  25. package/ios/ZCashLightClientKit/DAO/BlockDao.swift +67 -0
  26. package/ios/ZCashLightClientKit/DAO/CompactBlockDAO.swift +24 -0
  27. package/ios/ZCashLightClientKit/DAO/NotesDao.swift +142 -0
  28. package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +62 -0
  29. package/ios/ZCashLightClientKit/DAO/PendingTransactionDao.swift +213 -0
  30. package/ios/ZCashLightClientKit/DAO/TransactionBuilder.swift +169 -0
  31. package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +393 -0
  32. package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +188 -0
  33. package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +201 -0
  34. package/ios/ZCashLightClientKit/Entity/CompactBlockEntity.swift +13 -0
  35. package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +26 -0
  36. package/ios/ZCashLightClientKit/Entity/PendingTransactionEntity.swift +205 -0
  37. package/ios/ZCashLightClientKit/Entity/ReceivedNoteEntity.swift +22 -0
  38. package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +45 -0
  39. package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +161 -0
  40. package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +17 -0
  41. package/ios/ZCashLightClientKit/Extensions/Data+Zcash.swift +17 -0
  42. package/ios/ZCashLightClientKit/Extensions/Data+internal.swift +35 -0
  43. package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +41 -0
  44. package/ios/ZCashLightClientKit/Extensions/ZcashRust+Utils.swift +26 -0
  45. package/ios/ZCashLightClientKit/Extensions/ZcashSDK+extensions.swift +34 -0
  46. package/ios/ZCashLightClientKit/Initializer.swift +357 -0
  47. package/ios/ZCashLightClientKit/Model/WalletTypes.swift +108 -0
  48. package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +47 -0
  49. package/ios/ZCashLightClientKit/Repository/BlockRepository.swift +13 -0
  50. package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +75 -0
  51. package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +16 -0
  52. package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +35 -0
  53. package/ios/ZCashLightClientKit/Repository/PendingTransactionRepository.swift +19 -0
  54. package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +30 -0
  55. package/ios/ZCashLightClientKit/Repository/TransactionRepositoryBuilder.swift +24 -0
  56. package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +18 -0
  57. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1000000.json +7 -0
  58. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1010000.json +7 -0
  59. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1020000.json +7 -0
  60. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1030000.json +7 -0
  61. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1040000.json +7 -0
  62. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1050000.json +7 -0
  63. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1060000.json +7 -0
  64. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1070000.json +7 -0
  65. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1080000.json +7 -0
  66. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1090000.json +7 -0
  67. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1100000.json +7 -0
  68. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1110000.json +7 -0
  69. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1120000.json +7 -0
  70. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1130000.json +7 -0
  71. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1140000.json +7 -0
  72. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1150000.json +7 -0
  73. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1160000.json +7 -0
  74. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1170000.json +7 -0
  75. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1180000.json +7 -0
  76. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1190000.json +7 -0
  77. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1200000.json +7 -0
  78. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1210000.json +7 -0
  79. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1220000.json +7 -0
  80. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1230000.json +7 -0
  81. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1240000.json +7 -0
  82. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1250000.json +7 -0
  83. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1260000.json +7 -0
  84. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1270000.json +7 -0
  85. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1280000.json +7 -0
  86. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1290000.json +7 -0
  87. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1300000.json +7 -0
  88. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1310000.json +7 -0
  89. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1320000.json +7 -0
  90. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1330000.json +7 -0
  91. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1340000.json +7 -0
  92. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1350000.json +7 -0
  93. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1360000.json +7 -0
  94. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1370000.json +7 -0
  95. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1380000.json +7 -0
  96. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1390000.json +7 -0
  97. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1400000.json +7 -0
  98. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1410000.json +7 -0
  99. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1420000.json +7 -0
  100. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1430000.json +7 -0
  101. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1440000.json +7 -0
  102. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1450000.json +7 -0
  103. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1460000.json +7 -0
  104. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1470000.json +7 -0
  105. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1480000.json +7 -0
  106. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1490000.json +7 -0
  107. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1500000.json +7 -0
  108. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1510000.json +7 -0
  109. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1520000.json +7 -0
  110. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1530000.json +7 -0
  111. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1540000.json +7 -0
  112. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1550000.json +7 -0
  113. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1560000.json +7 -0
  114. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1570000.json +7 -0
  115. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1580000.json +7 -0
  116. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1590000.json +7 -0
  117. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1600000.json +7 -0
  118. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1610000.json +7 -0
  119. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1620000.json +7 -0
  120. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1630000.json +7 -0
  121. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1640000.json +7 -0
  122. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1650000.json +7 -0
  123. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1660000.json +7 -0
  124. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1670000.json +7 -0
  125. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1680000.json +7 -0
  126. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1690000.json +7 -0
  127. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1700000.json +7 -0
  128. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1710000.json +7 -0
  129. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1720000.json +7 -0
  130. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1730000.json +7 -0
  131. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1740000.json +7 -0
  132. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1750000.json +7 -0
  133. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1760000.json +7 -0
  134. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1770000.json +7 -0
  135. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1780000.json +7 -0
  136. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1790000.json +7 -0
  137. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1800000.json +7 -0
  138. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1810000.json +7 -0
  139. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1820000.json +7 -0
  140. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1830000.json +7 -0
  141. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1840000.json +7 -0
  142. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1850000.json +7 -0
  143. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1860000.json +7 -0
  144. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1870000.json +7 -0
  145. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1880000.json +7 -0
  146. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1890000.json +7 -0
  147. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1900000.json +7 -0
  148. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1910000.json +7 -0
  149. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1920000.json +7 -0
  150. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1930000.json +7 -0
  151. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1940000.json +7 -0
  152. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1950000.json +7 -0
  153. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1960000.json +7 -0
  154. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1970000.json +7 -0
  155. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1980000.json +7 -0
  156. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1990000.json +7 -0
  157. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2000000.json +7 -0
  158. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2010000.json +7 -0
  159. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2020000.json +7 -0
  160. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2030000.json +7 -0
  161. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2040000.json +7 -0
  162. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2050000.json +7 -0
  163. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2060000.json +7 -0
  164. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2070000.json +7 -0
  165. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2080000.json +7 -0
  166. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2090000.json +7 -0
  167. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2100000.json +7 -0
  168. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2110000.json +7 -0
  169. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2120000.json +7 -0
  170. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2130000.json +7 -0
  171. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2140000.json +7 -0
  172. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2150000.json +7 -0
  173. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2160000.json +7 -0
  174. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2170000.json +7 -0
  175. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/419200.json +7 -0
  176. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/500000.json +7 -0
  177. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/510000.json +7 -0
  178. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/520000.json +7 -0
  179. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/530000.json +7 -0
  180. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/540000.json +7 -0
  181. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/550000.json +7 -0
  182. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/560000.json +7 -0
  183. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/570000.json +7 -0
  184. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/580000.json +7 -0
  185. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/590000.json +7 -0
  186. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/600000.json +7 -0
  187. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/610000.json +7 -0
  188. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/620000.json +7 -0
  189. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/630000.json +7 -0
  190. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/640000.json +7 -0
  191. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/650000.json +7 -0
  192. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/660000.json +7 -0
  193. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/663150.json +8 -0
  194. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/670000.json +7 -0
  195. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/680000.json +7 -0
  196. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/690000.json +7 -0
  197. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/700000.json +7 -0
  198. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/710000.json +7 -0
  199. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/720000.json +7 -0
  200. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/730000.json +7 -0
  201. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/740000.json +7 -0
  202. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/750000.json +7 -0
  203. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/760000.json +7 -0
  204. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/770000.json +7 -0
  205. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/780000.json +7 -0
  206. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/790000.json +7 -0
  207. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/800000.json +7 -0
  208. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/810000.json +7 -0
  209. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/820000.json +7 -0
  210. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/830000.json +7 -0
  211. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/840000.json +7 -0
  212. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/850000.json +7 -0
  213. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/860000.json +7 -0
  214. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/870000.json +7 -0
  215. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/880000.json +7 -0
  216. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/890000.json +7 -0
  217. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/900000.json +7 -0
  218. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/910000.json +7 -0
  219. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/920000.json +7 -0
  220. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/930000.json +7 -0
  221. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/940000.json +7 -0
  222. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/950000.json +7 -0
  223. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/960000.json +7 -0
  224. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/970000.json +7 -0
  225. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/980000.json +7 -0
  226. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/990000.json +7 -0
  227. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1000000.json +7 -0
  228. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1010000.json +7 -0
  229. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1020000.json +7 -0
  230. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1030000.json +7 -0
  231. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1040000.json +7 -0
  232. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1050000.json +7 -0
  233. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1060000.json +7 -0
  234. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1070000.json +7 -0
  235. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1080000.json +7 -0
  236. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1090000.json +7 -0
  237. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1100000.json +7 -0
  238. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1110000.json +7 -0
  239. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1120000.json +7 -0
  240. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1130000.json +7 -0
  241. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1140000.json +7 -0
  242. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1150000.json +7 -0
  243. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1160000.json +7 -0
  244. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1170000.json +7 -0
  245. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1180000.json +7 -0
  246. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1190000.json +7 -0
  247. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1200000.json +7 -0
  248. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1210000.json +7 -0
  249. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1220000.json +7 -0
  250. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1230000.json +7 -0
  251. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1240000.json +7 -0
  252. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1250000.json +7 -0
  253. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1260000.json +7 -0
  254. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1270000.json +7 -0
  255. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1280000.json +7 -0
  256. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1290000.json +7 -0
  257. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1300000.json +7 -0
  258. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1310000.json +7 -0
  259. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1320000.json +7 -0
  260. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1330000.json +7 -0
  261. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1340000.json +7 -0
  262. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1350000.json +7 -0
  263. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1360000.json +7 -0
  264. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1370000.json +7 -0
  265. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1380000.json +7 -0
  266. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1390000.json +7 -0
  267. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1400000.json +7 -0
  268. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1410000.json +7 -0
  269. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1420000.json +7 -0
  270. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1430000.json +7 -0
  271. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1440000.json +7 -0
  272. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1450000.json +7 -0
  273. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1460000.json +7 -0
  274. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1470000.json +7 -0
  275. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1480000.json +7 -0
  276. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1490000.json +7 -0
  277. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1500000.json +7 -0
  278. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1510000.json +7 -0
  279. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1520000.json +7 -0
  280. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1530000.json +7 -0
  281. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1540000.json +7 -0
  282. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1550000.json +7 -0
  283. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1560000.json +7 -0
  284. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1570000.json +7 -0
  285. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1580000.json +7 -0
  286. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1590000.json +7 -0
  287. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1600000.json +7 -0
  288. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1610000.json +7 -0
  289. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1620000.json +7 -0
  290. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1630000.json +7 -0
  291. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1640000.json +7 -0
  292. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1650000.json +7 -0
  293. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1660000.json +7 -0
  294. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1670000.json +7 -0
  295. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1680000.json +7 -0
  296. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1690000.json +7 -0
  297. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1700000.json +7 -0
  298. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1710000.json +7 -0
  299. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1720000.json +7 -0
  300. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1730000.json +7 -0
  301. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1740000.json +7 -0
  302. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1750000.json +7 -0
  303. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1760000.json +7 -0
  304. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1770000.json +7 -0
  305. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1780000.json +7 -0
  306. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1790000.json +7 -0
  307. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1800000.json +7 -0
  308. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1810000.json +7 -0
  309. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1820000.json +7 -0
  310. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1830000.json +7 -0
  311. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1840000.json +7 -0
  312. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1850000.json +7 -0
  313. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1860000.json +7 -0
  314. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/280000.json +7 -0
  315. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/290000.json +7 -0
  316. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/300000.json +7 -0
  317. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/310000.json +7 -0
  318. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/320000.json +7 -0
  319. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/330000.json +7 -0
  320. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/340000.json +7 -0
  321. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/350000.json +7 -0
  322. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/360000.json +7 -0
  323. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/370000.json +7 -0
  324. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/380000.json +7 -0
  325. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/390000.json +7 -0
  326. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/400000.json +7 -0
  327. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/410000.json +7 -0
  328. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/420000.json +7 -0
  329. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/430000.json +7 -0
  330. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/440000.json +7 -0
  331. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/450000.json +7 -0
  332. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/460000.json +7 -0
  333. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/470000.json +7 -0
  334. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/480000.json +7 -0
  335. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/490000.json +7 -0
  336. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/500000.json +7 -0
  337. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/510000.json +7 -0
  338. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/520000.json +7 -0
  339. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/530000.json +7 -0
  340. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/540000.json +7 -0
  341. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/550000.json +7 -0
  342. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/560000.json +7 -0
  343. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/570000.json +7 -0
  344. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/580000.json +7 -0
  345. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/590000.json +7 -0
  346. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/600000.json +7 -0
  347. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/610000.json +7 -0
  348. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/620000.json +7 -0
  349. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/630000.json +7 -0
  350. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/640000.json +7 -0
  351. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/650000.json +7 -0
  352. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/660000.json +7 -0
  353. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/670000.json +7 -0
  354. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/680000.json +7 -0
  355. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/690000.json +7 -0
  356. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/700000.json +7 -0
  357. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/710000.json +7 -0
  358. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/720000.json +7 -0
  359. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/730000.json +7 -0
  360. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/740000.json +7 -0
  361. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/750000.json +7 -0
  362. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/760000.json +7 -0
  363. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/770000.json +7 -0
  364. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/780000.json +7 -0
  365. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/790000.json +7 -0
  366. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/800000.json +7 -0
  367. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/810000.json +7 -0
  368. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/820000.json +7 -0
  369. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/830000.json +7 -0
  370. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/840000.json +7 -0
  371. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/850000.json +7 -0
  372. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/860000.json +7 -0
  373. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/870000.json +7 -0
  374. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/880000.json +7 -0
  375. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/890000.json +7 -0
  376. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/900000.json +7 -0
  377. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/910000.json +7 -0
  378. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/920000.json +7 -0
  379. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/930000.json +7 -0
  380. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/940000.json +7 -0
  381. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/950000.json +7 -0
  382. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/960000.json +7 -0
  383. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/970000.json +7 -0
  384. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/980000.json +7 -0
  385. package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/990000.json +7 -0
  386. package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +718 -0
  387. package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +389 -0
  388. package/ios/ZCashLightClientKit/Rust/zcashlc.h +385 -0
  389. package/ios/ZCashLightClientKit/Service/LightWalletGRPCService.swift +551 -0
  390. package/ios/ZCashLightClientKit/Service/LightWalletService.swift +214 -0
  391. package/ios/ZCashLightClientKit/Service/Model/ZcashCompactBlock.swift +46 -0
  392. package/ios/ZCashLightClientKit/Service/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
  393. package/ios/ZCashLightClientKit/Service/ProtoBuf/compact_formats.pb.swift +332 -0
  394. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/compact_formats.proto +56 -0
  395. package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/service.proto +180 -0
  396. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.grpc.swift +383 -0
  397. package/ios/ZCashLightClientKit/Service/ProtoBuf/service.pb.swift +1173 -0
  398. package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +929 -0
  399. package/ios/ZCashLightClientKit/Synchronizer.swift +430 -0
  400. package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +344 -0
  401. package/ios/ZCashLightClientKit/Transaction/PersistentTransactionManager.swift +339 -0
  402. package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +116 -0
  403. package/ios/ZCashLightClientKit/Transaction/TransactionManager.swift +42 -0
  404. package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +216 -0
  405. package/ios/ZCashLightClientKit/Utils/Bundle+module.swift +30 -0
  406. package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +47 -0
  407. package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +124 -0
  408. package/ios/libzcashlc.xcframework/Info.plist +40 -0
  409. package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
  410. package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
  411. package/ios/react-native-zcash-Bridging-Header.h +2 -0
  412. package/ios/react-native-zcash.xcodeproj/project.pbxproj +1 -0
  413. package/lib/scripts/copyCheckpoints.d.ts +5 -0
  414. package/lib/scripts/updateSources.d.ts +1 -0
  415. package/package.json +20 -37
  416. package/react-native-zcash.podspec +17 -7
  417. package/ios/RNZcash-Bridging-Header.h +0 -6
  418. package/ios/RNZcash.xcodeproj/project.pbxproj +0 -271
  419. package/ios/RNZcash.xcworkspace/contents.xcworkspacedata +0 -7
  420. package/ios/RNZcash.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  421. package/lib/src/browser.d.ts +0 -0
  422. package/lib/src/index.d.ts +0 -0
  423. package/lib/test/test.test.d.ts +0 -0
  424. package/scripts/copyCheckpoints.js +0 -12
  425. package/src/browser.ts +0 -36
  426. package/src/index.flow.js +0 -168
  427. package/src/index.ts +0 -1
@@ -0,0 +1,35 @@
1
+ //
2
+ // Data+internal.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 4/23/20.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ extension String {
11
+ func toTxIdString() -> String {
12
+ var id = ""
13
+ self.reversed().pairs
14
+ .map {
15
+ $0.reversed()
16
+ }
17
+ .forEach { reversed in
18
+ id.append(String(reversed))
19
+ }
20
+ return id
21
+ }
22
+ }
23
+
24
+ extension Collection {
25
+ var pairs: [SubSequence] {
26
+ var startIndex = self.startIndex
27
+ let count = self.count
28
+ let halving = count / 2 + count % 2
29
+ return (0..<halving).map { _ in
30
+ let endIndex = index(startIndex, offsetBy: 2, limitedBy: self.endIndex) ?? self.endIndex
31
+ defer { startIndex = endIndex }
32
+ return self[startIndex..<endIndex]
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,41 @@
1
+ //
2
+ // File.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 12/13/19.
6
+ //
7
+
8
+ import Foundation
9
+ import CommonCrypto
10
+
11
+ /**
12
+ Thanks Stack Overflow (once again) https://stackoverflow.com/questions/39075043/how-to-convert-data-to-hex-string-in-swift
13
+ */
14
+ struct HexEncodingOptions: OptionSet {
15
+ public static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
16
+
17
+ public let rawValue: Int
18
+
19
+ public init(rawValue: Int) {
20
+ self.rawValue = rawValue
21
+ }
22
+ }
23
+
24
+ extension Data {
25
+ func hexEncodedString(options: HexEncodingOptions = []) -> String {
26
+ z_hexEncodedString(data: self, options: options)
27
+ }
28
+ }
29
+
30
+ func z_hexEncodedString(data: Data, options: HexEncodingOptions = []) -> String {
31
+ let hexDigits = Array((options.contains(.upperCase) ? "0123456789ABCDEF" : "0123456789abcdef").utf16)
32
+ var chars: [unichar] = []
33
+
34
+ chars.reserveCapacity(2 * data.count)
35
+ for byte in data {
36
+ chars.append(hexDigits[Int(byte / 16)])
37
+ chars.append(hexDigits[Int(byte % 16)])
38
+ }
39
+
40
+ return String(utf16CodeUnits: chars, count: chars.count)
41
+ }
@@ -0,0 +1,26 @@
1
+ //
2
+ // ZcashRust+Utils.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 12/09/2019.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+ /**
11
+ Attempts to show the data as a Zcash Transaction Memo
12
+ */
13
+ public extension Data {
14
+ func asZcashTransactionMemo() -> String? {
15
+ String(data: self, encoding: .utf8)
16
+ }
17
+ }
18
+
19
+ /**
20
+ Attempts to convert this string to a Zcash Transaction Memo data
21
+ */
22
+ public extension String {
23
+ func encodeAsZcashTransactionMemo() -> Data? {
24
+ return self.data(using: .utf8)
25
+ }
26
+ }
@@ -0,0 +1,34 @@
1
+ //
2
+ // ZcashSDK+extensions.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 12/8/20.
6
+ //
7
+
8
+ import Foundation
9
+
10
+ public typealias ConsensusBranchID = Int32
11
+
12
+ public extension ConsensusBranchID {
13
+ func toString() -> String {
14
+ String(format: "%02x", self)
15
+ }
16
+
17
+ static func fromString(_ str: String) -> ConsensusBranchID? {
18
+ guard let bitpattern = UInt32(str, radix: 16) else { return nil }
19
+ return Int32(bitPattern: bitpattern)
20
+ }
21
+ }
22
+
23
+ extension NetworkType {
24
+ init?(_ string: String) {
25
+ switch string {
26
+ case "main":
27
+ self = .mainnet
28
+ case "test":
29
+ self = .testnet
30
+ default:
31
+ return nil
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,357 @@
1
+ //
2
+ // Initializer.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 13/09/2019.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ /**
12
+ Wrapper for the Rust backend. This class basically represents all the Rust-wallet
13
+ capabilities and the supporting data required to exercise those abilities.
14
+ */
15
+ public enum InitializerError: Error {
16
+ case cacheDbInitFailed
17
+ case dataDbInitFailed
18
+ case accountInitFailed
19
+ case falseStart
20
+ case invalidViewingKey(key: String)
21
+ }
22
+
23
+ /**
24
+ Represents a lightwallet instance endpoint to connect to
25
+ */
26
+ public struct LightWalletEndpoint {
27
+ public var host: String
28
+ public var port: Int
29
+ public var secure: Bool
30
+ public var singleCallTimeoutInMillis: Int64
31
+ public var streamingCallTimeoutInMillis: Int64
32
+
33
+ /**
34
+ initializes a LightWalletEndpoint
35
+ - Parameters:
36
+ - address: a String containing the host address
37
+ - port: string with the port of the host address
38
+ - secure: true if connecting through TLS. Default value is true
39
+ - singleCallTimeoutInMillis: timeout for single calls in Milliseconds
40
+ - streamingCallTimeoutInMillis: timeout for streaming calls in Milliseconds
41
+ */
42
+ public init(
43
+ address: String,
44
+ port: Int,
45
+ secure: Bool = true,
46
+ singleCallTimeoutInMillis: Int64 = 10000,
47
+ streamingCallTimeoutInMillis: Int64 = 100000
48
+ ) {
49
+ self.host = address
50
+ self.port = port
51
+ self.secure = secure
52
+ self.singleCallTimeoutInMillis = singleCallTimeoutInMillis
53
+ self.streamingCallTimeoutInMillis = streamingCallTimeoutInMillis
54
+ }
55
+ }
56
+
57
+ /**
58
+ Wrapper for all the Rust backend functionality that does not involve processing blocks. This
59
+ class initializes the Rust backend and the supporting data required to exercise those abilities.
60
+ The [cash.z.wallet.sdk.block.CompactBlockProcessor] handles all the remaining Rust backend
61
+ functionality, related to processing blocks.
62
+ */
63
+ public class Initializer {
64
+ private(set) var rustBackend: ZcashRustBackendWelding.Type
65
+ private(set) var alias: String
66
+ private(set) var endpoint: LightWalletEndpoint
67
+
68
+ private var lowerBoundHeight: BlockHeight
69
+ private(set) var cacheDbURL: URL
70
+ private(set) var dataDbURL: URL
71
+ private(set) var pendingDbURL: URL
72
+ private(set) var spendParamsURL: URL
73
+ private(set) var outputParamsURL: URL
74
+ private(set) var lightWalletService: LightWalletService
75
+ private(set) var transactionRepository: TransactionRepository
76
+ private(set) var accountRepository: AccountRepository
77
+ private(set) var storage: CompactBlockStorage
78
+ private(set) var downloader: CompactBlockDownloader
79
+ private(set) var network: ZcashNetwork
80
+ private(set) public var viewingKeys: [UnifiedViewingKey]
81
+ private(set) public var walletBirthday: WalletBirthday
82
+
83
+ /**
84
+ Constructs the Initializer
85
+ - Parameters:
86
+ - cacheDbURL: location of the compact blocks cache db
87
+ - dataDbURL: Location of the data db
88
+ - pendingDbURL: location of the pending transactions database
89
+ - endpoint: the endpoint representing the lightwalletd instance you want to point to
90
+ - spendParamsURL: location of the spend parameters
91
+ - outputParamsURL: location of the output parameters
92
+ */
93
+ convenience public init (
94
+ cacheDbURL: URL,
95
+ dataDbURL: URL,
96
+ pendingDbURL: URL,
97
+ endpoint: LightWalletEndpoint,
98
+ network: ZcashNetwork,
99
+ spendParamsURL: URL,
100
+ outputParamsURL: URL,
101
+ viewingKeys: [UnifiedViewingKey],
102
+ walletBirthday: BlockHeight,
103
+ alias: String = "",
104
+ loggerProxy: Logger? = nil
105
+ ) {
106
+ let lwdService = LightWalletGRPCService(endpoint: endpoint)
107
+
108
+ self.init(
109
+ rustBackend: ZcashRustBackend.self,
110
+ lowerBoundHeight: walletBirthday,
111
+ network: network,
112
+ cacheDbURL: cacheDbURL,
113
+ dataDbURL: dataDbURL,
114
+ pendingDbURL: pendingDbURL,
115
+ endpoint: endpoint,
116
+ service: lwdService,
117
+ repository: TransactionRepositoryBuilder.build(dataDbURL: dataDbURL),
118
+ accountRepository: AccountRepositoryBuilder.build(
119
+ dataDbURL: dataDbURL,
120
+ readOnly: true,
121
+ caching: true
122
+ ),
123
+ storage: CompactBlockStorage(url: cacheDbURL, readonly: false),
124
+ spendParamsURL: spendParamsURL,
125
+ outputParamsURL: outputParamsURL,
126
+ viewingKeys: viewingKeys,
127
+ walletBirthday: walletBirthday,
128
+ alias: alias,
129
+ loggerProxy: loggerProxy
130
+ )
131
+ }
132
+
133
+ /**
134
+ Internal for dependency injection purposes
135
+ */
136
+ init(
137
+ rustBackend: ZcashRustBackendWelding.Type,
138
+ lowerBoundHeight: BlockHeight,
139
+ network: ZcashNetwork,
140
+ cacheDbURL: URL,
141
+ dataDbURL: URL,
142
+ pendingDbURL: URL,
143
+ endpoint: LightWalletEndpoint,
144
+ service: LightWalletService,
145
+ repository: TransactionRepository,
146
+ accountRepository: AccountRepository,
147
+ storage: CompactBlockStorage,
148
+ spendParamsURL: URL,
149
+ outputParamsURL: URL,
150
+ viewingKeys: [UnifiedViewingKey],
151
+ walletBirthday: BlockHeight,
152
+ alias: String = "",
153
+ loggerProxy: Logger? = nil
154
+ ) {
155
+ logger = loggerProxy
156
+ self.rustBackend = rustBackend
157
+ self.lowerBoundHeight = lowerBoundHeight
158
+ self.cacheDbURL = cacheDbURL
159
+ self.dataDbURL = dataDbURL
160
+ self.pendingDbURL = pendingDbURL
161
+ self.endpoint = endpoint
162
+ self.spendParamsURL = spendParamsURL
163
+ self.outputParamsURL = outputParamsURL
164
+ self.alias = alias
165
+ self.lightWalletService = service
166
+ self.transactionRepository = repository
167
+ self.accountRepository = accountRepository
168
+ self.storage = storage
169
+ self.downloader = CompactBlockDownloader(service: service, storage: storage)
170
+ self.viewingKeys = viewingKeys
171
+ self.walletBirthday = WalletBirthday.birthday(with: walletBirthday, network: network)
172
+ self.network = network
173
+ }
174
+
175
+ /**
176
+ Initialize the wallet with the given seed and return the related private keys for each
177
+ account specified or null if the wallet was previously initialized and block data exists on
178
+ disk. When this method returns null, that signals that the wallet will need to retrieve the
179
+ private keys from its own secure storage. In other words, the private keys are only given out
180
+ once for each set of database files. Subsequent calls to [initialize] will only load the Rust
181
+ library and return null.
182
+
183
+ 'compactBlockCache.db' and 'transactionData.db' files are created by this function (if they
184
+ do not already exist). These files can be given a prefix for scenarios where multiple wallets
185
+
186
+ - Parameters:
187
+ - viewingKeys: Extended Full Viewing Keys to initialize the DBs with
188
+ */
189
+ public func initialize() throws {
190
+ do {
191
+ try storage.createTable()
192
+ } catch {
193
+ throw InitializerError.cacheDbInitFailed
194
+ }
195
+
196
+ do {
197
+ try rustBackend.initDataDb(dbData: dataDbURL, networkType: network.networkType)
198
+ } catch RustWeldingError.dataDbNotEmpty {
199
+ // this is fine
200
+ } catch {
201
+ throw InitializerError.dataDbInitFailed
202
+ }
203
+
204
+ do {
205
+ try rustBackend.initBlocksTable(
206
+ dbData: dataDbURL,
207
+ height: Int32(walletBirthday.height),
208
+ hash: walletBirthday.hash,
209
+ time: walletBirthday.time,
210
+ saplingTree: walletBirthday.tree,
211
+ networkType: network.networkType
212
+ )
213
+ } catch RustWeldingError.dataDbNotEmpty {
214
+ // this is fine
215
+ } catch {
216
+ throw InitializerError.dataDbInitFailed
217
+ }
218
+
219
+ let lastDownloaded = (try? downloader.storage.latestHeight()) ?? walletBirthday.height
220
+ // resume from last downloaded block
221
+ lowerBoundHeight = max(walletBirthday.height, lastDownloaded)
222
+
223
+ do {
224
+ guard try rustBackend.initAccountsTable(
225
+ dbData: dataDbURL,
226
+ uvks: viewingKeys,
227
+ networkType: network.networkType
228
+ ) else {
229
+ throw rustBackend.lastError() ?? InitializerError.accountInitFailed
230
+ }
231
+ } catch RustWeldingError.dataDbNotEmpty {
232
+ // this is fine
233
+ } catch {
234
+ throw rustBackend.lastError() ?? InitializerError.accountInitFailed
235
+ }
236
+
237
+ let migrationManager = MigrationManager(
238
+ cacheDbConnection: SimpleConnectionProvider(path: cacheDbURL.path),
239
+ dataDbConnection: SimpleConnectionProvider(path: dataDbURL.path),
240
+ pendingDbConnection: SimpleConnectionProvider(path: pendingDbURL.path),
241
+ networkType: self.network.networkType
242
+ )
243
+
244
+ try migrationManager.performMigration(uvks: viewingKeys)
245
+ }
246
+
247
+ /**
248
+ get address from the given account index
249
+ - Parameter account: the index of the account
250
+ */
251
+ public func getAddress(index account: Int = 0) -> String? {
252
+ try? accountRepository.findBy(account: account)?.address
253
+ }
254
+
255
+ /**
256
+ get (unverified) balance from the given account index
257
+ - Parameter account: the index of the account
258
+ */
259
+ public func getBalance(account index: Int = 0) -> Int64 {
260
+ rustBackend.getBalance(dbData: dataDbURL, account: Int32(index), networkType: network.networkType)
261
+ }
262
+
263
+ /**
264
+ get verified balance from the given account index
265
+ - Parameter account: the index of the account
266
+ */
267
+ public func getVerifiedBalance(account index: Int = 0) -> Int64 {
268
+ rustBackend.getVerifiedBalance(dbData: dataDbURL, account: Int32(index), networkType: network.networkType)
269
+ }
270
+
271
+ /**
272
+ checks if the provided address is a valid shielded zAddress
273
+ */
274
+ public func isValidShieldedAddress(_ address: String) -> Bool {
275
+ (try? rustBackend.isValidShieldedAddress(address, networkType: network.networkType)) ?? false
276
+ }
277
+
278
+ /**
279
+ checks if the provided address is a transparent zAddress
280
+ */
281
+ public func isValidTransparentAddress(_ address: String) -> Bool {
282
+ (try? rustBackend.isValidTransparentAddress(address, networkType: network.networkType)) ?? false
283
+ }
284
+
285
+ func isSpendParameterPresent() -> Bool {
286
+ FileManager.default.isReadableFile(atPath: self.spendParamsURL.path)
287
+ }
288
+
289
+ func isOutputParameterPresent() -> Bool {
290
+ FileManager.default.isReadableFile(atPath: self.outputParamsURL.path)
291
+ }
292
+
293
+ func downloadParametersIfNeeded(result: @escaping (Result<Bool, Error>) -> Void) {
294
+ let spendParameterPresent = isSpendParameterPresent()
295
+ let outputParameterPresent = isOutputParameterPresent()
296
+
297
+ if spendParameterPresent && outputParameterPresent {
298
+ result(.success(true))
299
+ return
300
+ }
301
+
302
+ let outputURL = self.outputParamsURL
303
+ let spendURL = self.spendParamsURL
304
+
305
+ if !outputParameterPresent {
306
+ SaplingParameterDownloader.downloadOutputParameter(outputURL) { outputResult in
307
+ switch outputResult {
308
+ case .failure(let error):
309
+ result(.failure(error))
310
+ case .success:
311
+ guard !spendParameterPresent else {
312
+ result(.success(false))
313
+ return
314
+ }
315
+ SaplingParameterDownloader.downloadSpendParameter(spendURL) { spendResult in
316
+ switch spendResult {
317
+ case .failure(let error):
318
+ result(.failure(error))
319
+ case .success:
320
+ result(.success(false))
321
+ }
322
+ }
323
+ }
324
+ }
325
+ } else if !spendParameterPresent {
326
+ SaplingParameterDownloader.downloadSpendParameter(spendURL) { spendResult in
327
+ switch spendResult {
328
+ case .failure(let error):
329
+ result(.failure(error))
330
+ case .success:
331
+ result(.success(false))
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+
338
+ enum CompactBlockProcessorBuilder {
339
+ // swiftlint:disable:next function_parameter_count
340
+ static func buildProcessor(
341
+ configuration: CompactBlockProcessor.Configuration,
342
+ service: LightWalletService,
343
+ storage: CompactBlockStorage,
344
+ transactionRepository: TransactionRepository,
345
+ accountRepository: AccountRepository,
346
+ backend: ZcashRustBackendWelding.Type
347
+ ) -> CompactBlockProcessor {
348
+ return CompactBlockProcessor(
349
+ service: service,
350
+ storage: storage,
351
+ backend: backend,
352
+ config: configuration,
353
+ repository: transactionRepository,
354
+ accountRepository: accountRepository
355
+ )
356
+ }
357
+ }
@@ -0,0 +1,108 @@
1
+ //
2
+ // WalletTypes.swift
3
+ // Pods
4
+ //
5
+ // Created by Francisco Gindre on 4/6/21.
6
+ //
7
+
8
+ /**
9
+ Represents the wallet's birthday which can be thought of as a checkpoint at the earliest moment in history where
10
+ transactions related to this wallet could exist. Ideally, this would correspond to the latest block height at the
11
+ time the wallet key was created. Worst case, the height of Sapling activation could be used (280000).
12
+
13
+ Knowing a wallet's birthday can significantly reduce the amount of data that it needs to download because none of
14
+ the data before that height needs to be scanned for transactions. However, we do need the Sapling tree data in
15
+ order to construct valid transactions from that point forward. This birthday contains that tree data, allowing us
16
+ to avoid downloading all the compact blocks required in order to generate it.
17
+
18
+ New wallets can ignore any blocks created before their birthday.
19
+
20
+ - Parameters:
21
+ - height: the height at the time the wallet was born
22
+ - hash: the block hash corresponding to the given height
23
+ - time: the time the wallet was born, in seconds
24
+ - tree: the sapling tree corresponding to the given height. This takes around 15 minutes of processing to
25
+ generate from scratch because all blocks since activation need to be considered. So when it is calculated in
26
+ advance it can save the user a lot of time.
27
+ */
28
+ public struct WalletBirthday: Equatable {
29
+ public private(set) var height: BlockHeight = -1
30
+ public private(set) var hash: String = ""
31
+ public private(set) var time: UInt32 = 0
32
+ public private(set) var tree: String = ""
33
+ }
34
+
35
+
36
+ extension WalletBirthday: Decodable {
37
+ // let height: BlockHeight
38
+ // let hash: String
39
+ // let time: UInt32
40
+ // let tree: String
41
+ //
42
+ // func walletBirthday() -> WalletBirthday {
43
+ // WalletBirthday(
44
+ // height: height,
45
+ // hash: hash,
46
+ // time: time,
47
+ // tree: tree
48
+ // )
49
+ // }
50
+
51
+ public enum CodingKeys: String, CodingKey {
52
+ case height
53
+ case hash
54
+ case time
55
+ case tree
56
+ }
57
+
58
+ public init(from decoder: Decoder) throws {
59
+ let container = try decoder.container(keyedBy: CodingKeys.self)
60
+ self.height = try Self.getHeight(from: container)
61
+ self.hash = try container.decode(String.self, forKey: .hash)
62
+ self.time = try container.decode(UInt32.self, forKey: .time)
63
+ self.tree = try container.decode(String.self, forKey: .tree)
64
+ }
65
+
66
+ static func getHeight(from container: KeyedDecodingContainer<CodingKeys>) throws -> Int {
67
+ guard
68
+ let heightString = try? container.decode(String.self, forKey: .height),
69
+ let height = Int(heightString)
70
+ else {
71
+ throw DecodingError.typeMismatch(
72
+ String.self,
73
+ DecodingError.Context(
74
+ codingPath: [CodingKeys.height],
75
+ debugDescription: "expected height to be encoded as a string",
76
+ underlyingError: nil
77
+ )
78
+ )
79
+ }
80
+ return height
81
+ }
82
+ }
83
+
84
+
85
+ /**
86
+ Groups a Sapling Extended Full Viewing Key an a tranparent address extended public key.
87
+ */
88
+
89
+ public typealias ExtendedFullViewingKey = String
90
+ public typealias ExtendedPublicKey = String
91
+
92
+ public protocol UnifiedViewingKey {
93
+ var extfvk: ExtendedFullViewingKey { get set }
94
+ var extpub: ExtendedPublicKey { get set }
95
+ }
96
+
97
+ public typealias TransparentAddress = String
98
+ public typealias SaplingShieldedAddress = String
99
+
100
+ public protocol UnifiedAddress {
101
+ var tAddress: TransparentAddress { get }
102
+ var zAddress: SaplingShieldedAddress { get }
103
+ }
104
+
105
+ public protocol WalletBalance {
106
+ var verified: Int64 { get set }
107
+ var total: Int64 { get set }
108
+ }
@@ -0,0 +1,47 @@
1
+ //
2
+ // ResourceProvider.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 19/09/2019.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ public enum ResourceProviderError: Error {
12
+ case unavailableResource
13
+ }
14
+ public protocol ResourceProvider {
15
+ var dataDbURL: URL { get }
16
+ var cacheDbURL: URL { get }
17
+ }
18
+ /**
19
+ Convenience provider for a data db and cache db resources.
20
+ */
21
+ public struct DefaultResourceProvider: ResourceProvider {
22
+ var network: ZcashNetwork
23
+
24
+ public var dataDbURL: URL {
25
+ let constants = network.constants
26
+ do {
27
+ let url = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
28
+ return url.appendingPathComponent(constants.defaultDataDbName)
29
+ } catch {
30
+ return URL(fileURLWithPath: "file://\(constants.defaultDataDbName)")
31
+ }
32
+ }
33
+
34
+ public var cacheDbURL: URL {
35
+ let constants = network.constants
36
+ do {
37
+ let path = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
38
+ return path.appendingPathComponent(constants.defaultCacheDbName)
39
+ } catch {
40
+ return URL(fileURLWithPath: "file://\(constants.defaultCacheDbName)")
41
+ }
42
+ }
43
+
44
+ init(network: ZcashNetwork) {
45
+ self.network = network
46
+ }
47
+ }
@@ -0,0 +1,13 @@
1
+ //
2
+ // BlockRepository.swift
3
+ // ZcashLightClientKit
4
+ //
5
+ // Created by Francisco Gindre on 10/16/19.
6
+ // Copyright © 2019 Electric Coin Company. All rights reserved.
7
+ //
8
+
9
+ import Foundation
10
+
11
+ protocol BlockRepository {
12
+ func lastScannedBlockHeight() -> BlockHeight
13
+ }