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,201 @@
|
|
|
1
|
+
//
|
|
2
|
+
// AccountEntity.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/14/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
protocol AccountEntity {
|
|
11
|
+
var account: Int { get set }
|
|
12
|
+
var extfvk: String { get set }
|
|
13
|
+
var address: String { get set }
|
|
14
|
+
var transparentAddress: String { get set }
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
struct Account: AccountEntity, Encodable, Decodable {
|
|
18
|
+
enum CodingKeys: String, CodingKey {
|
|
19
|
+
case account
|
|
20
|
+
case extfvk
|
|
21
|
+
case address
|
|
22
|
+
case transparentAddress = "transparent_address"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var account: Int
|
|
26
|
+
|
|
27
|
+
var extfvk: String
|
|
28
|
+
|
|
29
|
+
var address: String
|
|
30
|
+
|
|
31
|
+
var transparentAddress: String
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
extension Account: UnifiedAddress {
|
|
35
|
+
var tAddress: TransparentAddress {
|
|
36
|
+
get {
|
|
37
|
+
transparentAddress
|
|
38
|
+
}
|
|
39
|
+
set {
|
|
40
|
+
transparentAddress = newValue
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
var zAddress: SaplingShieldedAddress {
|
|
45
|
+
get {
|
|
46
|
+
address
|
|
47
|
+
}
|
|
48
|
+
// swiftlint:disable unused_setter_value
|
|
49
|
+
set {
|
|
50
|
+
address = transparentAddress
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
extension Account: Hashable {
|
|
56
|
+
func hash(into hasher: inout Hasher) {
|
|
57
|
+
hasher.combine(account)
|
|
58
|
+
hasher.combine(extfvk)
|
|
59
|
+
hasher.combine(address)
|
|
60
|
+
hasher.combine(transparentAddress)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static func == (lhs: Self, rhs: Self) -> Bool {
|
|
64
|
+
guard
|
|
65
|
+
lhs.account == rhs.account,
|
|
66
|
+
lhs.extfvk == rhs.extfvk,
|
|
67
|
+
lhs.address == rhs.address,
|
|
68
|
+
lhs.transparentAddress == rhs.transparentAddress
|
|
69
|
+
else { return false }
|
|
70
|
+
|
|
71
|
+
return true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
protocol AccountRepository {
|
|
76
|
+
func getAll() throws -> [AccountEntity]
|
|
77
|
+
func findBy(account: Int) throws -> AccountEntity?
|
|
78
|
+
func findBy(address: String) throws -> AccountEntity?
|
|
79
|
+
func update(_ account: AccountEntity) throws
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
import SQLite
|
|
83
|
+
|
|
84
|
+
class AccountSQDAO: AccountRepository {
|
|
85
|
+
enum TableColums {
|
|
86
|
+
static let account = Expression<Int>("account")
|
|
87
|
+
static let extfvk = Expression<String>("extfvk")
|
|
88
|
+
static let address = Expression<String>("address")
|
|
89
|
+
static let transparentAddress = Expression<String>("transparent_address")
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
let table = Table("accounts")
|
|
93
|
+
|
|
94
|
+
var dbProvider: ConnectionProvider
|
|
95
|
+
|
|
96
|
+
init (dbProvider: ConnectionProvider) {
|
|
97
|
+
self.dbProvider = dbProvider
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
func getAll() throws -> [AccountEntity] {
|
|
101
|
+
let allAccounts: [Account] = try dbProvider.connection().prepare(table).map({ row in
|
|
102
|
+
try row.decode()
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
return allAccounts
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
func findBy(account: Int) throws -> AccountEntity? {
|
|
109
|
+
let query = table.filter(TableColums.account == account).limit(1)
|
|
110
|
+
return try dbProvider.connection().prepare(query).map({ try $0.decode() as Account }).first
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
func findBy(address: String) throws -> AccountEntity? {
|
|
114
|
+
let query = table.filter(TableColums.address == address).limit(1)
|
|
115
|
+
return try dbProvider.connection().prepare(query).map({ try $0.decode() as Account }).first
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
func update(_ account: AccountEntity) throws {
|
|
119
|
+
guard let acc = account as? Account else {
|
|
120
|
+
throw StorageError.updateFailed
|
|
121
|
+
}
|
|
122
|
+
let updatedRows = try dbProvider.connection().run(table.filter(TableColums.account == acc.account).update(acc))
|
|
123
|
+
if updatedRows == 0 {
|
|
124
|
+
LoggerProxy.error("attempted to update pending transactions but no rows were updated")
|
|
125
|
+
throw StorageError.updateFailed
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
class CachingAccountDao: AccountRepository {
|
|
131
|
+
var dao: AccountRepository
|
|
132
|
+
lazy var cache: [Int: AccountEntity] = {
|
|
133
|
+
var accountCache: [Int: AccountEntity] = [:]
|
|
134
|
+
guard let all = try? dao.getAll() else {
|
|
135
|
+
return accountCache
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
for acc in all {
|
|
139
|
+
accountCache[acc.account] = acc
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return accountCache
|
|
143
|
+
}()
|
|
144
|
+
|
|
145
|
+
init(dao: AccountRepository) {
|
|
146
|
+
self.dao = dao
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
func getAll() throws -> [AccountEntity] {
|
|
150
|
+
guard cache.isEmpty else {
|
|
151
|
+
return cache.values.sorted(by: { $0.account < $1.account })
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
let all = try dao.getAll()
|
|
155
|
+
|
|
156
|
+
for acc in all {
|
|
157
|
+
cache[acc.account] = acc
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return all
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
func findBy(account: Int) throws -> AccountEntity? {
|
|
164
|
+
if let acc = cache[account] {
|
|
165
|
+
return acc
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
let acc = try dao.findBy(account: account)
|
|
169
|
+
cache[account] = acc
|
|
170
|
+
|
|
171
|
+
return acc
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
func findBy(address: String) throws -> AccountEntity? {
|
|
175
|
+
if !cache.isEmpty, let account = cache.values.first(where: { $0.address == address }) {
|
|
176
|
+
return account
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
guard let account = try dao.findBy(address: address) else {
|
|
180
|
+
return nil
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
cache[account.account] = account
|
|
184
|
+
|
|
185
|
+
return account
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
func update(_ account: AccountEntity) throws {
|
|
189
|
+
try dao.update(account)
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
enum AccountRepositoryBuilder {
|
|
194
|
+
static func build(dataDbURL: URL, readOnly: Bool = false, caching: Bool = false) -> AccountRepository {
|
|
195
|
+
if caching {
|
|
196
|
+
return CachingAccountDao(dao: AccountSQDAO(dbProvider: SimpleConnectionProvider(path: dataDbURL.path, readonly: readOnly)))
|
|
197
|
+
} else {
|
|
198
|
+
return AccountSQDAO(dbProvider: SimpleConnectionProvider(path: dataDbURL.path, readonly: readOnly))
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
//
|
|
2
|
+
// EncodedTransactionEntity.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/19/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
struct EncodedTransaction: SignedTransactionEntity {
|
|
11
|
+
var transactionId: Data
|
|
12
|
+
var raw: Data?
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
extension EncodedTransaction: Hashable {
|
|
16
|
+
func hash(into hasher: inout Hasher) {
|
|
17
|
+
hasher.combine(transactionId)
|
|
18
|
+
hasher.combine(raw)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static func == (lhs: Self, rhs: Self) -> Bool {
|
|
22
|
+
guard lhs.transactionId == rhs.transactionId else { return false }
|
|
23
|
+
guard lhs.raw == rhs.raw else { return false }
|
|
24
|
+
return true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
//
|
|
2
|
+
// PendingTransactionEntity.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/19/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
/**
|
|
10
|
+
Represents a sent transaction that has not been confirmed yet on the blockchain
|
|
11
|
+
*/
|
|
12
|
+
public protocol PendingTransactionEntity: SignedTransactionEntity, AbstractTransaction, RawIdentifiable {
|
|
13
|
+
/**
|
|
14
|
+
recipient address
|
|
15
|
+
*/
|
|
16
|
+
var toAddress: String { get set }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
index of the account from which the funds were sent
|
|
20
|
+
*/
|
|
21
|
+
var accountIndex: Int { get set }
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
height which the block was mined at.
|
|
25
|
+
-1 when block has not been mined yet
|
|
26
|
+
*/
|
|
27
|
+
var minedHeight: BlockHeight { get set }
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
height for which the represented transaction would be considered expired
|
|
31
|
+
*/
|
|
32
|
+
var expiryHeight: BlockHeight { get set }
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
value is 1 if the transaction was cancelled
|
|
36
|
+
*/
|
|
37
|
+
var cancelled: Int { get set }
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
how many times this transaction encoding was attempted
|
|
41
|
+
*/
|
|
42
|
+
var encodeAttempts: Int { get set }
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
How many attempts to send this transaction have been done
|
|
46
|
+
*/
|
|
47
|
+
var submitAttempts: Int { get set }
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
Error message if available.
|
|
51
|
+
*/
|
|
52
|
+
var errorMessage: String? { get set }
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
error code, if available
|
|
56
|
+
*/
|
|
57
|
+
var errorCode: Int? { get set }
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
create time of the represented transaction
|
|
61
|
+
|
|
62
|
+
- Note: represented in timeIntervalySince1970
|
|
63
|
+
*/
|
|
64
|
+
var createTime: TimeInterval { get set }
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
Checks whether this transaction is the same as the given transaction
|
|
68
|
+
*/
|
|
69
|
+
func isSameTransactionId<T: RawIdentifiable> (other: T) -> Bool
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
returns whether the represented transaction is pending based on the provided block height
|
|
73
|
+
*/
|
|
74
|
+
func isPending(currentHeight: Int) -> Bool
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
if the represented transaction is being created
|
|
78
|
+
*/
|
|
79
|
+
var isCreating: Bool { get }
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
returns whether the represented transaction has failed to be encoded
|
|
83
|
+
*/
|
|
84
|
+
var isFailedEncoding: Bool { get }
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
returns whether the represented transaction has failed to be submitted
|
|
88
|
+
*/
|
|
89
|
+
var isFailedSubmit: Bool { get }
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
returns whether the represented transaction presents some kind of error
|
|
93
|
+
*/
|
|
94
|
+
var isFailure: Bool { get }
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
returns whether the represented transaction has been cancelled by the user
|
|
98
|
+
*/
|
|
99
|
+
var isCancelled: Bool { get }
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
returns whether the represented transaction has been successfully mined
|
|
103
|
+
*/
|
|
104
|
+
var isMined: Bool { get }
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
returns whether the represented transaction has been submitted
|
|
108
|
+
*/
|
|
109
|
+
var isSubmitted: Bool { get }
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
returns whether the represented transaction has been submitted successfully
|
|
113
|
+
*/
|
|
114
|
+
var isSubmitSuccess: Bool { get }
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
public extension PendingTransactionEntity {
|
|
118
|
+
func isSameTransaction<T: RawIdentifiable>(other: T) -> Bool {
|
|
119
|
+
guard let selfId = self.rawTransactionId, let otherId = other.rawTransactionId else { return false }
|
|
120
|
+
return selfId == otherId
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var isCreating: Bool {
|
|
124
|
+
(raw?.isEmpty ?? true) != false && submitAttempts <= 0 && !isFailedSubmit && !isFailedEncoding
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
var isFailedEncoding: Bool {
|
|
128
|
+
(raw?.isEmpty ?? true) != false && encodeAttempts > 0
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var isFailedSubmit: Bool {
|
|
132
|
+
errorMessage != nil || (errorCode != nil && (errorCode ?? 0) < 0)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
var isFailure: Bool {
|
|
136
|
+
isFailedEncoding || isFailedSubmit
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
var isCancelled: Bool {
|
|
140
|
+
cancelled > 0
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
var isMined: Bool {
|
|
144
|
+
minedHeight > 0
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
var isSubmitted: Bool {
|
|
148
|
+
submitAttempts > 0
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
func isPending(currentHeight: Int = -1) -> Bool {
|
|
152
|
+
// not mined and not expired and successfully created
|
|
153
|
+
isSubmitSuccess && !isConfirmed(currentHeight: currentHeight) && (expiryHeight == -1 || expiryHeight > currentHeight) && raw != nil
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
var isSubmitSuccess: Bool {
|
|
157
|
+
submitAttempts > 0 && (errorCode == nil || (errorCode ?? 0) >= 0) && errorMessage == nil
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
func isConfirmed(currentHeight: Int = -1 ) -> Bool {
|
|
161
|
+
guard minedHeight > 0 else {
|
|
162
|
+
return false
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
guard currentHeight > 0 else {
|
|
166
|
+
return false
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return abs(currentHeight - minedHeight) >= ZcashSDK.defaultStaleTolerance
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
public extension PendingTransactionEntity {
|
|
174
|
+
/**
|
|
175
|
+
TransactionEntity representation of this PendingTransactionEntity transaction
|
|
176
|
+
*/
|
|
177
|
+
var transactionEntity: TransactionEntity {
|
|
178
|
+
Transaction(
|
|
179
|
+
id: self.id ?? -1,
|
|
180
|
+
transactionId: self.rawTransactionId ?? Data(),
|
|
181
|
+
created: Date(timeIntervalSince1970: self.createTime).description,
|
|
182
|
+
transactionIndex: -1,
|
|
183
|
+
expiryHeight: self.expiryHeight,
|
|
184
|
+
minedHeight: self.minedHeight,
|
|
185
|
+
raw: self.raw
|
|
186
|
+
)
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
public extension ConfirmedTransactionEntity {
|
|
191
|
+
/**
|
|
192
|
+
TransactionEntity representation of this ConfirmedTransactionEntity transaction
|
|
193
|
+
*/
|
|
194
|
+
var transactionEntity: TransactionEntity {
|
|
195
|
+
Transaction(
|
|
196
|
+
id: self.id ?? -1,
|
|
197
|
+
transactionId: self.rawTransactionId ?? Data(),
|
|
198
|
+
created: Date(timeIntervalSince1970: self.blockTimeInSeconds).description,
|
|
199
|
+
transactionIndex: self.transactionIndex,
|
|
200
|
+
expiryHeight: self.expiryHeight,
|
|
201
|
+
minedHeight: self.minedHeight,
|
|
202
|
+
raw: self.raw
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//
|
|
2
|
+
// ReceivedNotesEntity.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/14/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
protocol ReceivedNoteEntity {
|
|
11
|
+
var id: Int { get set }
|
|
12
|
+
var transactionId: Int { get set }
|
|
13
|
+
var outputIndex: Int { get set }
|
|
14
|
+
var account: Int { get set }
|
|
15
|
+
var value: Int { get set }
|
|
16
|
+
var memo: Data? { get set }
|
|
17
|
+
var spent: Int? { get set }
|
|
18
|
+
var diversifier: Data { get set }
|
|
19
|
+
var rcm: Data { get set }
|
|
20
|
+
var nf: Data { get set }
|
|
21
|
+
var isChange: Bool { get set }
|
|
22
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Sent.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/14/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
protocol SentNoteEntity {
|
|
11
|
+
var id: Int { get set }
|
|
12
|
+
var transactionId: Int { get set }
|
|
13
|
+
var outputIndex: Int { get set }
|
|
14
|
+
var account: Int { get set }
|
|
15
|
+
var address: String { get set }
|
|
16
|
+
var value: Int { get set }
|
|
17
|
+
var memo: Data? { get set }
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
extension SentNoteEntity {
|
|
21
|
+
static func == (lhs: Self, rhs: Self) -> Bool {
|
|
22
|
+
guard lhs.id == rhs.id,
|
|
23
|
+
lhs.transactionId == rhs.transactionId,
|
|
24
|
+
lhs.outputIndex == rhs.outputIndex,
|
|
25
|
+
lhs.account == rhs.account,
|
|
26
|
+
lhs.address == rhs.address,
|
|
27
|
+
lhs.value == rhs.value,
|
|
28
|
+
lhs.memo == rhs.memo else { return false }
|
|
29
|
+
return true
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
func hash(into hasher: inout Hasher) {
|
|
33
|
+
hasher.combine(id)
|
|
34
|
+
hasher.combine(transactionId)
|
|
35
|
+
hasher.combine(outputIndex)
|
|
36
|
+
hasher.combine(account)
|
|
37
|
+
hasher.combine(address)
|
|
38
|
+
hasher.combine(value)
|
|
39
|
+
if let memo = memo {
|
|
40
|
+
hasher.combine(memo)
|
|
41
|
+
} else {
|
|
42
|
+
hasher.combine(Int(0))
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
//
|
|
2
|
+
// File.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 11/14/19.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
/**
|
|
10
|
+
convenience representation of all transaction types
|
|
11
|
+
*/
|
|
12
|
+
public protocol TransactionEntity {
|
|
13
|
+
/**
|
|
14
|
+
Internal transaction id
|
|
15
|
+
*/
|
|
16
|
+
var id: Int? { get set }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
Blockchain transaction id
|
|
20
|
+
*/
|
|
21
|
+
var transactionId: Data { get set }
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
String representing the date of creation
|
|
25
|
+
|
|
26
|
+
format is yyyy-MM-dd'T'HH:MM:ss.SSSSSSSSSZ
|
|
27
|
+
- Example: 2019-12-04T17:49:10.636624000Z
|
|
28
|
+
*/
|
|
29
|
+
var created: String? { get set }
|
|
30
|
+
var transactionIndex: Int? { get set }
|
|
31
|
+
var expiryHeight: BlockHeight? { get set }
|
|
32
|
+
var minedHeight: BlockHeight? { get set }
|
|
33
|
+
var raw: Data? { get set }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
Hashable extension default implementation
|
|
38
|
+
*/
|
|
39
|
+
public extension TransactionEntity {
|
|
40
|
+
func hash(into hasher: inout Hasher) {
|
|
41
|
+
hasher.combine(id)
|
|
42
|
+
hasher.combine(transactionId)
|
|
43
|
+
hasher.combine(expiryHeight)
|
|
44
|
+
hasher.combine(minedHeight)
|
|
45
|
+
hasher.combine(raw)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
static func == (lhs: Self, rhs: Self) -> Bool {
|
|
49
|
+
guard
|
|
50
|
+
lhs.id == rhs.id,
|
|
51
|
+
lhs.transactionId == rhs.transactionId,
|
|
52
|
+
lhs.created == rhs.created,
|
|
53
|
+
lhs.expiryHeight == rhs.expiryHeight,
|
|
54
|
+
lhs.minedHeight == rhs.minedHeight,
|
|
55
|
+
((lhs.raw != nil && rhs.raw != nil) || (lhs.raw == nil && rhs.raw == nil))
|
|
56
|
+
else { return false }
|
|
57
|
+
|
|
58
|
+
if let lhsRaw = lhs.raw, let rhsRaw = rhs.raw {
|
|
59
|
+
return lhsRaw == rhsRaw
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return true
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
func anchor(network: ZcashNetwork) -> BlockHeight? {
|
|
66
|
+
if let minedHeight = self.minedHeight, minedHeight != -1 {
|
|
67
|
+
return max(minedHeight - ZcashSDK.defaultStaleTolerance, network.constants.saplingActivationHeight)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if let expiryHeight = self.expiryHeight, expiryHeight != -1 {
|
|
71
|
+
return max(expiryHeight - ZcashSDK.expiryOffset - ZcashSDK.defaultStaleTolerance, network.constants.saplingActivationHeight)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return nil
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
Abstract representation of all transaction types
|
|
80
|
+
*/
|
|
81
|
+
public protocol AbstractTransaction {
|
|
82
|
+
/**
|
|
83
|
+
internal id for this transaction
|
|
84
|
+
*/
|
|
85
|
+
var id: Int? { get set }
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
value in zatoshi
|
|
89
|
+
*/
|
|
90
|
+
var value: Int { get set }
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
data containing the memo if any
|
|
94
|
+
*/
|
|
95
|
+
var memo: Data? { get set }
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
Capabilites of a signed transaction
|
|
100
|
+
*/
|
|
101
|
+
public protocol SignedTransactionEntity {
|
|
102
|
+
var raw: Data? { get set }
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
Capabilities of an entity that can be uniquely identified by a raw transaction id
|
|
107
|
+
*/
|
|
108
|
+
public protocol RawIdentifiable {
|
|
109
|
+
var rawTransactionId: Data? { get set }
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
Attributes that a Mined transaction must have
|
|
114
|
+
*/
|
|
115
|
+
public protocol MinedTransactionEntity: AbstractTransaction, RawIdentifiable {
|
|
116
|
+
/**
|
|
117
|
+
height on which this transaction was mined at. Convention is that -1 is retuned when it has not been mined yet
|
|
118
|
+
*/
|
|
119
|
+
var minedHeight: Int { get set }
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
internal note id that is involved on this transaction
|
|
123
|
+
*/
|
|
124
|
+
var noteId: Int { get set }
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
block time in in reference since 1970
|
|
128
|
+
*/
|
|
129
|
+
var blockTimeInSeconds: TimeInterval { get set }
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
internal index for this transaction
|
|
133
|
+
*/
|
|
134
|
+
var transactionIndex: Int { get set }
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
public protocol ConfirmedTransactionEntity: MinedTransactionEntity, SignedTransactionEntity {
|
|
138
|
+
/**
|
|
139
|
+
recipient address if available
|
|
140
|
+
*/
|
|
141
|
+
var toAddress: String? { get set }
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
expiration height for this transaction
|
|
145
|
+
*/
|
|
146
|
+
var expiryHeight: BlockHeight? { get set }
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public extension ConfirmedTransactionEntity {
|
|
150
|
+
var isOutbound: Bool {
|
|
151
|
+
self.toAddress != nil
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
var isInbound: Bool {
|
|
155
|
+
self.toAddress == nil
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
var blockTimeInMilliseconds: Double {
|
|
159
|
+
self.blockTimeInSeconds * 1000
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//
|
|
2
|
+
// UnspentTransactionOutputEntity.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 12/9/20.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
public protocol UnspentTransactionOutputEntity {
|
|
11
|
+
var address: String { get set }
|
|
12
|
+
var txid: Data { get set }
|
|
13
|
+
var index: Int { get set }
|
|
14
|
+
var script: Data { get set }
|
|
15
|
+
var valueZat: Int { get set }
|
|
16
|
+
var height: Int { get set }
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Data+Zcash.swift
|
|
3
|
+
// ZcashLightClientKit
|
|
4
|
+
//
|
|
5
|
+
// Created by Francisco Gindre on 1/10/20.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
public extension Data {
|
|
11
|
+
/**
|
|
12
|
+
Transforms the data info bytes into a Zcash hex transaction id
|
|
13
|
+
*/
|
|
14
|
+
func toHexStringTxId() -> String {
|
|
15
|
+
self.hexEncodedString().toTxIdString()
|
|
16
|
+
}
|
|
17
|
+
}
|