react-native-zcash 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/LICENSE +22 -0
- package/README.md +40 -37
- package/android/build.gradle +7 -5
- package/android/src/main/assets/saplingtree/mainnet/1310000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1320000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1330000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1340000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1350000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1360000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1370000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1380000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1390000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1400000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1410000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1420000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1430000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1440000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1450000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1460000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1470000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1480000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1490000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1500000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1510000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1520000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1530000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1540000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1550000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1560000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1570000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1580000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1590000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1600000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1610000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1620000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1630000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1640000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1650000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1660000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1670000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1680000.json +1 -1
- package/android/src/main/assets/saplingtree/mainnet/1690000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1700000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1710000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1720000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1730000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1740000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1750000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1760000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1770000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1780000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1790000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1800000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1810000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1820000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1830000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1840000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1850000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1860000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1870000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1880000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1890000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1900000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1910000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1920000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1930000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1940000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1950000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1960000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1970000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1980000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/1990000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2000000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2010000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2020000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2030000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2040000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2050000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2060000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2070000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2080000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2090000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2100000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2110000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2120000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2130000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2140000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2150000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2160000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2170000.json +2 -1
- package/android/src/main/assets/saplingtree/mainnet/2180000.json +8 -0
- package/android/src/main/assets/saplingtree/mainnet/2190000.json +8 -0
- package/android/src/main/assets/saplingtree/mainnet/2200000.json +8 -0
- package/android/src/main/assets/saplingtree/mainnet/2210000.json +8 -0
- package/android/src/main/java/app/edge/rnzcash/RNZcashModule.kt +179 -175
- package/android/src/main/java/app/edge/rnzcash/RNZcashPackage.kt +2 -3
- package/ios/RNZcash.m +5 -22
- package/ios/RNZcash.swift +532 -514
- package/ios/ZCashLightClientKit/Block/CompactBlockProcessor.swift +1365 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/ConnectorProvider.swift +12 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/DatabaseStorageError.swift +20 -0
- package/ios/ZCashLightClientKit/Block/DatabaseStorage/SimpleConnectionProvider.swift +39 -0
- package/ios/ZCashLightClientKit/Block/Download/BlockDownloader.swift +295 -0
- package/ios/ZCashLightClientKit/Block/Download/BlockDownloaderService.swift +117 -0
- package/ios/ZCashLightClientKit/Block/Enhance/BlockEnhancer.swift +123 -0
- package/ios/ZCashLightClientKit/Block/FetchUnspentTxOutputs/UTXOFetcher.swift +114 -0
- package/ios/ZCashLightClientKit/Block/FilesystemStorage/FSCompactBlockRepository.swift +419 -0
- package/ios/ZCashLightClientKit/Block/SaplingParameters/SaplingParametersHandler.swift +52 -0
- package/ios/ZCashLightClientKit/Block/Scan/BlockScanner.swift +114 -0
- package/ios/ZCashLightClientKit/Block/Utils/AfterSyncHooksManager.swift +88 -0
- package/ios/ZCashLightClientKit/Block/Utils/InternalSyncProgress.swift +200 -0
- package/ios/ZCashLightClientKit/Block/Validate/BlockValidator.swift +51 -0
- package/ios/ZCashLightClientKit/ClosureSynchronizer.swift +84 -0
- package/ios/ZCashLightClientKit/CombineSynchronizer.swift +76 -0
- package/ios/ZCashLightClientKit/Constants/Checkpoint+Constants.swift +98 -0
- package/ios/ZCashLightClientKit/Constants/Checkpoint+mainnet.swift +19 -0
- package/ios/ZCashLightClientKit/Constants/Checkpoint+testnet.swift +20 -0
- package/ios/ZCashLightClientKit/Constants/ZcashSDK.swift +215 -0
- package/ios/ZCashLightClientKit/DAO/BlockDao.swift +112 -0
- package/ios/ZCashLightClientKit/DAO/PagedTransactionDao.swift +54 -0
- package/ios/ZCashLightClientKit/DAO/TransactionDao.swift +245 -0
- package/ios/ZCashLightClientKit/DAO/UnspentTransactionOutputDao.swift +210 -0
- package/ios/ZCashLightClientKit/Entity/AccountEntity.swift +199 -0
- package/ios/ZCashLightClientKit/Entity/BlockProgress.swift +24 -0
- package/ios/ZCashLightClientKit/Entity/EncodedTransactionEntity.swift +26 -0
- package/ios/ZCashLightClientKit/Entity/SentNoteEntity.swift +48 -0
- package/ios/ZCashLightClientKit/Entity/TransactionEntity.swift +235 -0
- package/ios/ZCashLightClientKit/Entity/UnspentTransactionOutputEntity.swift +18 -0
- package/ios/ZCashLightClientKit/Entity/ZcashCompactBlock.swift +96 -0
- package/ios/ZCashLightClientKit/Error/Sourcery/ZcashError.stencil +40 -0
- package/ios/ZCashLightClientKit/Error/Sourcery/ZcashErrorCode.stencil +15 -0
- package/ios/ZCashLightClientKit/Error/Sourcery/generateErrorCode.sh +34 -0
- package/ios/ZCashLightClientKit/Error/ZcashError.swift +820 -0
- package/ios/ZCashLightClientKit/Error/ZcashErrorCode.swift +306 -0
- package/ios/ZCashLightClientKit/Error/ZcashErrorCodeDefinition.swift +596 -0
- package/ios/ZCashLightClientKit/Extensions/Data+Zcash.swift +17 -0
- package/ios/ZCashLightClientKit/Extensions/Data+internal.swift +35 -0
- package/ios/ZCashLightClientKit/Extensions/Error+ZcashError.swift +18 -0
- package/ios/ZCashLightClientKit/Extensions/HexEncode.swift +41 -0
- package/ios/ZCashLightClientKit/Extensions/NumberFormatter+Zcash.swift +19 -0
- package/ios/ZCashLightClientKit/Extensions/URL+UpdateWithAlias.swift +36 -0
- package/ios/ZCashLightClientKit/Extensions/Undescribable.swift +22 -0
- package/ios/ZCashLightClientKit/Extensions/Zatoshi+SQLite.swift +20 -0
- package/ios/ZCashLightClientKit/Extensions/ZcashRust+Utils.swift +26 -0
- package/ios/ZCashLightClientKit/Extensions/ZcashSDK+extensions.swift +34 -0
- package/ios/ZCashLightClientKit/Initializer.swift +433 -0
- package/ios/ZCashLightClientKit/Metrics/SDKMetrics.swift +270 -0
- package/ios/ZCashLightClientKit/Model/Checkpoint.swift +84 -0
- package/ios/ZCashLightClientKit/Model/Memo.swift +236 -0
- package/ios/ZCashLightClientKit/Model/WalletTypes.swift +281 -0
- package/ios/ZCashLightClientKit/Model/Zatoshi.swift +115 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/LightWalletGRPCService.swift +342 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/Extensions/Protocolbuffer+Extensions.swift +50 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/compact_formats.pb.swift +399 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/compact_formats.proto +66 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/proto/service.proto +185 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.grpc.swift +1123 -0
- package/ios/ZCashLightClientKit/Modules/Service/GRPC/ProtoBuf/service.pb.swift +1208 -0
- package/ios/ZCashLightClientKit/Modules/Service/LightWalletService.swift +195 -0
- package/ios/ZCashLightClientKit/Providers/LatestBlocksDataProvider.swift +69 -0
- package/ios/ZCashLightClientKit/Providers/ResourceProvider.swift +65 -0
- package/ios/ZCashLightClientKit/Repository/BlockRepository.swift +13 -0
- package/ios/ZCashLightClientKit/Repository/CompactBlockRepository.swift +43 -0
- package/ios/ZCashLightClientKit/Repository/NotesRepository.swift +17 -0
- package/ios/ZCashLightClientKit/Repository/PaginatedTransactionRepository.swift +35 -0
- package/ios/ZCashLightClientKit/Repository/TransactionRepository.swift +29 -0
- package/ios/ZCashLightClientKit/Repository/TransactionRepositoryBuilder.swift +24 -0
- package/ios/ZCashLightClientKit/Repository/UnspentTransactionOutputRepository.swift +16 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1000000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1010000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1020000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1030000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1040000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1050000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1060000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1070000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1080000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1090000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1100000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1110000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1120000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1130000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1140000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1150000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1160000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1170000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1180000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1190000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1200000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1210000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1220000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1230000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1240000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1250000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1260000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1270000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1631000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1686871.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1687104.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1690000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1700000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1710000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1720000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1722500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1725000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1727500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1730000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1732500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1735000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1737500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1740000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1742500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1745000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1747500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1750000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1752500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1755000.json +9 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1757500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1760000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1762500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1765000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1767500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1770000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1772500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1775000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1777500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1780000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1782500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1785000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1787500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1790000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1792500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1795000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1797500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1800000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1802500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1805000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1807500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1810000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1812500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1815000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1817500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1820000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1822500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1825000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1827500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1830000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1832500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1835000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1837500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1840000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1842500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1845000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1847500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1850000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1852500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1855000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1857500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1860000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1862500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1865000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1867500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1870000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1872500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1875000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1877500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1880000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1882500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1885000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1887500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1890000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1892500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1895000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1897500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1900000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1902500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1905000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1907500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1910000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1912500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1915000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1917500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1920000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1922500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1925000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1927500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1930000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1932500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1935000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1937500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1940000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1942500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1945000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1947500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1950000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1952500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1955000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1957500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1960000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1962500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1965000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1967500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1970000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1972500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1975000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1977500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1980000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1982500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1985000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1987500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1990000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1992500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1995000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/1997500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2000000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2002500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2005000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2007500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2010000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2012500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2015000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2017500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2020000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2022500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2025000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2027500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2030000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2032500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2035000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2037500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2040000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2042500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2045000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2047500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2050000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2052500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2055000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2057500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2060000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2062500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2065000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2067500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2070000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2072500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2075000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2077500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2080000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2082500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2085000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2087500.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2090000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2100000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2110000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2120000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2130000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2140000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2150000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2160000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2170000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2180000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2190000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2200000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/2210000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/419200.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/663150.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/870000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/880000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/890000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/900000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/910000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/920000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/930000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/940000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/950000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/960000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/970000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/980000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/mainnet/990000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1000000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1010000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1020000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1030000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1040000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1050000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1060000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1070000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1080000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1090000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1100000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1110000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1120000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1130000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1140000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1150000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1160000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1170000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1180000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1190000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1200000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1210000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1220000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1230000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1240000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1250000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1260000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1270000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1842420.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1850000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1860000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1870000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1880000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1890000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1900000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1910000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1920000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1930000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1940000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1950000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1960000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1970000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1980000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/1990000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2000000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2010000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2020000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2030000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2040000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2050000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2060000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2070000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2080000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2090000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2100000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2110000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2120000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2130000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2140000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2150000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2160000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2170000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2180000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2190000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2200000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2210000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2220000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2230000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2240000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2250000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2260000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2270000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2280000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2290000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2300000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2310000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2320000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2330000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/2340000.json +8 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/280000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/290000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/300000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/310000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/320000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/330000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/340000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/350000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/360000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/370000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/380000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/390000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/400000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/410000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/420000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/430000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/440000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/450000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/460000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/470000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/480000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/490000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/500000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/510000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/520000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/530000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/540000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/550000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/560000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/570000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/580000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/590000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/600000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/610000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/620000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/630000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/640000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/650000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/660000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/670000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/680000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/690000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/700000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/710000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/720000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/730000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/740000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/750000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/760000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/770000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/780000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/790000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/800000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/810000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/820000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/830000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/840000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/850000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/860000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/870000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/880000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/890000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/900000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/910000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/920000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/930000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/940000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/950000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/960000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/970000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/980000.json +7 -0
- package/ios/ZCashLightClientKit/Resources/checkpoints/testnet/990000.json +7 -0
- package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackend.swift +218 -0
- package/ios/ZCashLightClientKit/Rust/ZcashKeyDerivationBackendWelding.swift +88 -0
- package/ios/ZCashLightClientKit/Rust/ZcashRustBackend.swift +645 -0
- package/ios/ZCashLightClientKit/Rust/ZcashRustBackendWelding.swift +256 -0
- package/ios/ZCashLightClientKit/Rust/zcashlc.h +1051 -0
- package/ios/ZCashLightClientKit/Synchronizer/ClosureSDKSynchronizer.swift +180 -0
- package/ios/ZCashLightClientKit/Synchronizer/CombineSDKSynchronizer.swift +175 -0
- package/ios/ZCashLightClientKit/Synchronizer/Dependencies.swift +207 -0
- package/ios/ZCashLightClientKit/Synchronizer/SDKSynchronizer.swift +663 -0
- package/ios/ZCashLightClientKit/Synchronizer.swift +504 -0
- package/ios/ZCashLightClientKit/Tool/DerivationTool.swift +207 -0
- package/ios/ZCashLightClientKit/Transaction/TransactionEncoder.swift +66 -0
- package/ios/ZCashLightClientKit/Transaction/WalletTransactionEncoder.swift +165 -0
- package/ios/ZCashLightClientKit/Utils/AsyncToClosureGateway.swift +46 -0
- package/ios/ZCashLightClientKit/Utils/AsyncToCombineGateway.swift +59 -0
- package/ios/ZCashLightClientKit/Utils/Clamped.swift +32 -0
- package/ios/ZCashLightClientKit/Utils/DIContainer.swift +86 -0
- package/ios/ZCashLightClientKit/Utils/GenericActor.swift +18 -0
- package/ios/ZCashLightClientKit/Utils/LoggingProxy.swift +48 -0
- package/ios/ZCashLightClientKit/Utils/OSLogger.swift +109 -0
- package/ios/ZCashLightClientKit/Utils/SaplingParameterDownloader.swift +159 -0
- package/ios/ZCashLightClientKit/Utils/SpecificCombineTypes.swift +16 -0
- package/ios/ZCashLightClientKit/Utils/SyncSessionIDGenerator.swift +32 -0
- package/ios/ZCashLightClientKit/Utils/Task+sleep.swift +14 -0
- package/ios/ZCashLightClientKit/Utils/UsedAliasesChecker.swift +41 -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/rnzcash.rn.js +37 -80
- package/lib/rnzcash.rn.js.map +1 -1
- package/lib/scripts/copyCheckpoints.d.ts +5 -0
- package/lib/scripts/updateSources.d.ts +1 -0
- package/lib/src/react-native.d.ts +5 -10
- package/lib/src/types.d.ts +3 -4
- package/package.json +23 -37
- package/react-native-zcash.podspec +19 -8
- package/src/react-native.ts +15 -41
- package/src/types.ts +3 -4
- 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,1051 @@
|
|
|
1
|
+
#include <stdarg.h>
|
|
2
|
+
#include <stdbool.h>
|
|
3
|
+
#include <stdint.h>
|
|
4
|
+
#include <stdlib.h>
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A struct that contains an account identifier along with a pointer to the binary encoding
|
|
8
|
+
* of an associated key.
|
|
9
|
+
*
|
|
10
|
+
* # Safety
|
|
11
|
+
*
|
|
12
|
+
* - `encoding` must be non-null and must point to an array of `encoding_len` bytes.
|
|
13
|
+
*/
|
|
14
|
+
typedef struct {
|
|
15
|
+
uint32_t account_id;
|
|
16
|
+
uint8_t *encoding;
|
|
17
|
+
uintptr_t encoding_len;
|
|
18
|
+
} FFIBinaryKey;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* A struct that contains an account identifier along with a pointer to the string encoding
|
|
22
|
+
* of an associated key.
|
|
23
|
+
*
|
|
24
|
+
* # Safety
|
|
25
|
+
*
|
|
26
|
+
* - `encoding` must be non-null and must point to a null-terminated UTF-8 string.
|
|
27
|
+
*/
|
|
28
|
+
typedef struct {
|
|
29
|
+
uint32_t account_id;
|
|
30
|
+
char *encoding;
|
|
31
|
+
} FFIEncodedKey;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* A struct that contains a pointer to, and length information for, a heap-allocated
|
|
35
|
+
* slice of [`FFIEncodedKey`] values.
|
|
36
|
+
*
|
|
37
|
+
* # Safety
|
|
38
|
+
*
|
|
39
|
+
* - `ptr` must be non-null and must be valid for reads for `len * mem::size_of::<FFIEncodedKey>()`
|
|
40
|
+
* many bytes, and it must be properly aligned. This means in particular:
|
|
41
|
+
* - The entire memory range pointed to by `ptr` must be contained within a single allocated
|
|
42
|
+
* object. Slices can never span across multiple allocated objects.
|
|
43
|
+
* - `ptr` must be non-null and aligned even for zero-length slices.
|
|
44
|
+
* - `ptr` must point to `len` consecutive properly initialized values of type
|
|
45
|
+
* [`FFIEncodedKey`].
|
|
46
|
+
* - The total size `len * mem::size_of::<FFIEncodedKey>()` of the slice pointed to
|
|
47
|
+
* by `ptr` must be no larger than isize::MAX. See the safety documentation of pointer::offset.
|
|
48
|
+
* - See the safety documentation of [`FFIEncodedKey`]
|
|
49
|
+
*/
|
|
50
|
+
typedef struct {
|
|
51
|
+
FFIEncodedKey *ptr;
|
|
52
|
+
uintptr_t len;
|
|
53
|
+
} FFIEncodedKeys;
|
|
54
|
+
|
|
55
|
+
typedef struct {
|
|
56
|
+
uint32_t height;
|
|
57
|
+
uint8_t *block_hash_ptr;
|
|
58
|
+
uintptr_t block_hash_ptr_len;
|
|
59
|
+
uint32_t block_time;
|
|
60
|
+
uint32_t sapling_outputs_count;
|
|
61
|
+
uint32_t orchard_actions_count;
|
|
62
|
+
} FFIBlockMeta;
|
|
63
|
+
|
|
64
|
+
typedef struct {
|
|
65
|
+
FFIBlockMeta *ptr;
|
|
66
|
+
uintptr_t len;
|
|
67
|
+
} FFIBlocksMeta;
|
|
68
|
+
|
|
69
|
+
int32_t zcashlc_branch_id_for_height(int32_t height, uint32_t network_id);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Clears the record of the last error message.
|
|
73
|
+
*/
|
|
74
|
+
void zcashlc_clear_last_error(void);
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Adds the next available account-level spend authority, given the current set of [ZIP 316]
|
|
78
|
+
* account identifiers known, to the wallet database.
|
|
79
|
+
*
|
|
80
|
+
* Returns the newly created [ZIP 316] account identifier, along with the binary encoding of the
|
|
81
|
+
* [`UnifiedSpendingKey`] for the newly created account. The caller should manage the memory of
|
|
82
|
+
* (and store) the returned spending keys in a secure fashion.
|
|
83
|
+
*
|
|
84
|
+
* If `seed` was imported from a backup and this method is being used to restore a
|
|
85
|
+
* previous wallet state, you should use this method to add all of the desired
|
|
86
|
+
* accounts before scanning the chain from the seed's birthday height.
|
|
87
|
+
*
|
|
88
|
+
* By convention, wallets should only allow a new account to be generated after funds
|
|
89
|
+
* have been received by the currently available account (in order to enable
|
|
90
|
+
* automated account recovery).
|
|
91
|
+
*
|
|
92
|
+
* # Safety
|
|
93
|
+
*
|
|
94
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
95
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
96
|
+
* operating system's preferred representation.
|
|
97
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
98
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
99
|
+
* documentation of pointer::offset.
|
|
100
|
+
* - `seed` must be non-null and valid for reads for `seed_len` bytes, and it must have an
|
|
101
|
+
* alignment of `1`.
|
|
102
|
+
* - The memory referenced by `seed` must not be mutated for the duration of the function call.
|
|
103
|
+
* - The total size `seed_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
104
|
+
* of pointer::offset.
|
|
105
|
+
* - Call [`zcashlc_free_binary_key`] to free the memory associated with the returned pointer when
|
|
106
|
+
* you are finished using it.
|
|
107
|
+
*
|
|
108
|
+
* [ZIP 316]: https://zips.z.cash/zip-0316
|
|
109
|
+
*/
|
|
110
|
+
FFIBinaryKey *zcashlc_create_account(const uint8_t *db_data,
|
|
111
|
+
uintptr_t db_data_len,
|
|
112
|
+
const uint8_t *seed,
|
|
113
|
+
uintptr_t seed_len,
|
|
114
|
+
uint32_t network_id);
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Creates a transaction paying the specified address from the given account.
|
|
118
|
+
*
|
|
119
|
+
* Returns the row index of the newly-created transaction in the `transactions` table
|
|
120
|
+
* within the data database. The caller can read the raw transaction bytes from the `raw`
|
|
121
|
+
* column in order to broadcast the transaction to the network.
|
|
122
|
+
*
|
|
123
|
+
* Do not call this multiple times in parallel, or you will generate transactions that
|
|
124
|
+
* double-spend the same notes.
|
|
125
|
+
*
|
|
126
|
+
* # Safety
|
|
127
|
+
*
|
|
128
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
129
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
130
|
+
* operating system's preferred representation.
|
|
131
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
132
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
133
|
+
* documentation of pointer::offset.
|
|
134
|
+
* - `usk_ptr` must be non-null and must point to an array of `usk_len` bytes containing a unified
|
|
135
|
+
* spending key encoded as returned from the `zcashlc_create_account` or
|
|
136
|
+
* `zcashlc_derive_spending_key` functions.
|
|
137
|
+
* - The memory referenced by `usk_ptr` must not be mutated for the duration of the function call.
|
|
138
|
+
* - The total size `usk_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
139
|
+
* of pointer::offset.
|
|
140
|
+
* - `to` must be non-null and must point to a null-terminated UTF-8 string.
|
|
141
|
+
* - `memo` must either be null (indicating an empty memo or a transparent recipient) or point to a
|
|
142
|
+
* 512-byte array.
|
|
143
|
+
* - `spend_params` must be non-null and valid for reads for `spend_params_len` bytes, and it must have an
|
|
144
|
+
* alignment of `1`. Its contents must be the Sapling spend proving parameters.
|
|
145
|
+
* - The memory referenced by `spend_params` must not be mutated for the duration of the function call.
|
|
146
|
+
* - The total size `spend_params_len` must be no larger than `isize::MAX`. See the safety
|
|
147
|
+
* documentation of pointer::offset.
|
|
148
|
+
* - `output_params` must be non-null and valid for reads for `output_params_len` bytes, and it must have an
|
|
149
|
+
* alignment of `1`. Its contents must be the Sapling output proving parameters.
|
|
150
|
+
* - The memory referenced by `output_params` must not be mutated for the duration of the function call.
|
|
151
|
+
* - The total size `output_params_len` must be no larger than `isize::MAX`. See the safety
|
|
152
|
+
* documentation of pointer::offset.
|
|
153
|
+
*/
|
|
154
|
+
int64_t zcashlc_create_to_address(const uint8_t *db_data,
|
|
155
|
+
uintptr_t db_data_len,
|
|
156
|
+
const uint8_t *usk_ptr,
|
|
157
|
+
uintptr_t usk_len,
|
|
158
|
+
const char *to,
|
|
159
|
+
int64_t value,
|
|
160
|
+
const uint8_t *memo,
|
|
161
|
+
const uint8_t *spend_params,
|
|
162
|
+
uintptr_t spend_params_len,
|
|
163
|
+
const uint8_t *output_params,
|
|
164
|
+
uintptr_t output_params_len,
|
|
165
|
+
uint32_t network_id,
|
|
166
|
+
uint32_t min_confirmations,
|
|
167
|
+
bool use_zip317_fees);
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Decrypts whatever parts of the specified transaction it can and stores them in db_data.
|
|
171
|
+
*
|
|
172
|
+
* # Safety
|
|
173
|
+
*
|
|
174
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
175
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
176
|
+
* operating system's preferred representation.
|
|
177
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
178
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
179
|
+
* documentation of pointer::offset.
|
|
180
|
+
* - `tx` must be non-null and valid for reads for `tx_len` bytes, and it must have an
|
|
181
|
+
* alignment of `1`.
|
|
182
|
+
* - The memory referenced by `tx` must not be mutated for the duration of the function call.
|
|
183
|
+
* - The total size `tx_len` must be no larger than `isize::MAX`. See the safety
|
|
184
|
+
* documentation of pointer::offset.
|
|
185
|
+
*/
|
|
186
|
+
int32_t zcashlc_decrypt_and_store_transaction(const uint8_t *db_data,
|
|
187
|
+
uintptr_t db_data_len,
|
|
188
|
+
const uint8_t *tx,
|
|
189
|
+
uintptr_t tx_len,
|
|
190
|
+
uint32_t _mined_height,
|
|
191
|
+
uint32_t network_id);
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Derives and returns a unified spending key from the given seed for the given account ID.
|
|
195
|
+
*
|
|
196
|
+
* Returns the binary encoding of the spending key. The caller should manage the memory of (and
|
|
197
|
+
* store, if necessary) the returned spending key in a secure fashion.
|
|
198
|
+
*
|
|
199
|
+
* # Safety
|
|
200
|
+
*
|
|
201
|
+
* - `seed` must be non-null and valid for reads for `seed_len` bytes, and it must have an
|
|
202
|
+
* alignment of `1`.
|
|
203
|
+
* - The memory referenced by `seed` must not be mutated for the duration of the function call.
|
|
204
|
+
* - The total size `seed_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
205
|
+
* of pointer::offset.
|
|
206
|
+
* - Call `zcashlc_free_binary_key` to free the memory associated with the returned pointer when
|
|
207
|
+
* you are finished using it.
|
|
208
|
+
*/
|
|
209
|
+
FFIBinaryKey *zcashlc_derive_spending_key(const uint8_t *seed,
|
|
210
|
+
uintptr_t seed_len,
|
|
211
|
+
int32_t account,
|
|
212
|
+
uint32_t network_id);
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Copies the last error message into the provided allocated buffer.
|
|
216
|
+
*
|
|
217
|
+
* # Safety
|
|
218
|
+
*
|
|
219
|
+
* - `buf` must be non-null and valid for reads for `length` bytes, and it must have an alignment
|
|
220
|
+
* of `1`.
|
|
221
|
+
* - The memory referenced by `buf` must not be mutated for the duration of the function call.
|
|
222
|
+
* - The total size `length` must be no larger than `isize::MAX`. See the safety documentation of
|
|
223
|
+
* pointer::offset.
|
|
224
|
+
*/
|
|
225
|
+
int32_t zcashlc_error_message_utf8(char *buf, int32_t length);
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Frees a FFIBinaryKey value
|
|
229
|
+
*
|
|
230
|
+
* # Safety
|
|
231
|
+
*
|
|
232
|
+
* - `ptr` must be non-null and must point to a struct having the layout of [`FFIBinaryKey`].
|
|
233
|
+
* See the safety documentation of [`FFIBinaryKey`].
|
|
234
|
+
*/
|
|
235
|
+
void zcashlc_free_binary_key(FFIBinaryKey *ptr);
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Frees an array of FFIEncodedKeys values as allocated by `zcashlc_derive_unified_viewing_keys_from_seed`
|
|
239
|
+
*
|
|
240
|
+
* # Safety
|
|
241
|
+
*
|
|
242
|
+
* - `ptr` must be non-null and must point to a struct having the layout of [`FFIEncodedKeys`].
|
|
243
|
+
* See the safety documentation of [`FFIEncodedKeys`].
|
|
244
|
+
*/
|
|
245
|
+
void zcashlc_free_keys(FFIEncodedKeys *ptr);
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Frees a list of typecodes previously obtained from the FFI.
|
|
249
|
+
*
|
|
250
|
+
* # Safety
|
|
251
|
+
*
|
|
252
|
+
* - `data` and `len` must have been obtained from
|
|
253
|
+
* [`zcashlc_get_typecodes_for_unified_address_receivers`].
|
|
254
|
+
*/
|
|
255
|
+
void zcashlc_free_typecodes(uint32_t *data, uintptr_t len);
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Returns the network type and address kind for the given address string,
|
|
259
|
+
* if the address is a valid Zcash address.
|
|
260
|
+
*
|
|
261
|
+
* Address kind codes are as follows:
|
|
262
|
+
* * p2pkh: 0
|
|
263
|
+
* * p2sh: 1
|
|
264
|
+
* * sapling: 2
|
|
265
|
+
* * unified: 3
|
|
266
|
+
*
|
|
267
|
+
* # Safety
|
|
268
|
+
*
|
|
269
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
270
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
271
|
+
*/
|
|
272
|
+
bool zcashlc_get_address_metadata(const char *address,
|
|
273
|
+
uint32_t *network_id_ret,
|
|
274
|
+
uint32_t *addr_kind_ret);
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Returns the balance for the specified account, including all unspent notes that we know about.
|
|
278
|
+
*
|
|
279
|
+
* # Safety
|
|
280
|
+
*
|
|
281
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
282
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
283
|
+
* operating system's preferred representation.
|
|
284
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
285
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
286
|
+
* documentation of pointer::offset.
|
|
287
|
+
*/
|
|
288
|
+
int64_t zcashlc_get_balance(const uint8_t *db_data,
|
|
289
|
+
uintptr_t db_data_len,
|
|
290
|
+
int32_t account,
|
|
291
|
+
uint32_t network_id);
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Returns the most-recently-generated unified payment address for the specified account.
|
|
295
|
+
*
|
|
296
|
+
* # Safety
|
|
297
|
+
*
|
|
298
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
299
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
300
|
+
* operating system's preferred representation.
|
|
301
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
302
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
303
|
+
* documentation of pointer::offset.
|
|
304
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
305
|
+
* when done using it.
|
|
306
|
+
*/
|
|
307
|
+
char *zcashlc_get_current_address(const uint8_t *db_data,
|
|
308
|
+
uintptr_t db_data_len,
|
|
309
|
+
int32_t account,
|
|
310
|
+
uint32_t network_id);
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Returns the most recent block height to which it is possible to reset the state
|
|
314
|
+
* of the data database.
|
|
315
|
+
*
|
|
316
|
+
* # Safety
|
|
317
|
+
*
|
|
318
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
319
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
320
|
+
* operating system's preferred representation.
|
|
321
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
322
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
323
|
+
* documentation of pointer::offset.
|
|
324
|
+
*/
|
|
325
|
+
int32_t zcashlc_get_nearest_rewind_height(const uint8_t *db_data,
|
|
326
|
+
uintptr_t db_data_len,
|
|
327
|
+
int32_t height,
|
|
328
|
+
uint32_t network_id);
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Returns a newly-generated unified payment address for the specified account, with the next
|
|
332
|
+
* available diversifier.
|
|
333
|
+
*
|
|
334
|
+
* # Safety
|
|
335
|
+
*
|
|
336
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
337
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
338
|
+
* operating system's preferred representation.
|
|
339
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
340
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
341
|
+
* documentation of pointer::offset.
|
|
342
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
343
|
+
* when done using it.
|
|
344
|
+
*/
|
|
345
|
+
char *zcashlc_get_next_available_address(const uint8_t *db_data,
|
|
346
|
+
uintptr_t db_data_len,
|
|
347
|
+
int32_t account,
|
|
348
|
+
uint32_t network_id);
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Returns the memo for a received note by copying the corresponding bytes to the received
|
|
352
|
+
* pointer in `memo_bytes_ret`.
|
|
353
|
+
*
|
|
354
|
+
* The note is identified by its row index in the `received_notes` table within the data
|
|
355
|
+
* database.
|
|
356
|
+
*
|
|
357
|
+
* # Safety
|
|
358
|
+
*
|
|
359
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
360
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
361
|
+
* operating system's preferred representation.
|
|
362
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
363
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
364
|
+
* documentation of pointer::offset.
|
|
365
|
+
* - `memo_bytes_ret` must be non-null and must point to an allocated 512-byte region of memory.
|
|
366
|
+
*/
|
|
367
|
+
bool zcashlc_get_received_memo(const uint8_t *db_data,
|
|
368
|
+
uintptr_t db_data_len,
|
|
369
|
+
int64_t id_note,
|
|
370
|
+
uint8_t *memo_bytes_ret,
|
|
371
|
+
uint32_t network_id);
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Returns the memo for a received note, if it is known and a valid UTF-8 string.
|
|
375
|
+
*
|
|
376
|
+
* The note is identified by its row index in the `received_notes` table within the data
|
|
377
|
+
* database.
|
|
378
|
+
*
|
|
379
|
+
* # Safety
|
|
380
|
+
*
|
|
381
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
382
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
383
|
+
* operating system's preferred representation.
|
|
384
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
385
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
386
|
+
* documentation of pointer::offset.
|
|
387
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
388
|
+
* when done using it.
|
|
389
|
+
*/
|
|
390
|
+
char *zcashlc_get_received_memo_as_utf8(const uint8_t *db_data,
|
|
391
|
+
uintptr_t db_data_len,
|
|
392
|
+
int64_t id_note,
|
|
393
|
+
uint32_t network_id);
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Returns the Sapling receiver within the given Unified Address, if any.
|
|
397
|
+
*
|
|
398
|
+
* # Safety
|
|
399
|
+
*
|
|
400
|
+
* - `ua` must be non-null and must point to a null-terminated UTF-8 string.
|
|
401
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
402
|
+
* when done using it.
|
|
403
|
+
*/
|
|
404
|
+
char *zcashlc_get_sapling_receiver_for_unified_address(const char *ua);
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Returns the memo for a sent note, by copying the corresponding bytes to the received
|
|
408
|
+
* pointer in `memo_bytes_ret`.
|
|
409
|
+
*
|
|
410
|
+
* The note is identified by its row index in the `sent_notes` table within the data
|
|
411
|
+
* database.
|
|
412
|
+
*
|
|
413
|
+
* # Safety
|
|
414
|
+
*
|
|
415
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
416
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
417
|
+
* operating system's preferred representation.
|
|
418
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
419
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
420
|
+
* documentation of pointer::offset.
|
|
421
|
+
* - `memo_bytes_ret` must be non-null and must point to an allocated 512-byte region of memory.
|
|
422
|
+
*/
|
|
423
|
+
bool zcashlc_get_sent_memo(const uint8_t *db_data,
|
|
424
|
+
uintptr_t db_data_len,
|
|
425
|
+
int64_t id_note,
|
|
426
|
+
uint8_t *memo_bytes_ret,
|
|
427
|
+
uint32_t network_id);
|
|
428
|
+
|
|
429
|
+
/**
|
|
430
|
+
* Returns the memo for a sent note, if it is known and a valid UTF-8 string.
|
|
431
|
+
*
|
|
432
|
+
* The note is identified by its row index in the `sent_notes` table within the data
|
|
433
|
+
* database.
|
|
434
|
+
*
|
|
435
|
+
* # Safety
|
|
436
|
+
*
|
|
437
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
438
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
439
|
+
* operating system's preferred representation.
|
|
440
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
441
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
442
|
+
* documentation of pointer::offset.
|
|
443
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
444
|
+
* when done using it.
|
|
445
|
+
*/
|
|
446
|
+
char *zcashlc_get_sent_memo_as_utf8(const uint8_t *db_data,
|
|
447
|
+
uintptr_t db_data_len,
|
|
448
|
+
int64_t id_note,
|
|
449
|
+
uint32_t network_id);
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Returns the balance for `address`, including all UTXOs that we know about.
|
|
453
|
+
*
|
|
454
|
+
* # Safety
|
|
455
|
+
*
|
|
456
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
457
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
458
|
+
* operating system's preferred representation.
|
|
459
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
460
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
461
|
+
* documentation of pointer::offset.
|
|
462
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
463
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
464
|
+
*/
|
|
465
|
+
int64_t zcashlc_get_total_transparent_balance(const uint8_t *db_data,
|
|
466
|
+
uintptr_t db_data_len,
|
|
467
|
+
const char *address,
|
|
468
|
+
uint32_t network_id);
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Returns the balance for `account`, including all UTXOs that we know about.
|
|
472
|
+
*
|
|
473
|
+
* # Safety
|
|
474
|
+
*
|
|
475
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
476
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
477
|
+
* operating system's preferred representation.
|
|
478
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
479
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
480
|
+
* documentation of pointer::offset.
|
|
481
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
482
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
483
|
+
*/
|
|
484
|
+
int64_t zcashlc_get_total_transparent_balance_for_account(const uint8_t *db_data,
|
|
485
|
+
uintptr_t db_data_len,
|
|
486
|
+
uint32_t network_id,
|
|
487
|
+
int32_t account);
|
|
488
|
+
|
|
489
|
+
/**
|
|
490
|
+
* Returns the transparent receiver within the given Unified Address, if any.
|
|
491
|
+
*
|
|
492
|
+
* # Safety
|
|
493
|
+
*
|
|
494
|
+
* - `ua` must be non-null and must point to a null-terminated UTF-8 string.
|
|
495
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
496
|
+
* when done using it.
|
|
497
|
+
*/
|
|
498
|
+
char *zcashlc_get_transparent_receiver_for_unified_address(const char *ua);
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Extracts the typecodes of the receivers within the given Unified Address.
|
|
502
|
+
*
|
|
503
|
+
* Returns a pointer to a slice of typecodes. `len_ret` is set to the length of the
|
|
504
|
+
* slice.
|
|
505
|
+
*
|
|
506
|
+
* See the following sections of ZIP 316 for details on how to interpret typecodes:
|
|
507
|
+
* - [List of known typecodes](https://zips.z.cash/zip-0316#encoding-of-unified-addresses)
|
|
508
|
+
* - [Adding new types](https://zips.z.cash/zip-0316#adding-new-types)
|
|
509
|
+
* - [Metadata Items](https://zips.z.cash/zip-0316#metadata-items)
|
|
510
|
+
*
|
|
511
|
+
* # Safety
|
|
512
|
+
*
|
|
513
|
+
* - `ua` must be non-null and must point to a null-terminated UTF-8 string containing an
|
|
514
|
+
* encoded Unified Address.
|
|
515
|
+
* - Call [`zcashlc_free_typecodes`] to free the memory associated with the returned
|
|
516
|
+
* pointer when done using it.
|
|
517
|
+
*/
|
|
518
|
+
uint32_t *zcashlc_get_typecodes_for_unified_address_receivers(const char *ua, uintptr_t *len_ret);
|
|
519
|
+
|
|
520
|
+
/**
|
|
521
|
+
* Returns the verified balance for the account, which ignores notes that have been
|
|
522
|
+
* received too recently and are not yet deemed spendable according to `min_confirmations`.
|
|
523
|
+
*
|
|
524
|
+
* # Safety
|
|
525
|
+
*
|
|
526
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
527
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
528
|
+
* operating system's preferred representation.
|
|
529
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
530
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
531
|
+
* documentation of pointer::offset.
|
|
532
|
+
*/
|
|
533
|
+
int64_t zcashlc_get_verified_balance(const uint8_t *db_data,
|
|
534
|
+
uintptr_t db_data_len,
|
|
535
|
+
int32_t account,
|
|
536
|
+
uint32_t network_id,
|
|
537
|
+
uint32_t min_confirmations);
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Returns the verified transparent balance for `address`, which ignores utxos that have been
|
|
541
|
+
* received too recently and are not yet deemed spendable according to `min_confirmations`.
|
|
542
|
+
*
|
|
543
|
+
* # Safety
|
|
544
|
+
*
|
|
545
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
546
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
547
|
+
* operating system's preferred representation.
|
|
548
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
549
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
550
|
+
* documentation of pointer::offset.
|
|
551
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
552
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
553
|
+
*/
|
|
554
|
+
int64_t zcashlc_get_verified_transparent_balance(const uint8_t *db_data,
|
|
555
|
+
uintptr_t db_data_len,
|
|
556
|
+
const char *address,
|
|
557
|
+
uint32_t network_id,
|
|
558
|
+
uint32_t min_confirmations);
|
|
559
|
+
|
|
560
|
+
/**
|
|
561
|
+
* Returns the verified transparent balance for `account`, which ignores utxos that have been
|
|
562
|
+
* received too recently and are not yet deemed spendable according to `min_confirmations`.
|
|
563
|
+
*
|
|
564
|
+
* # Safety
|
|
565
|
+
*
|
|
566
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
567
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
568
|
+
* operating system's preferred representation.
|
|
569
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
570
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
571
|
+
* documentation of pointer::offset.
|
|
572
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
573
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
574
|
+
*/
|
|
575
|
+
int64_t zcashlc_get_verified_transparent_balance_for_account(const uint8_t *db_data,
|
|
576
|
+
uintptr_t db_data_len,
|
|
577
|
+
uint32_t network_id,
|
|
578
|
+
int32_t account,
|
|
579
|
+
uint32_t min_confirmations);
|
|
580
|
+
|
|
581
|
+
/**
|
|
582
|
+
* Initialises the data database with the given set of unified full viewing keys. This
|
|
583
|
+
* should only be used in special cases for implementing wallet recovery; prefer
|
|
584
|
+
* `zcashlc_create_account` for normal account creation purposes.
|
|
585
|
+
*
|
|
586
|
+
* # Safety
|
|
587
|
+
*
|
|
588
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
589
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
590
|
+
* operating system's preferred representation.
|
|
591
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
592
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
593
|
+
* documentation of pointer::offset.
|
|
594
|
+
* - `ufvks` must be non-null and valid for reads for `ufvks_len * sizeof(FFIEncodedKey)` bytes.
|
|
595
|
+
* It must point to an array of `FFIEncodedKey` values.
|
|
596
|
+
* - The memory referenced by `ufvks` must not be mutated for the duration of the function call.
|
|
597
|
+
* - The total size `ufvks_len` must be no larger than `isize::MAX`. See the safety
|
|
598
|
+
* documentation of pointer::offset.
|
|
599
|
+
*/
|
|
600
|
+
bool zcashlc_init_accounts_table_with_keys(const uint8_t *db_data,
|
|
601
|
+
uintptr_t db_data_len,
|
|
602
|
+
FFIEncodedKey *ufvks_ptr,
|
|
603
|
+
uintptr_t ufvks_len,
|
|
604
|
+
uint32_t network_id);
|
|
605
|
+
|
|
606
|
+
/**
|
|
607
|
+
* # Safety
|
|
608
|
+
* Initializes the `FsBlockDb` sqlite database. Does nothing if already created
|
|
609
|
+
*
|
|
610
|
+
* Returns true when successful, false otherwise. When false is returned caller
|
|
611
|
+
* should check for errors.
|
|
612
|
+
* - `fs_block_db_root` must be non-null and valid for reads for `fs_block_db_root_len` bytes, and it must have an
|
|
613
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
614
|
+
* operating system's preferred representation.
|
|
615
|
+
* - The memory referenced by `fs_block_db_root` must not be mutated for the duration of the function call.
|
|
616
|
+
* - The total size `fs_block_db_root_len` must be no larger than `isize::MAX`. See the safety
|
|
617
|
+
* documentation of pointer::offset.
|
|
618
|
+
*/
|
|
619
|
+
bool zcashlc_init_block_metadata_db(const uint8_t *fs_block_db_root,
|
|
620
|
+
uintptr_t fs_block_db_root_len);
|
|
621
|
+
|
|
622
|
+
/**
|
|
623
|
+
* Initialises the data database with the given block metadata.
|
|
624
|
+
*
|
|
625
|
+
* This enables a newly-created database to be immediately-usable, without needing to
|
|
626
|
+
* synchronise historic blocks.
|
|
627
|
+
*
|
|
628
|
+
* The string represented by `sapling_tree_hex` should contain the encoded byte representation
|
|
629
|
+
* of a Sapling commitment tree.
|
|
630
|
+
*
|
|
631
|
+
* # Safety
|
|
632
|
+
*
|
|
633
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
634
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
635
|
+
* operating system's preferred representation.
|
|
636
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
637
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
638
|
+
* documentation of pointer::offset.
|
|
639
|
+
* - `hash_hex` must be non-null and must point to a null-terminated UTF-8 string.
|
|
640
|
+
* - The memory referenced by `hash_hex` must not be mutated for the duration of the function call.
|
|
641
|
+
* - `sapling_tree_hex` must be non-null and must point to a null-terminated UTF-8 string.
|
|
642
|
+
* - The memory referenced by `sapling_tree_hex` must not be mutated for the duration of the
|
|
643
|
+
* function call.
|
|
644
|
+
*/
|
|
645
|
+
int32_t zcashlc_init_blocks_table(const uint8_t *db_data,
|
|
646
|
+
uintptr_t db_data_len,
|
|
647
|
+
int32_t height,
|
|
648
|
+
const char *hash_hex,
|
|
649
|
+
uint32_t time,
|
|
650
|
+
const char *sapling_tree_hex,
|
|
651
|
+
uint32_t network_id);
|
|
652
|
+
|
|
653
|
+
/**
|
|
654
|
+
* Sets up the internal structure of the data database. The value for `seed` may be provided as a
|
|
655
|
+
* null pointer if the caller wishes to attempt migrations without providing the wallet's seed
|
|
656
|
+
* value.
|
|
657
|
+
*
|
|
658
|
+
* Returns 0 if successful, 1 if the seed must be provided in order to execute the requested
|
|
659
|
+
* migrations, or -1 otherwise.
|
|
660
|
+
*
|
|
661
|
+
* # Safety
|
|
662
|
+
*
|
|
663
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
664
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
665
|
+
* operating system's preferred representation.
|
|
666
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
667
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
668
|
+
* documentation of pointer::offset.
|
|
669
|
+
* - `seed` must be non-null and valid for reads for `seed_len` bytes, and it must have an
|
|
670
|
+
* alignment of `1`.
|
|
671
|
+
* - The memory referenced by `seed` must not be mutated for the duration of the function call.
|
|
672
|
+
* - The total size `seed_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
673
|
+
* of pointer::offset.
|
|
674
|
+
*/
|
|
675
|
+
int32_t zcashlc_init_data_database(const uint8_t *db_data,
|
|
676
|
+
uintptr_t db_data_len,
|
|
677
|
+
const uint8_t *seed,
|
|
678
|
+
uintptr_t seed_len,
|
|
679
|
+
uint32_t network_id);
|
|
680
|
+
|
|
681
|
+
/**
|
|
682
|
+
* Returns true when the provided key decodes to a valid Sapling extended spending key for the
|
|
683
|
+
* specified network, false in any other case.
|
|
684
|
+
*
|
|
685
|
+
* # Safety
|
|
686
|
+
*
|
|
687
|
+
* - `extsk` must be non-null and must point to a null-terminated UTF-8 string.
|
|
688
|
+
* - The memory referenced by `extsk` must not be mutated for the duration of the function call.
|
|
689
|
+
*/
|
|
690
|
+
bool zcashlc_is_valid_sapling_extended_spending_key(const char *extsk, uint32_t network_id);
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Returns true when the provided address decodes to a valid Sapling payment address for the
|
|
694
|
+
* specified network, false in any other case.
|
|
695
|
+
*
|
|
696
|
+
* # Safety
|
|
697
|
+
*
|
|
698
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
699
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
700
|
+
*/
|
|
701
|
+
bool zcashlc_is_valid_shielded_address(const char *address, uint32_t network_id);
|
|
702
|
+
|
|
703
|
+
/**
|
|
704
|
+
* Returns true when the address is a valid transparent payment address for the specified network,
|
|
705
|
+
* false in any other case.
|
|
706
|
+
*
|
|
707
|
+
* # Safety
|
|
708
|
+
*
|
|
709
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
710
|
+
* - The memory referenced by `address` must not be mutated for the duration of the function call.
|
|
711
|
+
*/
|
|
712
|
+
bool zcashlc_is_valid_transparent_address(const char *address, uint32_t network_id);
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* Returns true when the provided key decodes to a valid unified address for the
|
|
716
|
+
* specified network, false in any other case.
|
|
717
|
+
*
|
|
718
|
+
* # Safety
|
|
719
|
+
*
|
|
720
|
+
* - `address` must be non-null and must point to a null-terminated UTF-8 string.
|
|
721
|
+
* - The memory referenced by `address` must not be mutated for the duration of the
|
|
722
|
+
* function call.
|
|
723
|
+
*/
|
|
724
|
+
bool zcashlc_is_valid_unified_address(const char *address, uint32_t network_id);
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Returns true when the provided key decodes to a valid unified full viewing key for the
|
|
728
|
+
* specified network, false in any other case.
|
|
729
|
+
*
|
|
730
|
+
* # Safety
|
|
731
|
+
*
|
|
732
|
+
* - `ufvk` must be non-null and must point to a null-terminated UTF-8 string.
|
|
733
|
+
* - The memory referenced by `ufvk` must not be mutated for the duration of the
|
|
734
|
+
* function call.
|
|
735
|
+
*/
|
|
736
|
+
bool zcashlc_is_valid_unified_full_viewing_key(const char *ufvk, uint32_t network_id);
|
|
737
|
+
|
|
738
|
+
/**
|
|
739
|
+
* Returns true when the provided key decodes to a valid Sapling extended full viewing key for the
|
|
740
|
+
* specified network, false in any other case.
|
|
741
|
+
*
|
|
742
|
+
* # Safety
|
|
743
|
+
*
|
|
744
|
+
* - `key` must be non-null and must point to a null-terminated UTF-8 string.
|
|
745
|
+
* - The memory referenced by `key` must not be mutated for the duration of the function call.
|
|
746
|
+
*/
|
|
747
|
+
bool zcashlc_is_valid_viewing_key(const char *key, uint32_t network_id);
|
|
748
|
+
|
|
749
|
+
/**
|
|
750
|
+
* Returns the length of the last error message to be logged.
|
|
751
|
+
*/
|
|
752
|
+
int32_t zcashlc_last_error_length(void);
|
|
753
|
+
|
|
754
|
+
/**
|
|
755
|
+
* Get the latest cached block height in the filesystem block cache
|
|
756
|
+
*
|
|
757
|
+
* Returns a positive blockheight or -1 if empty or an error occurred.
|
|
758
|
+
*
|
|
759
|
+
* # Safety
|
|
760
|
+
*
|
|
761
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
762
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
763
|
+
* operating system's preferred representation.
|
|
764
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
765
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
766
|
+
* documentation of pointer::offset.
|
|
767
|
+
* - `tx` must be non-null and valid for reads for `tx_len` bytes, and it must have an
|
|
768
|
+
* alignment of `1`.
|
|
769
|
+
* - The memory referenced by `tx` must not be mutated for the duration of the function call.
|
|
770
|
+
* - The total size `tx_len` must be no larger than `isize::MAX`. See the safety
|
|
771
|
+
* documentation of pointer::offset.
|
|
772
|
+
*/
|
|
773
|
+
int32_t zcashlc_latest_cached_block_height(const uint8_t *fs_block_db_root,
|
|
774
|
+
uintptr_t fs_block_db_root_len);
|
|
775
|
+
|
|
776
|
+
/**
|
|
777
|
+
* Returns a list of the transparent receivers for the diversified unified addresses that have
|
|
778
|
+
* been allocated for the provided account.
|
|
779
|
+
*
|
|
780
|
+
* # Safety
|
|
781
|
+
*
|
|
782
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
783
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
784
|
+
* operating system's preferred representation.
|
|
785
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
786
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
787
|
+
* documentation of pointer::offset.
|
|
788
|
+
* - Call [`zcashlc_free_keys`] to free the memory associated with the returned pointer
|
|
789
|
+
* when done using it.
|
|
790
|
+
*/
|
|
791
|
+
FFIEncodedKeys *zcashlc_list_transparent_receivers(const uint8_t *db_data,
|
|
792
|
+
uintptr_t db_data_len,
|
|
793
|
+
int32_t account_id,
|
|
794
|
+
uint32_t network_id);
|
|
795
|
+
|
|
796
|
+
/**
|
|
797
|
+
* Inserts a UTXO into the wallet database.
|
|
798
|
+
*
|
|
799
|
+
* # Safety
|
|
800
|
+
*
|
|
801
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
802
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
803
|
+
* operating system's preferred representation.
|
|
804
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
805
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
806
|
+
* documentation of pointer::offset.
|
|
807
|
+
* - `txid_bytes` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
808
|
+
* alignment of `1`.
|
|
809
|
+
* - The memory referenced by `txid_bytes_len` must not be mutated for the duration of the function call.
|
|
810
|
+
* - The total size `txid_bytes_len` must be no larger than `isize::MAX`. See the safety
|
|
811
|
+
* documentation of pointer::offset.
|
|
812
|
+
* - `script_bytes` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
813
|
+
* alignment of `1`.
|
|
814
|
+
* - The memory referenced by `script_bytes_len` must not be mutated for the duration of the function call.
|
|
815
|
+
* - The total size `script_bytes_len` must be no larger than `isize::MAX`. See the safety
|
|
816
|
+
* documentation of pointer::offset.
|
|
817
|
+
*/
|
|
818
|
+
bool zcashlc_put_utxo(const uint8_t *db_data,
|
|
819
|
+
uintptr_t db_data_len,
|
|
820
|
+
const uint8_t *txid_bytes,
|
|
821
|
+
uintptr_t txid_bytes_len,
|
|
822
|
+
int32_t index,
|
|
823
|
+
const uint8_t *script_bytes,
|
|
824
|
+
uintptr_t script_bytes_len,
|
|
825
|
+
int64_t value,
|
|
826
|
+
int32_t height,
|
|
827
|
+
uint32_t network_id);
|
|
828
|
+
|
|
829
|
+
/**
|
|
830
|
+
* Rewinds the data database to the given height.
|
|
831
|
+
*
|
|
832
|
+
* If the requested height is greater than or equal to the height of the last scanned
|
|
833
|
+
* block, this function does nothing.
|
|
834
|
+
*
|
|
835
|
+
* # Safety
|
|
836
|
+
*
|
|
837
|
+
* - `fs_block_db_root` must be non-null and valid for reads for `fs_block_db_root_len` bytes, and it must have an
|
|
838
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
839
|
+
* operating system's preferred representation.
|
|
840
|
+
* - The memory referenced by `fs_block_db_root` must not be mutated for the duration of the function call.
|
|
841
|
+
* - The total size `fs_block_db_root_len` must be no larger than `isize::MAX`. See the safety
|
|
842
|
+
* documentation of pointer::offset.
|
|
843
|
+
*/
|
|
844
|
+
bool zcashlc_rewind_fs_block_cache_to_height(const uint8_t *fs_block_db_root,
|
|
845
|
+
uintptr_t fs_block_db_root_len,
|
|
846
|
+
int32_t height);
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* Rewinds the data database to the given height.
|
|
850
|
+
*
|
|
851
|
+
* If the requested height is greater than or equal to the height of the last scanned
|
|
852
|
+
* block, this function does nothing.
|
|
853
|
+
*
|
|
854
|
+
* # Safety
|
|
855
|
+
*
|
|
856
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
857
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
858
|
+
* operating system's preferred representation.
|
|
859
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
860
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
861
|
+
* documentation of pointer::offset.
|
|
862
|
+
*/
|
|
863
|
+
bool zcashlc_rewind_to_height(const uint8_t *db_data,
|
|
864
|
+
uintptr_t db_data_len,
|
|
865
|
+
int32_t height,
|
|
866
|
+
uint32_t network_id);
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* Scans new blocks added to the cache for any transactions received by the tracked
|
|
870
|
+
* accounts.
|
|
871
|
+
*
|
|
872
|
+
* This function pays attention only to cached blocks with heights greater than the
|
|
873
|
+
* highest scanned block in `db_data`. Cached blocks with lower heights are not verified
|
|
874
|
+
* against previously-scanned blocks. In particular, this function **assumes** that the
|
|
875
|
+
* caller is handling rollbacks.
|
|
876
|
+
*
|
|
877
|
+
* For brand-new light client databases, this function starts scanning from the Sapling
|
|
878
|
+
* activation height. This height can be fast-forwarded to a more recent block by calling
|
|
879
|
+
* [`zcashlc_init_blocks_table`] before this function.
|
|
880
|
+
*
|
|
881
|
+
* Scanned blocks are required to be height-sequential. If a block is missing from the
|
|
882
|
+
* cache, an error will be signalled.
|
|
883
|
+
*
|
|
884
|
+
* # Safety
|
|
885
|
+
*
|
|
886
|
+
* - `fs_block_db_root` must be non-null and valid for reads for `fs_block_db_root_len` bytes, and it must have an
|
|
887
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
888
|
+
* operating system's preferred representation.
|
|
889
|
+
* - The memory referenced by `fs_block_db_root` must not be mutated for the duration of the function call.
|
|
890
|
+
* - The total size `fs_block_db_root_len` must be no larger than `isize::MAX`. See the safety
|
|
891
|
+
* documentation of pointer::offset.
|
|
892
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
893
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
894
|
+
* operating system's preferred representation.
|
|
895
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
896
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
897
|
+
* documentation of pointer::offset.
|
|
898
|
+
*/
|
|
899
|
+
int32_t zcashlc_scan_blocks(const uint8_t *fs_block_cache_root,
|
|
900
|
+
uintptr_t fs_block_cache_root_len,
|
|
901
|
+
const uint8_t *db_data,
|
|
902
|
+
uintptr_t db_data_len,
|
|
903
|
+
uint32_t scan_limit,
|
|
904
|
+
uint32_t network_id);
|
|
905
|
+
|
|
906
|
+
/**
|
|
907
|
+
* - `seed` must be non-null and valid for reads for `seed_len` bytes, and it must have an
|
|
908
|
+
* alignment of `1`.
|
|
909
|
+
* - The memory referenced by `seed` must not be mutated for the duration of the function call.
|
|
910
|
+
* - The total size `seed_len` must be at least 32 no larger than `252`. See the safety documentation
|
|
911
|
+
* of pointer::offset.
|
|
912
|
+
*/
|
|
913
|
+
bool zcashlc_seed_fingerprint(const uint8_t *seed,
|
|
914
|
+
uintptr_t seed_len,
|
|
915
|
+
uint8_t *signature_bytes_ret);
|
|
916
|
+
|
|
917
|
+
/**
|
|
918
|
+
* Shield transparent UTXOs by sending them to an address associated with the specified Sapling
|
|
919
|
+
* spending key.
|
|
920
|
+
*
|
|
921
|
+
* # Safety
|
|
922
|
+
*
|
|
923
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
924
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
925
|
+
* operating system's preferred representation.
|
|
926
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
927
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
928
|
+
* documentation of pointer::offset.
|
|
929
|
+
* - `usk_ptr` must be non-null and must point to an array of `usk_len` bytes containing a unified
|
|
930
|
+
* spending key encoded as returned from the `zcashlc_create_account` or
|
|
931
|
+
* `zcashlc_derive_spending_key` functions.
|
|
932
|
+
* - The memory referenced by `usk_ptr` must not be mutated for the duration of the function call.
|
|
933
|
+
* - The total size `usk_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
934
|
+
* - `memo` must either be null (indicating an empty memo) or point to a 512-byte array.
|
|
935
|
+
* - `shielding_threshold` a non-negative shielding threshold amount in zatoshi
|
|
936
|
+
* - `spend_params` must be non-null and valid for reads for `spend_params_len` bytes, and it must have an
|
|
937
|
+
* alignment of `1`. Its contents must be the Sapling spend proving parameters.
|
|
938
|
+
* - The memory referenced by `spend_params` must not be mutated for the duration of the function call.
|
|
939
|
+
* - The total size `spend_params_len` must be no larger than `isize::MAX`. See the safety
|
|
940
|
+
* documentation of pointer::offset.
|
|
941
|
+
* - `output_params` must be non-null and valid for reads for `output_params_len` bytes, and it must have an
|
|
942
|
+
* alignment of `1`. Its contents must be the Sapling output proving parameters.
|
|
943
|
+
* - The memory referenced by `output_params` must not be mutated for the duration of the function call.
|
|
944
|
+
* - The total size `output_params_len` must be no larger than `isize::MAX`. See the safety
|
|
945
|
+
* documentation of pointer::offset.
|
|
946
|
+
*/
|
|
947
|
+
int64_t zcashlc_shield_funds(const uint8_t *db_data,
|
|
948
|
+
uintptr_t db_data_len,
|
|
949
|
+
const uint8_t *usk_ptr,
|
|
950
|
+
uintptr_t usk_len,
|
|
951
|
+
const uint8_t *memo,
|
|
952
|
+
uint64_t shielding_threshold,
|
|
953
|
+
const uint8_t *spend_params,
|
|
954
|
+
uintptr_t spend_params_len,
|
|
955
|
+
const uint8_t *output_params,
|
|
956
|
+
uintptr_t output_params_len,
|
|
957
|
+
uint32_t network_id,
|
|
958
|
+
uint32_t min_confirmations,
|
|
959
|
+
bool use_zip317_fees);
|
|
960
|
+
|
|
961
|
+
/**
|
|
962
|
+
* Obtains the unified full viewing key for the given binary-encoded unified spending key
|
|
963
|
+
* and returns the resulting encoded UFVK string. `usk_ptr` should point to an array of `usk_len`
|
|
964
|
+
* bytes containing a unified spending key encoded as returned from the `zcashlc_create_account`
|
|
965
|
+
* or `zcashlc_derive_spending_key` functions.
|
|
966
|
+
*
|
|
967
|
+
* # Safety
|
|
968
|
+
*
|
|
969
|
+
* - `usk_ptr` must be non-null and must point to an array of `usk_len` bytes.
|
|
970
|
+
* - The memory referenced by `usk_ptr` must not be mutated for the duration of the function call.
|
|
971
|
+
* - The total size `usk_len` must be no larger than `isize::MAX`. See the safety documentation
|
|
972
|
+
* of pointer::offset.
|
|
973
|
+
* - Call [`zcashlc_string_free`] to free the memory associated with the returned pointer
|
|
974
|
+
* when you are done using it.
|
|
975
|
+
*/
|
|
976
|
+
char *zcashlc_spending_key_to_full_viewing_key(const uint8_t *usk_ptr,
|
|
977
|
+
uintptr_t usk_len,
|
|
978
|
+
uint32_t network_id);
|
|
979
|
+
|
|
980
|
+
/**
|
|
981
|
+
* Frees strings returned by other zcashlc functions.
|
|
982
|
+
*
|
|
983
|
+
* # Safety
|
|
984
|
+
*
|
|
985
|
+
* - `s` should be a non-null pointer returned as a string by another zcashlc function.
|
|
986
|
+
*/
|
|
987
|
+
void zcashlc_string_free(char *s);
|
|
988
|
+
|
|
989
|
+
/**
|
|
990
|
+
* Checks that the scanned blocks in the data database, when combined with the recent
|
|
991
|
+
* `CompactBlock`s in the block cache, form a valid chain.
|
|
992
|
+
*
|
|
993
|
+
* This function is built on the core assumption that the information provided in the
|
|
994
|
+
* block cache is more likely to be accurate than the previously-scanned information.
|
|
995
|
+
* This follows from the design (and trust) assumption that the `lightwalletd` server
|
|
996
|
+
* provides accurate block information as of the time it was requested.
|
|
997
|
+
*
|
|
998
|
+
* Returns:
|
|
999
|
+
* - `-1` if the combined chain is valid.
|
|
1000
|
+
* - `upper_bound` if the combined chain is invalid.
|
|
1001
|
+
* `upper_bound` is the height of the highest invalid block (on the assumption that the
|
|
1002
|
+
* highest block in the block cache is correct).
|
|
1003
|
+
* - `0` if there was an error during validation unrelated to chain validity.
|
|
1004
|
+
*
|
|
1005
|
+
* This function does not mutate either of the databases.
|
|
1006
|
+
*
|
|
1007
|
+
* # Safety
|
|
1008
|
+
*
|
|
1009
|
+
* - `fs_block_db_root` must be non-null and valid for reads for `fs_block_db_root_len` bytes, and it must have an
|
|
1010
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
1011
|
+
* operating system's preferred representation.
|
|
1012
|
+
* - The memory referenced by `fs_block_db_root` must not be mutated for the duration of the function call.
|
|
1013
|
+
* - The total size `fs_block_db_root_len` must be no larger than `isize::MAX`. See the safety
|
|
1014
|
+
* documentation of pointer::offset.
|
|
1015
|
+
* - `db_data` must be non-null and valid for reads for `db_data_len` bytes, and it must have an
|
|
1016
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
1017
|
+
* operating system's preferred representation.
|
|
1018
|
+
* - The memory referenced by `db_data` must not be mutated for the duration of the function call.
|
|
1019
|
+
* - The total size `db_data_len` must be no larger than `isize::MAX`. See the safety
|
|
1020
|
+
* documentation of pointer::offset.
|
|
1021
|
+
*/
|
|
1022
|
+
int32_t zcashlc_validate_combined_chain(const uint8_t *fs_block_db_root,
|
|
1023
|
+
uintptr_t fs_block_db_root_len,
|
|
1024
|
+
const uint8_t *db_data,
|
|
1025
|
+
uintptr_t db_data_len,
|
|
1026
|
+
uint32_t validate_limit,
|
|
1027
|
+
uint32_t network_id);
|
|
1028
|
+
|
|
1029
|
+
/**
|
|
1030
|
+
* Writes the blocks provided in `blocks_meta` into the `BlockMeta` database
|
|
1031
|
+
*
|
|
1032
|
+
* Returns true if the `blocks_meta` could be stored into the `FsBlockDb`. False
|
|
1033
|
+
* otherwise.
|
|
1034
|
+
*
|
|
1035
|
+
* When false is returned caller should check for errors.
|
|
1036
|
+
*
|
|
1037
|
+
* # Safety
|
|
1038
|
+
*
|
|
1039
|
+
* - `fs_block_db_root` must be non-null and valid for reads for `fs_block_db_root_len` bytes, and it must have an
|
|
1040
|
+
* alignment of `1`. Its contents must be a string representing a valid system path in the
|
|
1041
|
+
* operating system's preferred representation.
|
|
1042
|
+
* - The memory referenced by `fs_block_db_root` must not be mutated for the duration of the function call.
|
|
1043
|
+
* - The total size `fs_block_db_root_len` must be no larger than `isize::MAX`. See the safety
|
|
1044
|
+
* documentation of pointer::offset.
|
|
1045
|
+
* - Block metadata represented in `blocks_meta` must be non-null. Caller must guarantee that the
|
|
1046
|
+
* memory reference by this pointer is not freed up, dereferenced or invalidated while this function
|
|
1047
|
+
* is invoked.
|
|
1048
|
+
*/
|
|
1049
|
+
bool zcashlc_write_block_metadata(const uint8_t *fs_block_db_root,
|
|
1050
|
+
uintptr_t fs_block_db_root_len,
|
|
1051
|
+
FFIBlocksMeta *blocks_meta);
|