react-native-zcash 0.3.3 → 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.
- package/CHANGELOG.md +10 -0
- package/LICENSE +22 -0
- package/README.md +47 -14
- package/android/build.gradle +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1310000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1320000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1330000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1340000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1350000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1360000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1370000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1380000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1390000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1400000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1410000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1420000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1430000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1440000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1450000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1460000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1470000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1480000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1490000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1500000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1510000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1520000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1530000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1540000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1550000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1560000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1570000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1580000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1590000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1600000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1610000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1620000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1630000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1640000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1650000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1660000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1670000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1680000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1690000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1700000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1710000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1720000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1730000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1740000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1750000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1760000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1770000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1780000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1790000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1800000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1810000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1820000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1830000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1840000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1850000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1860000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1870000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1880000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1890000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1900000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1910000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1920000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1930000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1940000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1950000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1960000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1970000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1980000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/1990000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2000000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2010000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2020000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2030000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2040000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2050000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2060000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2070000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2080000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2090000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2100000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2110000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2120000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2130000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2140000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2150000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2160000.json +7 -0
- package/android/src/main/assets/saplingtree/mainnet/2170000.json +7 -0
- package/ios/RNZcash.m +0 -1
- package/ios/RNZcash.swift +14 -15
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/CompactBlockStorage.swift +123 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseMigrationManager.swift +222 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageError.swift +22 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/StorageManager.swift +73 -0
- package/ios/ZCashLightClientKit/Block/Downloader/BlockDownloader.swift +240 -0
- package/ios/ZCashLightClientKit/Block/Downloader/CompactBlockDownloaderBuilder.swift +26 -0
- package/ios/ZCashLightClientKit/Block/Processor/CompactBlockDownloadOperation.swift +258 -0
- package/ios/ZCashLightClientKit/Block/Processor/CompactBlockEnhancementOperation.swift +157 -0
- package/ios/ZCashLightClientKit/Block/Processor/CompactBlockProcessor.swift +1454 -0
- package/ios/ZCashLightClientKit/Block/Processor/CompactBlockScanningOperation.swift +238 -0
- package/ios/ZCashLightClientKit/Block/Processor/CompactBlockValidationInformation.swift +66 -0
- package/ios/ZCashLightClientKit/Block/Processor/FetchUnspentTxOutputsOperation.swift +103 -0
- package/ios/ZCashLightClientKit/Block/Processor/FigureNextBatchOperation.swift +58 -0
- package/ios/ZCashLightClientKit/Block/Processor/ZcashOperation.swift +68 -0
- package/ios/ZCashLightClientKit/Constants/WalletBirthday+Constants.swift +58 -0
- package/ios/ZCashLightClientKit/Constants/WalletBirthday+mainnet.swift +20 -0
- package/ios/ZCashLightClientKit/Constants/WalletBirthday+testnet.swift +20 -0
- package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +245 -0
- package/ios/ZCashLightClientKit/DAO/BlockDao.swift +67 -0
- package/ios/ZCashLightClientKit/DAO/CompactBlockDAO.swift +24 -0
- package/ios/ZCashLightClientKit/DAO/NotesDao.swift +142 -0
- package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +62 -0
- package/ios/ZCashLightClientKit/DAO/PendingTransactionDao.swift +213 -0
- package/ios/ZCashLightClientKit/DAO/TransactionBuilder.swift +169 -0
- package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +393 -0
- package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +188 -0
- package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +201 -0
- package/ios/ZCashLightClientKit/Entity/CompactBlockEntity.swift +13 -0
- package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +26 -0
- package/ios/ZCashLightClientKit/Entity/PendingTransactionEntity.swift +205 -0
- package/ios/ZCashLightClientKit/Entity/ReceivedNoteEntity.swift +22 -0
- package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +45 -0
- package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +161 -0
- package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +17 -0
- package/ios/ZCashLightClientKit/Extensions/Data+Zcash.swift +17 -0
- package/ios/ZCashLightClientKit/Extensions/Data+internal.swift +35 -0
- package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +41 -0
- package/ios/ZCashLightClientKit/Extensions/ZcashRust+Utils.swift +26 -0
- package/ios/ZCashLightClientKit/Extensions/ZcashSDK+extensions.swift +34 -0
- package/ios/ZCashLightClientKit/Initializer.swift +357 -0
- package/ios/ZCashLightClientKit/Model/WalletTypes.swift +108 -0
- package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +47 -0
- package/ios/ZCashLightClientKit/Repository/BlockRepository.swift +13 -0
- package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +75 -0
- package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +16 -0
- package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +35 -0
- package/ios/ZCashLightClientKit/Repository/PendingTransactionRepository.swift +19 -0
- package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +30 -0
- package/ios/ZCashLightClientKit/Repository/TransactionRepositoryBuilder.swift +24 -0
- package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +18 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1000000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1010000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1020000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1030000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1040000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1050000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1060000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1070000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1080000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1090000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1100000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1110000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1120000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1130000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1140000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1150000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1160000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1170000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1180000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1190000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1200000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1210000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1220000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1230000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1240000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1250000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1260000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1270000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1870000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1880000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1890000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1900000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1910000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1920000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1930000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1940000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1950000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1960000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1970000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1980000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/1990000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2000000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2010000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2020000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2030000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2040000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2050000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2060000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2070000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2080000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2090000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2100000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2110000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2120000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2130000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2140000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2150000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2160000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/2170000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/419200.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/663150.json +8 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/870000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/880000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/890000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/900000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/910000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/920000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/930000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/940000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/950000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/960000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/970000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/980000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/mainnet/990000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1000000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1010000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1020000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1030000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1040000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1050000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1060000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1070000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1080000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1090000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1100000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1110000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1120000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1130000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1140000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1150000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1160000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1170000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1180000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1190000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1200000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1210000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1220000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1230000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1240000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1250000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1260000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1270000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/1860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/870000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/880000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/890000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/900000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/910000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/920000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/930000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/940000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/950000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/960000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/970000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/980000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/saplingtree-checkpoints/testnet/990000.json +7 -0
- package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +718 -0
- package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +389 -0
- package/ios/ZCashLightClientKit/Rust/zcashlc.h +385 -0
- package/ios/ZCashLightClientKit/Service/LightWalletGRPCService.swift +551 -0
- package/ios/ZCashLightClientKit/Service/LightWalletService.swift +214 -0
- package/ios/ZCashLightClientKit/Service/Model/ZcashCompactBlock.swift +46 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/compact_formats.pb.swift +332 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/compact_formats.proto +56 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/proto/service.proto +180 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/service.grpc.swift +383 -0
- package/ios/ZCashLightClientKit/Service/ProtoBuf/service.pb.swift +1173 -0
- package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +929 -0
- package/ios/ZCashLightClientKit/Synchronizer.swift +430 -0
- package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +344 -0
- package/ios/ZCashLightClientKit/Transaction/PersistentTransactionManager.swift +339 -0
- package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +116 -0
- package/ios/ZCashLightClientKit/Transaction/TransactionManager.swift +42 -0
- package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +216 -0
- package/ios/ZCashLightClientKit/Utils/Bundle+module.swift +30 -0
- package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +47 -0
- package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +124 -0
- package/ios/libzcashlc.xcframework/Info.plist +40 -0
- package/ios/libzcashlc.xcframework/ios-arm64/libzcashlc.a +0 -0
- package/ios/libzcashlc.xcframework/ios-arm64_x86_64-simulator/libzcashlc.a +0 -0
- package/ios/react-native-zcash-Bridging-Header.h +2 -0
- package/ios/react-native-zcash.xcodeproj/project.pbxproj +1 -0
- package/lib/scripts/copyCheckpoints.d.ts +5 -0
- package/lib/scripts/updateCheckpoints.d.ts +1 -0
- package/lib/scripts/updateSources.d.ts +1 -0
- package/package.json +21 -32
- package/react-native-zcash.podspec +17 -7
- package/ios/RNZcash-Bridging-Header.h +0 -6
- package/ios/RNZcash.xcodeproj/project.pbxproj +0 -271
- package/ios/RNZcash.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/RNZcash.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/lib/src/browser.d.ts +0 -0
- package/lib/src/index.d.ts +0 -0
- package/lib/test/test.test.d.ts +0 -0
- package/src/browser.ts +0 -36
- package/src/index.flow.js +0 -168
- package/src/index.ts +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TransactionEncoder.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/20/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
typealias TransactionEncoderResultBlock = (_ result: Result<EncodedTransaction, Error>) -> Void
|
|
11
|
+
|
|
12
|
+
public enum TransactionEncoderError: Error {
|
|
13
|
+
case notFound(transactionId: Int)
|
|
14
|
+
case notEncoded(transactionId: Int)
|
|
15
|
+
case missingParams
|
|
16
|
+
case spendingKeyWrongNetwork
|
|
17
|
+
case couldNotExpand(txId: Data)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
protocol TransactionEncoder {
|
|
21
|
+
/**
|
|
22
|
+
Creates a transaction, throwing an exception whenever things are missing. When the provided wallet implementation
|
|
23
|
+
doesn't throw an exception, we wrap the issue into a descriptive exception ourselves (rather than using
|
|
24
|
+
double-bangs for things).
|
|
25
|
+
Blocking
|
|
26
|
+
|
|
27
|
+
- Parameters:
|
|
28
|
+
- Parameter spendingKey: a string containing the spending key
|
|
29
|
+
- Parameter zatoshi: the amount to send in zatoshis
|
|
30
|
+
- Parameter to: string containing the recipient address
|
|
31
|
+
- Parameter memo: string containing the memo (optional)
|
|
32
|
+
- Parameter accountIndex: index of the account that will be used to send the funds
|
|
33
|
+
|
|
34
|
+
- Throws: a TransactionEncoderError
|
|
35
|
+
*/
|
|
36
|
+
func createTransaction(
|
|
37
|
+
spendingKey: String,
|
|
38
|
+
zatoshi: Int,
|
|
39
|
+
to address: String,
|
|
40
|
+
memo: String?,
|
|
41
|
+
from accountIndex: Int
|
|
42
|
+
) throws -> EncodedTransaction
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
Creates a transaction, throwing an exception whenever things are missing. When the provided wallet implementation
|
|
46
|
+
doesn't throw an exception, we wrap the issue into a descriptive exception ourselves (rather than using
|
|
47
|
+
double-bangs for things).
|
|
48
|
+
Non-blocking
|
|
49
|
+
|
|
50
|
+
- Parameters:
|
|
51
|
+
- Parameter spendingKey: a string containing the spending key
|
|
52
|
+
- Parameter zatoshi: the amount to send in zatoshis
|
|
53
|
+
- Parameter to: string containing the recipient address
|
|
54
|
+
- Parameter memo: string containing the memo (optional)
|
|
55
|
+
- Parameter accountIndex: index of the account that will be used to send the funds
|
|
56
|
+
- Parameter result: a non escaping closure that receives a Result containing either an EncodedTransaction or a TransactionEncoderError
|
|
57
|
+
*/
|
|
58
|
+
// swiftlint:disable:next function_parameter_count
|
|
59
|
+
func createTransaction(
|
|
60
|
+
spendingKey: String,
|
|
61
|
+
zatoshi: Int,
|
|
62
|
+
to address: String,
|
|
63
|
+
memo: String?,
|
|
64
|
+
from accountIndex: Int,
|
|
65
|
+
result: @escaping TransactionEncoderResultBlock
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
Creates a transaction that will attempt to shield transparent funds that are present on the cacheDB .throwing an exception whenever things are missing. When the provided wallet implementation doesn't throw an exception, we wrap the issue into a descriptive exception ourselves (rather than using double-bangs for things).
|
|
70
|
+
Blocking
|
|
71
|
+
|
|
72
|
+
- Parameters:
|
|
73
|
+
- Parameter spendingKey: a string containing the spending key
|
|
74
|
+
- Parameter tSecretKey: transparent secret key to spend the UTXOs
|
|
75
|
+
- Parameter memo: string containing the memo (optional)
|
|
76
|
+
- Parameter accountIndex: index of the account that will be used to send the funds
|
|
77
|
+
|
|
78
|
+
- Throws: a TransactionEncoderError
|
|
79
|
+
*/
|
|
80
|
+
func createShieldingTransaction(
|
|
81
|
+
spendingKey: String,
|
|
82
|
+
tSecretKey: String,
|
|
83
|
+
memo: String?,
|
|
84
|
+
from accountIndex: Int
|
|
85
|
+
) throws -> EncodedTransaction
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
Creates a transaction that will attempt to shield transparent funds that are present on the cacheDB .throwing an exception whenever things are missing. When the provided wallet implementation doesn't throw an exception, we wrap the issue into a descriptive exception ourselves (rather than using double-bangs for things).
|
|
89
|
+
|
|
90
|
+
Non-Blocking
|
|
91
|
+
|
|
92
|
+
- Parameters:
|
|
93
|
+
- Parameter spendingKey: a string containing the spending key
|
|
94
|
+
- Parameter tSecretKey: transparent secret key to spend the UTXOs
|
|
95
|
+
- Parameter memo: string containing the memo (optional)
|
|
96
|
+
- Parameter accountIndex: index of the account that will be used to send the funds
|
|
97
|
+
|
|
98
|
+
- Returns: a TransactionEncoderResultBlock
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
func createShieldingTransaction(
|
|
102
|
+
spendingKey: String,
|
|
103
|
+
tSecretKey: String,
|
|
104
|
+
memo: String?,
|
|
105
|
+
from accountIndex: Int,
|
|
106
|
+
result: @escaping TransactionEncoderResultBlock
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
Fetch the Transaction Entity from the encoded representation
|
|
111
|
+
- Parameter encodedTransaction: The encoded transaction to expand
|
|
112
|
+
- Returns: a TransactionEntity based on the given Encoded Transaction
|
|
113
|
+
- Throws: a TransactionEncoderError
|
|
114
|
+
*/
|
|
115
|
+
func expandEncodedTransaction(_ encodedTransaction: EncodedTransaction) throws -> TransactionEntity
|
|
116
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//
|
|
2
|
+
// TransactionManager.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/26/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
Manage outbound transactions with the main purpose of reporting which ones are still pending,
|
|
12
|
+
particularly after failed attempts or dropped connectivity. The intent is to help see outbound
|
|
13
|
+
transactions through to completion.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
protocol OutboundTransactionManager {
|
|
17
|
+
func initSpend(zatoshi: Int, toAddress: String, memo: String?, from accountIndex: Int) throws -> PendingTransactionEntity
|
|
18
|
+
|
|
19
|
+
func encodeShieldingTransaction(spendingKey: String, tsk: String, pendingTransaction: PendingTransactionEntity, result: @escaping (Result<PendingTransactionEntity, Error>) -> Void)
|
|
20
|
+
|
|
21
|
+
func encode(spendingKey: String, pendingTransaction: PendingTransactionEntity, result: @escaping (Result<PendingTransactionEntity, Error>) -> Void)
|
|
22
|
+
|
|
23
|
+
func submit(pendingTransaction: PendingTransactionEntity, result: @escaping (Result<PendingTransactionEntity, Error>) -> Void)
|
|
24
|
+
|
|
25
|
+
func applyMinedHeight(pendingTransaction: PendingTransactionEntity, minedHeight: BlockHeight) throws -> PendingTransactionEntity
|
|
26
|
+
|
|
27
|
+
func monitorChanges(byId: Int, observer: Any) // check this out. code smell
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
Attempts to Cancel a transaction. Returns true if successful
|
|
31
|
+
*/
|
|
32
|
+
func cancel(pendingTransaction: PendingTransactionEntity) -> Bool
|
|
33
|
+
|
|
34
|
+
func allPendingTransactions() throws -> [PendingTransactionEntity]?
|
|
35
|
+
|
|
36
|
+
func handleReorg(at blockHeight: BlockHeight) throws
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
Deletes a pending transaction from the database
|
|
40
|
+
*/
|
|
41
|
+
func delete(pendingTransaction: PendingTransactionEntity) throws
|
|
42
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
//
|
|
2
|
+
// WalletTransactionEncoder.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/20/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
class WalletTransactionEncoder: TransactionEncoder {
|
|
11
|
+
var rustBackend: ZcashRustBackendWelding.Type
|
|
12
|
+
var repository: TransactionRepository
|
|
13
|
+
var queue: DispatchQueue
|
|
14
|
+
|
|
15
|
+
private var outputParamsURL: URL
|
|
16
|
+
private var spendParamsURL: URL
|
|
17
|
+
private var dataDbURL: URL
|
|
18
|
+
private var cacheDbURL: URL
|
|
19
|
+
private var networkType: NetworkType
|
|
20
|
+
|
|
21
|
+
init(
|
|
22
|
+
rust: ZcashRustBackendWelding.Type,
|
|
23
|
+
dataDb: URL,
|
|
24
|
+
cacheDb: URL,
|
|
25
|
+
repository: TransactionRepository,
|
|
26
|
+
outputParams: URL,
|
|
27
|
+
spendParams: URL,
|
|
28
|
+
networkType: NetworkType
|
|
29
|
+
) {
|
|
30
|
+
self.rustBackend = rust
|
|
31
|
+
self.dataDbURL = dataDb
|
|
32
|
+
self.cacheDbURL = cacheDb
|
|
33
|
+
self.repository = repository
|
|
34
|
+
self.outputParamsURL = outputParams
|
|
35
|
+
self.spendParamsURL = spendParams
|
|
36
|
+
self.networkType = networkType
|
|
37
|
+
self.queue = DispatchQueue(label: "wallet.transaction.encoder.serial.queue")
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
convenience init(initializer: Initializer) {
|
|
41
|
+
self.init(
|
|
42
|
+
rust: initializer.rustBackend,
|
|
43
|
+
dataDb: initializer.dataDbURL,
|
|
44
|
+
cacheDb: initializer.cacheDbURL,
|
|
45
|
+
repository: initializer.transactionRepository,
|
|
46
|
+
outputParams: initializer.outputParamsURL,
|
|
47
|
+
spendParams: initializer.spendParamsURL,
|
|
48
|
+
networkType: initializer.network.networkType
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
func createTransaction(
|
|
53
|
+
spendingKey: String,
|
|
54
|
+
zatoshi: Int,
|
|
55
|
+
to address: String,
|
|
56
|
+
memo: String?,
|
|
57
|
+
from accountIndex: Int
|
|
58
|
+
) throws -> EncodedTransaction {
|
|
59
|
+
let txId = try createSpend(
|
|
60
|
+
spendingKey: spendingKey,
|
|
61
|
+
zatoshi: zatoshi,
|
|
62
|
+
to: address,
|
|
63
|
+
memo: memo,
|
|
64
|
+
from: accountIndex
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
do {
|
|
68
|
+
let transactionEntity = try repository.findBy(id: txId)
|
|
69
|
+
guard let transaction = transactionEntity else {
|
|
70
|
+
throw TransactionEncoderError.notFound(transactionId: txId)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
LoggerProxy.debug("sentTransaction id: \(txId)")
|
|
74
|
+
|
|
75
|
+
return EncodedTransaction(transactionId: transaction.transactionId, raw: transaction.raw)
|
|
76
|
+
} catch {
|
|
77
|
+
throw TransactionEncoderError.notFound(transactionId: txId)
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// swiftlint:disable:next function_parameter_count
|
|
82
|
+
func createTransaction(
|
|
83
|
+
spendingKey: String,
|
|
84
|
+
zatoshi: Int,
|
|
85
|
+
to address: String,
|
|
86
|
+
memo: String?,
|
|
87
|
+
from accountIndex: Int,
|
|
88
|
+
result: @escaping TransactionEncoderResultBlock
|
|
89
|
+
) {
|
|
90
|
+
queue.async { [weak self] in
|
|
91
|
+
guard let self = self else { return }
|
|
92
|
+
do {
|
|
93
|
+
result(
|
|
94
|
+
.success(
|
|
95
|
+
try self.createTransaction(
|
|
96
|
+
spendingKey: spendingKey,
|
|
97
|
+
zatoshi: zatoshi,
|
|
98
|
+
to: address,
|
|
99
|
+
memo: memo,
|
|
100
|
+
from: accountIndex
|
|
101
|
+
)
|
|
102
|
+
)
|
|
103
|
+
)
|
|
104
|
+
} catch {
|
|
105
|
+
result(.failure(error))
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
func createSpend(spendingKey: String, zatoshi: Int, to address: String, memo: String?, from accountIndex: Int) throws -> Int {
|
|
111
|
+
guard ensureParams(spend: self.spendParamsURL, output: self.spendParamsURL) else {
|
|
112
|
+
throw TransactionEncoderError.missingParams
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
let txId = rustBackend.createToAddress(
|
|
116
|
+
dbData: self.dataDbURL,
|
|
117
|
+
account: Int32(accountIndex),
|
|
118
|
+
extsk: spendingKey,
|
|
119
|
+
to: address,
|
|
120
|
+
value: Int64(zatoshi),
|
|
121
|
+
memo: memo,
|
|
122
|
+
spendParamsPath: self.spendParamsURL.path,
|
|
123
|
+
outputParamsPath: self.outputParamsURL.path,
|
|
124
|
+
networkType: networkType
|
|
125
|
+
)
|
|
126
|
+
|
|
127
|
+
guard txId > 0 else {
|
|
128
|
+
throw rustBackend.lastError() ?? RustWeldingError.genericError(message: "create spend failed")
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
return Int(txId)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
func createShieldingTransaction(
|
|
135
|
+
spendingKey: String,
|
|
136
|
+
tSecretKey: String,
|
|
137
|
+
memo: String?,
|
|
138
|
+
from accountIndex: Int
|
|
139
|
+
) throws -> EncodedTransaction {
|
|
140
|
+
let txId = try createShieldingSpend(
|
|
141
|
+
spendingKey: spendingKey,
|
|
142
|
+
tsk: tSecretKey,
|
|
143
|
+
memo: memo,
|
|
144
|
+
accountIndex: accountIndex
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
do {
|
|
148
|
+
let transactionEntity = try repository.findBy(id: txId)
|
|
149
|
+
|
|
150
|
+
guard let transaction = transactionEntity else {
|
|
151
|
+
throw TransactionEncoderError.notFound(transactionId: txId)
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
LoggerProxy.debug("sentTransaction id: \(txId)")
|
|
155
|
+
return EncodedTransaction(transactionId: transaction.transactionId, raw: transaction.raw)
|
|
156
|
+
} catch {
|
|
157
|
+
throw TransactionEncoderError.notFound(transactionId: txId)
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
func createShieldingTransaction(
|
|
162
|
+
spendingKey: String,
|
|
163
|
+
tSecretKey: String,
|
|
164
|
+
memo: String?,
|
|
165
|
+
from accountIndex: Int,
|
|
166
|
+
result: @escaping TransactionEncoderResultBlock
|
|
167
|
+
) {
|
|
168
|
+
queue.async {
|
|
169
|
+
result(.failure(RustWeldingError.genericError(message: "not implemented")))
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
func createShieldingSpend(spendingKey: String, tsk: String, memo: String?, accountIndex: Int) throws -> Int {
|
|
174
|
+
guard ensureParams(spend: self.spendParamsURL, output: self.spendParamsURL) else {
|
|
175
|
+
throw TransactionEncoderError.missingParams
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
let txId = rustBackend.shieldFunds(
|
|
179
|
+
dbCache: self.cacheDbURL,
|
|
180
|
+
dbData: self.dataDbURL,
|
|
181
|
+
account: Int32(accountIndex),
|
|
182
|
+
tsk: tsk,
|
|
183
|
+
extsk: spendingKey,
|
|
184
|
+
memo: memo,
|
|
185
|
+
spendParamsPath: self.spendParamsURL.path,
|
|
186
|
+
outputParamsPath: self.outputParamsURL.path,
|
|
187
|
+
networkType: networkType
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
guard txId > 0 else {
|
|
191
|
+
throw rustBackend.lastError() ?? RustWeldingError.genericError(message: "create spend failed")
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
return Int(txId)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
func ensureParams(spend: URL, output: URL) -> Bool {
|
|
198
|
+
let readableSpend = FileManager.default.isReadableFile(atPath: spend.path)
|
|
199
|
+
let readableOutput = FileManager.default.isReadableFile(atPath: output.path)
|
|
200
|
+
|
|
201
|
+
return readableSpend && readableOutput // Todo: change this to something that makes sense
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
Fetch the Transaction Entity from the encoded representation
|
|
206
|
+
- Parameter encodedTransaction: The encoded transaction to expand
|
|
207
|
+
- Returns: a TransactionEntity based on the given Encoded Transaction
|
|
208
|
+
- Throws: a TransactionEncoderError
|
|
209
|
+
*/
|
|
210
|
+
func expandEncodedTransaction(_ encodedTransaction: EncodedTransaction) throws -> TransactionEntity {
|
|
211
|
+
guard let transaction = try? repository.findBy(rawId: encodedTransaction.transactionId) else {
|
|
212
|
+
throw TransactionEncoderError.couldNotExpand(txId: encodedTransaction.transactionId)
|
|
213
|
+
}
|
|
214
|
+
return transaction
|
|
215
|
+
}
|
|
216
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// N.B This file is copied from the one that SPM generates to give a
|
|
2
|
+
// `Bundle.module` variable. Using the macro we include this only for non-SPM
|
|
3
|
+
// distribution methods, which we equate to "CocoaPods".
|
|
4
|
+
// We use CocoaPods' "Resource Bundles" to copy the resources that we need and
|
|
5
|
+
// we have called our main one "Resources" (see the podspec file), hence the hardcoded name.
|
|
6
|
+
#if !SWIFT_PACKAGE
|
|
7
|
+
import class Foundation.Bundle
|
|
8
|
+
|
|
9
|
+
private class BundleFinder {}
|
|
10
|
+
|
|
11
|
+
extension Foundation.Bundle {
|
|
12
|
+
/// Returns the resource bundle associated with the current Swift module.
|
|
13
|
+
static var module: Bundle = {
|
|
14
|
+
let bundleName = "Resources"
|
|
15
|
+
|
|
16
|
+
let candidates = [
|
|
17
|
+
// Bundle should be present here when the package is linked into a framework.
|
|
18
|
+
Bundle(for: BundleFinder.self).resourceURL
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
for candidate in candidates {
|
|
22
|
+
let bundlePath = candidate?.appendingPathComponent(bundleName + ".bundle")
|
|
23
|
+
if let bundle = bundlePath.flatMap(Bundle.init(url:)) {
|
|
24
|
+
return bundle
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
fatalError("unable to find bundle named Resources")
|
|
28
|
+
}()
|
|
29
|
+
}
|
|
30
|
+
#endif
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//
|
|
2
|
+
// LoggingProxy.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 3/6/20.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
Represents what's expected from a logging entity
|
|
12
|
+
*/
|
|
13
|
+
public protocol Logger {
|
|
14
|
+
func debug(_ message: String, file: StaticString, function: StaticString, line: Int)
|
|
15
|
+
|
|
16
|
+
func info(_ message: String, file: StaticString, function: StaticString, line: Int)
|
|
17
|
+
|
|
18
|
+
func event(_ message: String, file: StaticString, function: StaticString, line: Int)
|
|
19
|
+
|
|
20
|
+
func warn(_ message: String, file: StaticString, function: StaticString, line: Int)
|
|
21
|
+
|
|
22
|
+
func error(_ message: String, file: StaticString, function: StaticString, line: Int)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var logger: Logger?
|
|
26
|
+
|
|
27
|
+
enum LoggerProxy {
|
|
28
|
+
static func debug(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
|
|
29
|
+
logger?.debug(message, file: file, function: function, line: line)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static func info(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
|
|
33
|
+
logger?.info(message, file: file, function: function, line: line)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static func event(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
|
|
37
|
+
logger?.event(message, file: file, function: function, line: line)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static func warn(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
|
|
41
|
+
logger?.warn(message, file: file, function: function, line: line)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static func error(_ message: String, file: StaticString = #file, function: StaticString = #function, line: Int = #line) {
|
|
45
|
+
logger?.error(message, file: file, function: function, line: line)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
//
|
|
2
|
+
// SaplingParameterDownloader.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 10/7/20.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
/**
|
|
10
|
+
Helper class to handle the download of Sapling parameters
|
|
11
|
+
*/
|
|
12
|
+
public enum SaplingParameterDownloader {
|
|
13
|
+
public enum Errors: Error {
|
|
14
|
+
case invalidURL(url: String)
|
|
15
|
+
case failed(error: Error)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
Download a Spend parameter from default host and stores it at given URL
|
|
20
|
+
- Parameters:
|
|
21
|
+
- at: The destination URL for the download
|
|
22
|
+
- result: block to handle the download success or error
|
|
23
|
+
*/
|
|
24
|
+
public static func downloadSpendParameter(_ at: URL, result: @escaping (Result<URL, Error>) -> Void) {
|
|
25
|
+
guard let url = URL(string: spendParamsURLString) else {
|
|
26
|
+
result(.failure(Errors.invalidURL(url: spendParamsURLString)))
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
downloadFileWithRequest(URLRequest(url: url), at: at, result: result)
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
Download an Output parameter from default host and stores it at given URL
|
|
34
|
+
- Parameters:
|
|
35
|
+
- at: The destination URL for the download
|
|
36
|
+
- result: block to handle the download success or error
|
|
37
|
+
*/
|
|
38
|
+
public static func downloadOutputParameter(_ at: URL, result: @escaping (Result<URL, Error>) -> Void) {
|
|
39
|
+
guard let url = URL(string: outputParamsURLString) else {
|
|
40
|
+
result(.failure(Errors.invalidURL(url: outputParamsURLString)))
|
|
41
|
+
return
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
downloadFileWithRequest(URLRequest(url: url), at: at, result: result)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private static func downloadFileWithRequest(_ request: URLRequest, at destination: URL, result: @escaping (Result<URL, Error>) -> Void) {
|
|
48
|
+
let task = URLSession.shared.downloadTask(with: request) { url, _, error in
|
|
49
|
+
if let error = error {
|
|
50
|
+
result(.failure(Errors.failed(error: error)))
|
|
51
|
+
return
|
|
52
|
+
} else if let localUrl = url {
|
|
53
|
+
do {
|
|
54
|
+
try FileManager.default.moveItem(at: localUrl, to: destination)
|
|
55
|
+
result(.success(destination))
|
|
56
|
+
} catch {
|
|
57
|
+
result(.failure(error))
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
task.resume()
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
Downloads the parameters if not present and provides the resulting URLs for both parameters
|
|
66
|
+
- Parameters:
|
|
67
|
+
- spendURL: URL to check whether the parameter is already downloaded
|
|
68
|
+
- outputURL: URL to check whether the parameter is already downloaded
|
|
69
|
+
- result: block to handle success or error
|
|
70
|
+
*/
|
|
71
|
+
public static func downloadParamsIfnotPresent(
|
|
72
|
+
spendURL: URL,
|
|
73
|
+
outputURL: URL,
|
|
74
|
+
result: @escaping (Result<(spend: URL, output: URL), Error>) -> Void
|
|
75
|
+
) {
|
|
76
|
+
ensureSpendParameter(at: spendURL) { spendResult in
|
|
77
|
+
switch spendResult {
|
|
78
|
+
case .success(let spendResultURL):
|
|
79
|
+
ensureOutputParameter(at: outputURL) { outputResult in
|
|
80
|
+
switch outputResult {
|
|
81
|
+
case .success(let outputResultURL):
|
|
82
|
+
result(.success((spendResultURL, outputResultURL)))
|
|
83
|
+
case .failure(let outputResultError):
|
|
84
|
+
result(.failure(Errors.failed(error: outputResultError)))
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
case .failure(let spendResultError):
|
|
88
|
+
result(.failure(Errors.failed(error: spendResultError)))
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
static func ensureSpendParameter(at url: URL, result: @escaping (Result<URL, Error>) -> Void) {
|
|
94
|
+
if isFilePresent(url: url) {
|
|
95
|
+
DispatchQueue.global().async {
|
|
96
|
+
result(.success(url))
|
|
97
|
+
}
|
|
98
|
+
} else {
|
|
99
|
+
downloadSpendParameter(url, result: result)
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
static func ensureOutputParameter(at url: URL, result: @escaping (Result<URL, Error>) -> Void) {
|
|
104
|
+
if isFilePresent(url: url) {
|
|
105
|
+
DispatchQueue.global().async {
|
|
106
|
+
result(.success(url))
|
|
107
|
+
}
|
|
108
|
+
} else {
|
|
109
|
+
downloadOutputParameter(url, result: result)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
static func isFilePresent(url: URL) -> Bool {
|
|
114
|
+
(try? FileManager.default.attributesOfItem(atPath: url.path)) != nil
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public static var spendParamsURLString: String {
|
|
118
|
+
return ZcashSDK.cloudParameterURL + ZcashSDK.spendParamFilename
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
public static var outputParamsURLString: String {
|
|
122
|
+
return ZcashSDK.cloudParameterURL + ZcashSDK.outputParamFilename
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>AvailableLibraries</key>
|
|
6
|
+
<array>
|
|
7
|
+
<dict>
|
|
8
|
+
<key>LibraryIdentifier</key>
|
|
9
|
+
<string>ios-arm64</string>
|
|
10
|
+
<key>LibraryPath</key>
|
|
11
|
+
<string>libzcashlc.a</string>
|
|
12
|
+
<key>SupportedArchitectures</key>
|
|
13
|
+
<array>
|
|
14
|
+
<string>arm64</string>
|
|
15
|
+
</array>
|
|
16
|
+
<key>SupportedPlatform</key>
|
|
17
|
+
<string>ios</string>
|
|
18
|
+
</dict>
|
|
19
|
+
<dict>
|
|
20
|
+
<key>LibraryIdentifier</key>
|
|
21
|
+
<string>ios-arm64_x86_64-simulator</string>
|
|
22
|
+
<key>LibraryPath</key>
|
|
23
|
+
<string>libzcashlc.a</string>
|
|
24
|
+
<key>SupportedArchitectures</key>
|
|
25
|
+
<array>
|
|
26
|
+
<string>arm64</string>
|
|
27
|
+
<string>x86_64</string>
|
|
28
|
+
</array>
|
|
29
|
+
<key>SupportedPlatform</key>
|
|
30
|
+
<string>ios</string>
|
|
31
|
+
<key>SupportedPlatformVariant</key>
|
|
32
|
+
<string>simulator</string>
|
|
33
|
+
</dict>
|
|
34
|
+
</array>
|
|
35
|
+
<key>CFBundlePackageType</key>
|
|
36
|
+
<string>XFWK</string>
|
|
37
|
+
<key>XCFrameworkFormatVersion</key>
|
|
38
|
+
<string>1.0</string>
|
|
39
|
+
</dict>
|
|
40
|
+
</plist>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// Placeholder so react-native autolinking can find us.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|