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.
- package/CHANGELOG.md +5 -0
- package/LICENSE +22 -0
- package/README.md +44 -44
- package/android/build.gradle +1 -1
- 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/updateSources.d.ts +1 -0
- package/package.json +20 -37
- 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/scripts/copyCheckpoints.js +0 -12
- package/src/browser.ts +0 -36
- package/src/index.flow.js +0 -168
- package/src/index.ts +0 -1
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ZcashSDK.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 7/22/21.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
public protocol ZcashNetwork {
|
|
10
|
+
var networkType: NetworkType { get }
|
|
11
|
+
var constants: NetworkConstants.Type { get }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public enum NetworkType {
|
|
15
|
+
case mainnet
|
|
16
|
+
case testnet
|
|
17
|
+
|
|
18
|
+
var networkId: UInt32 {
|
|
19
|
+
switch self {
|
|
20
|
+
case .mainnet: return 1
|
|
21
|
+
case .testnet: return 0
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
extension NetworkType {
|
|
27
|
+
static func forChainName(_ chainame: String) -> NetworkType? {
|
|
28
|
+
switch chainame {
|
|
29
|
+
case "test": return .testnet
|
|
30
|
+
case "main": return .mainnet
|
|
31
|
+
default: return nil
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public enum ZcashNetworkBuilder {
|
|
37
|
+
public static func network(for networkType: NetworkType) -> ZcashNetwork {
|
|
38
|
+
switch networkType {
|
|
39
|
+
case .mainnet: return ZcashMainnet()
|
|
40
|
+
case .testnet: return ZcashTestnet()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
class ZcashTestnet: ZcashNetwork {
|
|
46
|
+
var networkType: NetworkType = .testnet
|
|
47
|
+
var constants: NetworkConstants.Type = ZcashSDKTestnetConstants.self
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
class ZcashMainnet: ZcashNetwork {
|
|
51
|
+
var networkType: NetworkType = .mainnet
|
|
52
|
+
var constants: NetworkConstants.Type = ZcashSDKMainnetConstants.self
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
Constants of ZcashLightClientKit. this constants don't
|
|
57
|
+
*/
|
|
58
|
+
public enum ZcashSDK {
|
|
59
|
+
/**
|
|
60
|
+
The number of zatoshi that equal 1 ZEC.
|
|
61
|
+
*/
|
|
62
|
+
public static var zatoshiPerZEC: BlockHeight = 100_000_000
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
The theoretical maximum number of blocks in a reorg, due to other bottlenecks in the protocol design.
|
|
66
|
+
*/
|
|
67
|
+
public static var maxReorgSize = 100
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
The amount of blocks ahead of the current height where new transactions are set to expire. This value is controlled
|
|
71
|
+
by the rust backend but it is helpful to know what it is set to and should be kept in sync.
|
|
72
|
+
*/
|
|
73
|
+
public static var expiryOffset = 20
|
|
74
|
+
|
|
75
|
+
//
|
|
76
|
+
// Defaults
|
|
77
|
+
//
|
|
78
|
+
/**
|
|
79
|
+
Default size of batches of blocks to request from the compact block service.
|
|
80
|
+
*/
|
|
81
|
+
public static var DefaultBatchSize = 100
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
Default amount of time, in in seconds, to poll for new blocks. Typically, this should be about half the average
|
|
85
|
+
block time.
|
|
86
|
+
*/
|
|
87
|
+
public static var defaultPollInterval: TimeInterval = 20
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
Default attempts at retrying.
|
|
91
|
+
*/
|
|
92
|
+
public static var defaultRetries: Int = 5
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
The default maximum amount of time to wait during retry backoff intervals. Failed loops will never wait longer than
|
|
96
|
+
this before retyring.
|
|
97
|
+
*/
|
|
98
|
+
public static var defaultMaxBackOffInterval: TimeInterval = 600
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
Default number of blocks to rewind when a chain reorg is detected. This should be large enough to recover from the
|
|
102
|
+
reorg but smaller than the theoretical max reorg size of 100.
|
|
103
|
+
*/
|
|
104
|
+
public static var defaultRewindDistance: Int = 10
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
The number of blocks to allow before considering our data to be stale. This usually helps with what to do when
|
|
108
|
+
returning from the background and is exposed via the Synchronizer's isStale function.
|
|
109
|
+
*/
|
|
110
|
+
public static var defaultStaleTolerance: Int = 10
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
Default Name for LibRustZcash data.db
|
|
114
|
+
*/
|
|
115
|
+
public static var defaultDataDbName = "data.db"
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
Default Name for Compact Block caches db
|
|
119
|
+
*/
|
|
120
|
+
public static var defaultCacheDbName = "caches.db"
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
Default name for pending transactions db
|
|
124
|
+
*/
|
|
125
|
+
public static var defaultPendingDbName = "pending.db"
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
File name for the sapling spend params
|
|
129
|
+
*/
|
|
130
|
+
public static var spendParamFilename = "sapling-spend.params"
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
File name for the sapling output params
|
|
134
|
+
*/
|
|
135
|
+
public static var outputParamFilename = "sapling-output.params"
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
The Url that is used by default in zcashd.
|
|
139
|
+
We'll want to make this externally configurable, rather than baking it into the SDK but
|
|
140
|
+
this will do for now, since we're using a cloudfront URL that already redirects.
|
|
141
|
+
*/
|
|
142
|
+
public static var cloudParameterURL = "https://z.cash/downloads/"
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public protocol NetworkConstants {
|
|
146
|
+
/**
|
|
147
|
+
The height of the first sapling block. When it comes to shielded transactions, we do not need to consider any blocks
|
|
148
|
+
prior to this height, at all.
|
|
149
|
+
*/
|
|
150
|
+
static var saplingActivationHeight: BlockHeight { get }
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
Default Name for LibRustZcash data.db
|
|
154
|
+
*/
|
|
155
|
+
static var defaultDataDbName: String { get }
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
Default Name for Compact Block caches db
|
|
159
|
+
*/
|
|
160
|
+
static var defaultCacheDbName: String { get }
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
Default name for pending transactions db
|
|
164
|
+
*/
|
|
165
|
+
static var defaultPendingDbName: String { get }
|
|
166
|
+
|
|
167
|
+
static var defaultDbNamePrefix: String { get }
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
fixed height where the SDK considers that the ZIP-321 was deployed. This is a workaround
|
|
171
|
+
for librustzcash not figuring out the tx fee from the tx itself.
|
|
172
|
+
*/
|
|
173
|
+
static var feeChangeHeight: BlockHeight { get }
|
|
174
|
+
|
|
175
|
+
static func defaultFee(for height: BlockHeight) -> Int64
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
public extension NetworkConstants {
|
|
179
|
+
static func defaultFee(for height: BlockHeight = BlockHeight.max) -> Int64 {
|
|
180
|
+
guard height >= feeChangeHeight else { return 10_000 }
|
|
181
|
+
|
|
182
|
+
return 1_000
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
public class ZcashSDKMainnetConstants: NetworkConstants {
|
|
187
|
+
private init() {}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
The height of the first sapling block. When it comes to shielded transactions, we do not need to consider any blocks
|
|
191
|
+
prior to this height, at all.
|
|
192
|
+
*/
|
|
193
|
+
public static var saplingActivationHeight: BlockHeight = 419_200
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
Default Name for LibRustZcash data.db
|
|
197
|
+
*/
|
|
198
|
+
public static var defaultDataDbName = "data.db"
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
Default Name for Compact Block caches db
|
|
202
|
+
*/
|
|
203
|
+
public static var defaultCacheDbName = "caches.db"
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
Default name for pending transactions db
|
|
207
|
+
*/
|
|
208
|
+
public static var defaultPendingDbName = "pending.db"
|
|
209
|
+
|
|
210
|
+
public static var defaultDbNamePrefix = "ZcashSdk_mainnet_"
|
|
211
|
+
|
|
212
|
+
public static var feeChangeHeight: BlockHeight = 1_077_550
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
public class ZcashSDKTestnetConstants: NetworkConstants {
|
|
216
|
+
private init() {}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
The height of the first sapling block. When it comes to shielded transactions, we do not need to consider any blocks
|
|
220
|
+
prior to this height, at all.
|
|
221
|
+
*/
|
|
222
|
+
public static var saplingActivationHeight: BlockHeight = 280_000
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
Default Name for LibRustZcash data.db
|
|
226
|
+
*/
|
|
227
|
+
public static var defaultDataDbName = "data.db"
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
Default Name for Compact Block caches db
|
|
231
|
+
*/
|
|
232
|
+
public static var defaultCacheDbName = "caches.db"
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
Default name for pending transactions db
|
|
236
|
+
*/
|
|
237
|
+
public static var defaultPendingDbName = "pending.db"
|
|
238
|
+
|
|
239
|
+
public static var defaultDbNamePrefix = "ZcashSdk_testnet_"
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
Estimated height where wallets are supposed to change the fee
|
|
243
|
+
*/
|
|
244
|
+
public static var feeChangeHeight: BlockHeight = 1_028_500
|
|
245
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
//
|
|
2
|
+
// BlockDao.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
|
+
import SQLite
|
|
11
|
+
|
|
12
|
+
protocol BlockDao {
|
|
13
|
+
func latestBlockHeight() throws -> BlockHeight
|
|
14
|
+
func block(at height: BlockHeight) throws -> Block?
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
struct Block: Codable {
|
|
18
|
+
enum CodingKeys: String, CodingKey {
|
|
19
|
+
case height
|
|
20
|
+
case hash
|
|
21
|
+
case time
|
|
22
|
+
case saplingTree = "sapling_tree"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
enum TableStructure {
|
|
26
|
+
static var height = Expression<Int>(Block.CodingKeys.height.rawValue)
|
|
27
|
+
static var hash = Expression<Blob>(Block.CodingKeys.hash.rawValue)
|
|
28
|
+
static var time = Expression<Int>(Block.CodingKeys.time.rawValue)
|
|
29
|
+
static var saplingTree = Expression<Blob>(Block.CodingKeys.saplingTree.rawValue)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
var height: BlockHeight
|
|
33
|
+
var hash: Data
|
|
34
|
+
var time: Int
|
|
35
|
+
var saplingTree: Data
|
|
36
|
+
|
|
37
|
+
static var table = Table("blocks")
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
class BlockSQLDAO: BlockDao {
|
|
41
|
+
var dbProvider: ConnectionProvider
|
|
42
|
+
var table: Table
|
|
43
|
+
var height = Expression<Int>("height")
|
|
44
|
+
|
|
45
|
+
init(dbProvider: ConnectionProvider) {
|
|
46
|
+
self.dbProvider = dbProvider
|
|
47
|
+
self.table = Table("Blocks")
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
func block(at height: BlockHeight) throws -> Block? {
|
|
51
|
+
try dbProvider
|
|
52
|
+
.connection()
|
|
53
|
+
.prepare(Block.table.filter(Block.TableStructure.height == height).limit(1))
|
|
54
|
+
.map({ try $0.decode() })
|
|
55
|
+
.first
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func latestBlockHeight() throws -> BlockHeight {
|
|
59
|
+
try dbProvider.connection().scalar(table.select(height.max)) ?? BlockHeight.empty()
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
extension BlockSQLDAO: BlockRepository {
|
|
64
|
+
func lastScannedBlockHeight() -> BlockHeight {
|
|
65
|
+
(try? self.latestBlockHeight()) ?? BlockHeight.empty()
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//
|
|
2
|
+
// CompactBlockDAO.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 CompactBlockDAO {
|
|
12
|
+
func createTable() throws
|
|
13
|
+
|
|
14
|
+
func insert(_ block: ZcashCompactBlock) throws
|
|
15
|
+
|
|
16
|
+
func insert(_ blocks: [ZcashCompactBlock]) throws
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
Query the latest block height, returns -1 if no block is stored
|
|
20
|
+
*/
|
|
21
|
+
func latestBlockHeight() throws -> BlockHeight
|
|
22
|
+
|
|
23
|
+
func rewind(to height: BlockHeight) throws
|
|
24
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
//
|
|
2
|
+
// NotesDao.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/18/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import SQLite
|
|
10
|
+
|
|
11
|
+
struct ReceivedNote: ReceivedNoteEntity, Codable {
|
|
12
|
+
enum CodingKeys: String, CodingKey {
|
|
13
|
+
case id = "id_note"
|
|
14
|
+
case diversifier
|
|
15
|
+
case rcm
|
|
16
|
+
case nf
|
|
17
|
+
case isChange = "is_change"
|
|
18
|
+
case transactionId = "id_tx"
|
|
19
|
+
case outputIndex = "output_index"
|
|
20
|
+
case account
|
|
21
|
+
case value
|
|
22
|
+
case memo
|
|
23
|
+
case spent
|
|
24
|
+
}
|
|
25
|
+
var id: Int
|
|
26
|
+
var diversifier: Data
|
|
27
|
+
var rcm: Data
|
|
28
|
+
var nf: Data
|
|
29
|
+
var isChange: Bool
|
|
30
|
+
var transactionId: Int
|
|
31
|
+
var outputIndex: Int
|
|
32
|
+
var account: Int
|
|
33
|
+
var value: Int
|
|
34
|
+
var memo: Data?
|
|
35
|
+
var spent: Int?
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
class ReceivedNotesSQLDAO: ReceivedNoteRepository {
|
|
39
|
+
let table = Table("received_notes")
|
|
40
|
+
|
|
41
|
+
var dbProvider: ConnectionProvider
|
|
42
|
+
|
|
43
|
+
init(dbProvider: ConnectionProvider) {
|
|
44
|
+
self.dbProvider = dbProvider
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
func count() throws -> Int {
|
|
48
|
+
try dbProvider.connection().scalar(table.count)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
func receivedNote(byRawTransactionId: Data) throws -> ReceivedNoteEntity? {
|
|
52
|
+
let transactions = Table("transactions")
|
|
53
|
+
let idTx = Expression<Int>("id_tx")
|
|
54
|
+
let transaction = Expression<Int>("tx")
|
|
55
|
+
let txid = Expression<Blob>("txid")
|
|
56
|
+
let joinStatement = table
|
|
57
|
+
.join(
|
|
58
|
+
.inner,
|
|
59
|
+
transactions,
|
|
60
|
+
on: transactions[idTx] == table[transaction]
|
|
61
|
+
)
|
|
62
|
+
.where(transactions[txid] == Blob(bytes: byRawTransactionId.bytes))
|
|
63
|
+
.limit(1)
|
|
64
|
+
|
|
65
|
+
return try dbProvider.connection()
|
|
66
|
+
.prepare(joinStatement)
|
|
67
|
+
.map { row -> ReceivedNote in
|
|
68
|
+
try row.decode()
|
|
69
|
+
}
|
|
70
|
+
.first
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
struct SentNote: SentNoteEntity, Codable {
|
|
75
|
+
enum CodingKeys: String, CodingKey {
|
|
76
|
+
case id = "id_note"
|
|
77
|
+
case transactionId = "tx"
|
|
78
|
+
case outputIndex = "output_index"
|
|
79
|
+
case account = "from_account"
|
|
80
|
+
case address
|
|
81
|
+
case value
|
|
82
|
+
case memo
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var id: Int
|
|
86
|
+
var transactionId: Int
|
|
87
|
+
var outputIndex: Int
|
|
88
|
+
var account: Int
|
|
89
|
+
var address: String
|
|
90
|
+
var value: Int
|
|
91
|
+
var memo: Data?
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
class SentNotesSQLDAO: SentNotesRepository {
|
|
95
|
+
let table = Table("sent_notes")
|
|
96
|
+
|
|
97
|
+
var dbProvider: ConnectionProvider
|
|
98
|
+
|
|
99
|
+
init(dbProvider: ConnectionProvider) {
|
|
100
|
+
self.dbProvider = dbProvider
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
func count() throws -> Int {
|
|
104
|
+
try dbProvider.connection().scalar(table.count)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
func sentNote(byRawTransactionId: Data) throws -> SentNoteEntity? {
|
|
108
|
+
let transactions = Table("transactions")
|
|
109
|
+
let idTx = Expression<Int>("id_tx")
|
|
110
|
+
let transaction = Expression<Int>("tx")
|
|
111
|
+
let txid = Expression<Blob>("txid")
|
|
112
|
+
let joinStatement = table
|
|
113
|
+
.join(
|
|
114
|
+
.inner,
|
|
115
|
+
transactions,
|
|
116
|
+
on: transactions[idTx] == table[transaction]
|
|
117
|
+
)
|
|
118
|
+
.where(transactions[txid] == Blob(bytes: byRawTransactionId.bytes))
|
|
119
|
+
.limit(1)
|
|
120
|
+
|
|
121
|
+
return try dbProvider.connection()
|
|
122
|
+
.prepare(joinStatement)
|
|
123
|
+
.map { row -> SentNote in
|
|
124
|
+
try row.decode()
|
|
125
|
+
}
|
|
126
|
+
.first
|
|
127
|
+
// try dbProvider.connection().run("""
|
|
128
|
+
// SELECT sent_notes.id_note as id,
|
|
129
|
+
// sent_notes.tx as transactionId,
|
|
130
|
+
// sent_notes.output_index as outputIndex,
|
|
131
|
+
// sent_notes.account as account,
|
|
132
|
+
// sent_notes.address as address,
|
|
133
|
+
// sent_notes.value as value,
|
|
134
|
+
// sent_notes.memo as memo
|
|
135
|
+
// FROM sent_note JOIN transactions
|
|
136
|
+
// WHERE sent_note.tx = transactions.id_tx AND
|
|
137
|
+
// transactions.txid = \(Blob(bytes: byRawTransactionId.bytes))
|
|
138
|
+
// """).map({ row -> SentNoteEntity in
|
|
139
|
+
// try row.decode()
|
|
140
|
+
// }).first
|
|
141
|
+
}
|
|
142
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
//
|
|
2
|
+
// File.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 12/9/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
class PagedTransactionDAO: PaginatedTransactionRepository {
|
|
11
|
+
var pageSize: Int
|
|
12
|
+
var transactionRepository: TransactionRepository
|
|
13
|
+
var kind: TransactionKind
|
|
14
|
+
|
|
15
|
+
var pageCount: Int {
|
|
16
|
+
guard pageSize > 0 else {
|
|
17
|
+
return 0
|
|
18
|
+
}
|
|
19
|
+
return itemCount / pageSize
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
var itemCount: Int {
|
|
23
|
+
guard let count = try? transactionRepository.countAll() else {
|
|
24
|
+
return 0
|
|
25
|
+
}
|
|
26
|
+
return count
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
init(repository: TransactionRepository, pageSize: Int = 30, kind: TransactionKind = .all) {
|
|
30
|
+
self.transactionRepository = repository
|
|
31
|
+
self.pageSize = pageSize
|
|
32
|
+
self.kind = kind
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
func getAll(offset: Int, limit: Int, kind: TransactionKind) throws -> [ConfirmedTransactionEntity]? {
|
|
36
|
+
switch kind {
|
|
37
|
+
case .all:
|
|
38
|
+
return try transactionRepository.findAll(offset: offset, limit: limit)
|
|
39
|
+
case .received:
|
|
40
|
+
return try transactionRepository.findAll(offset: offset, limit: limit)
|
|
41
|
+
case .sent:
|
|
42
|
+
return try transactionRepository.findAllSentTransactions(offset: offset, limit: limit)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
func page(_ number: Int) throws -> [TransactionEntity]? {
|
|
47
|
+
let offset = number * pageSize
|
|
48
|
+
guard offset < itemCount else { return nil }
|
|
49
|
+
return try getAll(offset: offset, limit: pageSize, kind: kind)?.map({ $0.transactionEntity })
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
func page(_ number: Int, result: @escaping (Result<[TransactionEntity]?, Error>) -> Void) {
|
|
53
|
+
DispatchQueue.global(qos: .userInitiated).async { [weak self] in
|
|
54
|
+
guard let self = self else { return }
|
|
55
|
+
do {
|
|
56
|
+
result(.success(try self.page(number)))
|
|
57
|
+
} catch {
|
|
58
|
+
result(.failure(error))
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|