Remove dependecy on rust sources

This commit is contained in:
Daniel Haight 2022-02-28 17:03:20 +00:00
parent 01bf30b081
commit 86d1257ab5
159 changed files with 529 additions and 5422 deletions

1
.gitignore vendored
View File

@ -46,6 +46,7 @@ playground.xcworkspace
# Swift Package Manager
.build/
.swiftpm/
# Carthage
Carthage/Checkouts

View File

@ -1 +0,0 @@
{"rustc_fingerprint":9702058127967770953,"outputs":{"7418947162089833526":["___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/pacu/.rustup/toolchains/stable-x86_64-apple-darwin\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_feature=\"ssse3\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n",""],"1164083562126845933":["rustc 1.38.0 (625451e37 2019-09-23)\nbinary: rustc\ncommit-hash: 625451e376bb2e5283fc4741caa0a3e8a2ca4d54\ncommit-date: 2019-09-23\nhost: x86_64-apple-darwin\nrelease: 1.38.0\nLLVM version: 9.0\n",""],"1138116330425514636":["___\n",""],"4476964694761187371":["___\nlib___.rlib\nlib___.dylib\nlib___.dylib\nlib___.a\nlib___.dylib\n/Users/pacu/.rustup/toolchains/stable-x86_64-apple-darwin\ndebug_assertions\nproc_macro\ntarget_arch=\"x86_64\"\ntarget_endian=\"little\"\ntarget_env=\"\"\ntarget_family=\"unix\"\ntarget_feature=\"fxsr\"\ntarget_feature=\"sse\"\ntarget_feature=\"sse2\"\ntarget_feature=\"sse3\"\ntarget_feature=\"ssse3\"\ntarget_os=\"macos\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"apple\"\nunix\n",""]},"successes":{}}

1659
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,56 +0,0 @@
[package]
name = "libzcashlc"
version = "0.0.8"
authors = ["Jack Grigg <jack@z.cash>",
"Francisco Gindre <francisco@z.cash>",
]
edition = "2018"
build = "rust/build.rs"
[dependencies]
failure = "0.1"
ffi_helpers = "0.2"
hex = "0.4"
zcash_client_backend = "0.5"
zcash_client_sqlite = "0.3"
zcash_primitives = "0.5"
zcash_proofs = "0.5"
#### Temporary additions: ####################################
#bitvec = "0.22"
base58 = "0.1.0"
#sha2 = "0.9"
#bs58 = { version = "0.3", features = ["check"] }
#hdwallet = "0.3.0"
#ripemd160 = "0.9"
hdwallet = { git = "https://github.com/nuttycom/hdwallet", rev = "72f1f7a56c114eed484cefd6d402b7ef28158712"}
secp256k1 = "0.19"
time = "0.2"
num-bigint = "0.3.3"
##############################################################
#[dependencies.zcash_proofs]
#version = "0.5"
#default-features = false
#features = ["local-prover"]
[build-dependencies]
cbindgen = "0.14"
[lib]
name = "zcashlc"
path = "rust/src/lib.rs"
crate-type = ["staticlib"]
[profile.release]
lto = true
[patch.crates-io]
zcash_client_backend = {git = "https://github.com/zcash/librustzcash", branch = "autoshielding-poc-sdk-dnm"}
zcash_client_sqlite = {git = "https://github.com/zcash/librustzcash", branch = "autoshielding-poc-sdk-dnm"}
zcash_primitives = {git = "https://github.com/zcash/librustzcash", branch = "autoshielding-poc-sdk-dnm"}
zcash_proofs = {git = "https://github.com/zcash/librustzcash", branch = "autoshielding-poc-sdk-dnm"}
[features]
mainnet = ["zcash_client_sqlite/mainnet"]
testnet = []

View File

@ -1,48 +0,0 @@
platform :ios, '13.0'
target 'ZcashLightClientSample' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod "KRProgressHUD"
# Pods for ZcashLightClientSample
pod 'ZcashLightClientKit', :path => '../../', :testspecs => ['Tests', 'DerivationToolTests']
pod 'gRPC-Swift', '= 1.0.0'
pod 'PaginatedTableView'
pod 'NotificationBubbles'
pod 'MnemonicSwift', :git => 'https://github.com/zcash-hackworks/MnemonicSwift.git', :tag => '2.1.0'
pod 'gRPC-Swift-Plugins', '= 1.0.0'
target 'ZcashLightClientSampleTests' do
use_frameworks!
inherit! :search_paths
# Pods for testing
end
target 'ZcashLightClientSampleUITests' do
inherit! :search_paths
# Pods for testing
end
end
target 'ZcashLightClientSample-Mainnet' do
inherit! :search_paths
use_frameworks!
pod 'MnemonicSwift', :git => 'https://github.com/zcash-hackworks/MnemonicSwift.git', :tag => '2.1.0'
pod "KRProgressHUD"
pod 'PaginatedTableView'
pod 'NotificationBubbles'
pod 'ZcashLightClientKit', :path => '../../'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if target.name == 'ZcashLightClientKit-Unit-Tests'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = "13.0"
end
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end

View File

@ -1,167 +0,0 @@
PODS:
- CGRPCZlib (1.0.0)
- CNIOAtomics (2.27.0)
- CNIOBoringSSL (2.10.5)
- CNIOBoringSSLShims (2.10.5):
- CNIOBoringSSL (= 2.10.5)
- CNIODarwin (2.27.0)
- CNIOHTTPParser (2.27.0)
- CNIOLinux (2.27.0)
- CNIOWindows (2.27.0)
- gRPC-Swift (1.0.0):
- CGRPCZlib (= 1.0.0)
- Logging (< 2.0.0, >= 1.4.0)
- SwiftNIO (< 3.0.0, >= 2.22.0)
- SwiftNIOExtras (< 2.0.0, >= 1.4.0)
- SwiftNIOHTTP2 (< 2.0.0, >= 1.16.1)
- SwiftNIOSSL (< 3.0.0, >= 2.8.0)
- SwiftNIOTransportServices (< 2.0.0, >= 1.6.0)
- SwiftProtobuf (< 2.0.0, >= 1.9.0)
- gRPC-Swift-Plugins (1.0.0):
- gRPC-Swift (= 1.0.0)
- KRActivityIndicatorView (3.0.5)
- KRProgressHUD (3.4.5):
- KRActivityIndicatorView (= 3.0.5)
- Logging (1.4.0)
- MnemonicSwift (2.1.0)
- NotificationBubbles (0.1.1)
- PaginatedTableView (1.0.1)
- SQLite.swift (0.12.2):
- SQLite.swift/standard (= 0.12.2)
- SQLite.swift/standard (0.12.2)
- SwiftNIO (2.27.0):
- CNIODarwin (= 2.27.0)
- CNIOLinux (= 2.27.0)
- CNIOWindows (= 2.27.0)
- SwiftNIOConcurrencyHelpers (= 2.27.0)
- SwiftNIOConcurrencyHelpers (2.27.0):
- CNIOAtomics (= 2.27.0)
- SwiftNIOExtras (1.8.0):
- SwiftNIO (< 3, >= 2.9.0)
- SwiftNIOFoundationCompat (2.27.0):
- SwiftNIO (= 2.27.0)
- SwiftNIOHPACK (1.16.3):
- SwiftNIO (< 3, >= 2.18.0)
- SwiftNIOConcurrencyHelpers (< 3, >= 2.18.0)
- SwiftNIOHTTP1 (< 3, >= 2.18.0)
- SwiftNIOHTTP1 (2.27.0):
- CNIOHTTPParser (= 2.27.0)
- SwiftNIO (= 2.27.0)
- SwiftNIOConcurrencyHelpers (= 2.27.0)
- SwiftNIOHTTP2 (1.16.3):
- SwiftNIO (< 3, >= 2.18.0)
- SwiftNIOConcurrencyHelpers (< 3, >= 2.18.0)
- SwiftNIOHPACK (= 1.16.3)
- SwiftNIOHTTP1 (< 3, >= 2.18.0)
- SwiftNIOTLS (< 3, >= 2.18.0)
- SwiftNIOSSL (2.10.5):
- CNIOBoringSSL (= 2.10.5)
- CNIOBoringSSLShims (= 2.10.5)
- SwiftNIO (< 3, >= 2.15.0)
- SwiftNIOConcurrencyHelpers (< 3, >= 2.15.0)
- SwiftNIOTLS (< 3, >= 2.15.0)
- SwiftNIOTLS (2.27.0):
- SwiftNIO (= 2.27.0)
- SwiftNIOTransportServices (1.9.2):
- SwiftNIO (< 3, >= 2.19.0)
- SwiftNIOConcurrencyHelpers (< 3, >= 2.19.0)
- SwiftNIOFoundationCompat (< 3, >= 2.19.0)
- SwiftNIOTLS (< 3, >= 2.19.0)
- SwiftProtobuf (1.16.0)
- ZcashLightClientKit (0.12.0-beta.6):
- gRPC-Swift (= 1.0.0)
- SQLite.swift (~> 0.12.2)
- ZcashLightClientKit/DerivationToolTests (0.12.0-beta.6):
- gRPC-Swift (= 1.0.0)
- SQLite.swift (~> 0.12.2)
- ZcashLightClientKit/Tests (0.12.0-beta.6):
- gRPC-Swift (= 1.0.0)
- SQLite.swift (~> 0.12.2)
DEPENDENCIES:
- gRPC-Swift (= 1.0.0)
- gRPC-Swift-Plugins (= 1.0.0)
- KRProgressHUD
- MnemonicSwift (from `https://github.com/zcash-hackworks/MnemonicSwift.git`, tag `2.1.0`)
- NotificationBubbles
- PaginatedTableView
- ZcashLightClientKit (from `../../`)
- ZcashLightClientKit/DerivationToolTests (from `../../`)
- ZcashLightClientKit/Tests (from `../../`)
SPEC REPOS:
trunk:
- CGRPCZlib
- CNIOAtomics
- CNIOBoringSSL
- CNIOBoringSSLShims
- CNIODarwin
- CNIOHTTPParser
- CNIOLinux
- CNIOWindows
- gRPC-Swift
- gRPC-Swift-Plugins
- KRActivityIndicatorView
- KRProgressHUD
- Logging
- NotificationBubbles
- PaginatedTableView
- SQLite.swift
- SwiftNIO
- SwiftNIOConcurrencyHelpers
- SwiftNIOExtras
- SwiftNIOFoundationCompat
- SwiftNIOHPACK
- SwiftNIOHTTP1
- SwiftNIOHTTP2
- SwiftNIOSSL
- SwiftNIOTLS
- SwiftNIOTransportServices
- SwiftProtobuf
EXTERNAL SOURCES:
MnemonicSwift:
:git: https://github.com/zcash-hackworks/MnemonicSwift.git
:tag: 2.1.0
ZcashLightClientKit:
:path: "../../"
CHECKOUT OPTIONS:
MnemonicSwift:
:git: https://github.com/zcash-hackworks/MnemonicSwift.git
:tag: 2.1.0
SPEC CHECKSUMS:
CGRPCZlib: b0c9d704a12fa667f1824ffff20688f191945989
CNIOAtomics: 43316aa185f4bd639aa0a9cd49741151bbe8de7f
CNIOBoringSSL: 7ff9c35139a115f93269915b9555044d741b2ac9
CNIOBoringSSLShims: 6edde63429e353ba78992b2d4d1b0627752a4a43
CNIODarwin: 9eb3c09e9f3fc5ed47cecdd032aad926df81e3a6
CNIOHTTPParser: c6051552c5f332e4ec0756581e5cbd5632ca24e6
CNIOLinux: 79227941d64216792c3c59238b0106b9e0df25bc
CNIOWindows: f2baa102255e986467578337ffa2f777cb6bdf7f
gRPC-Swift: 77154009a019e97f8c4bd8f2bb75fe9726801157
gRPC-Swift-Plugins: 22f2e8578f332e72ee59671c63264e219c982755
KRActivityIndicatorView: 912bc0413d98340f384b12a4e1e6aa8f42fb377d
KRProgressHUD: df4cdc3a1baf708d4276a089ee34d133fa9a6f3e
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MnemonicSwift: 2415962992f524a762222c3aa1cc912736252b43
NotificationBubbles: 91ee10deee54f35b5d49a161e1cb3d788ab5d011
PaginatedTableView: 294d9831d5ddf5c0dcfbb4a281d4fcfb8d12f55a
SQLite.swift: d2b4642190917051ce6bd1d49aab565fe794eea3
SwiftNIO: 81d33ce8c500b7e41b6cdde5f2f12330b9750219
SwiftNIOConcurrencyHelpers: 23fc68bac541a465162d7225d2c743edd2f1012c
SwiftNIOExtras: aa561b71020cd6844f722cf4513fb176c577414d
SwiftNIOFoundationCompat: 0e52ac0e2c9b7b60ff9141eebb64f5a82d974118
SwiftNIOHPACK: 38e855a72ae0c5176485ddd039b3933b99daa2b7
SwiftNIOHTTP1: 846277d7fc7661fba655540e529d7ba3c728ca50
SwiftNIOHTTP2: de7eff9d32fd347338f85b86c6fd0e13c3fbd1a0
SwiftNIOSSL: 6a1f0499a5319e823eae0b6f053ecb502bcce3f5
SwiftNIOTLS: 4f8df225f03393f08e0b47b4d876ae38167f8a27
SwiftNIOTransportServices: 896c9a4ac98698d32aa2feea7657ade219ae80bb
SwiftProtobuf: 4e16842b83c6fda06b10fac50d73b3f1fce8ab7b
ZcashLightClientKit: e6d2d19781f0fab725ed4b9b8796c54a72d3de1d
PODFILE CHECKSUM: 04cc0428dd2604ef8e1bad37e4a870165d530505
COCOAPODS: 1.11.2

View File

@ -7,24 +7,13 @@ It relies on [Lightwalletd](https://github.com/zcash/lightwalletd), a backend se
## Contents
- [Requirements](#requirements)
- [Installation](#installation)
- [Exploring the demo app](#exploring-the-demo-app)
- [Demos](#demos)
- [Getting started](#getting-started)
- [Resources](#resources)
## Requirements
Demo app requires a target device running iOS 12+. The demo directly links source code so building it also requires Rust, Sourcery, and Xcode.
[Back to contents](#contents)
## Installation
Refer to [build instructions](https://github.com/zcash/ZcashLightClientKit) in the readme of the android-wallet-sdk repository for detailed instructions. In short, you will need to:
1. Install rust: https://www.rust-lang.org/learn/get-started
1. Install sourcery: https://github.com/krzysztofzablocki/Sourcery
1. Clone this repo, https://github.com/zcash/ZcashLightClientKit
1. Launch from Xcode, https://developer.apple.com/xcode/
Demo app requires a target device running iOS 12+.
[Back to contents](#contents)

View File

@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objectVersion = 52;
objects = {
/* Begin PBXBuildFile section */
@ -40,7 +40,6 @@
0D907F1D2322CC5B00D641FE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0D907F1C2322CC5B00D641FE /* Assets.xcassets */; };
0D907F202322CC5B00D641FE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0D907F1E2322CC5B00D641FE /* LaunchScreen.storyboard */; };
0D907F2B2322CC5B00D641FE /* ZcashLightClientSampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D907F2A2322CC5B00D641FE /* ZcashLightClientSampleTests.swift */; };
0D907F362322CC5B00D641FE /* ZcashLightClientSampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D907F352322CC5B00D641FE /* ZcashLightClientSampleUITests.swift */; };
0DA58B942397DDD9004596EA /* TransactionsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DA58B932397DDD9004596EA /* TransactionsTableViewController.swift */; };
0DA58B962397F2CB004596EA /* TransactionsDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DA58B952397F2CB004596EA /* TransactionsDataSource.swift */; };
0DBF8F9523A80F5A0010B85F /* TransactionDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DBF8F9423A80F5A0010B85F /* TransactionDetailViewController.swift */; };
@ -48,10 +47,15 @@
0DDFB33C236B743000AED892 /* LatestHeightViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDFB33B236B743000AED892 /* LatestHeightViewController.swift */; };
0DDFB33E236B844900AED892 /* DemoAppConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DDFB33D236B844900AED892 /* DemoAppConfig.swift */; };
0DF53E6723A438F100D7249C /* PaginatedTransactionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF53E6623A438F100D7249C /* PaginatedTransactionsViewController.swift */; };
6355F11E6389A7F4FD9F21F7 /* Pods_ZcashLightClientSample_Mainnet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 49540782BAF7E579947E23C4 /* Pods_ZcashLightClientSample_Mainnet.framework */; };
742DCA7AFF9FBEA217FD3EED /* Pods_ZcashLightClientSampleUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33F67E6BA5A27016288E77EB /* Pods_ZcashLightClientSampleUITests.framework */; };
A337DEF9CF408DD9F8C200DD /* Pods_ZcashLightClientSample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCCFED26DDACC4FBD997470C /* Pods_ZcashLightClientSample.framework */; };
A459F9A413C2AB70A02FE894 /* Pods_ZcashLightClientSampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C89C3AE14EA6993FECC643BC /* Pods_ZcashLightClientSampleTests.framework */; };
481792F96AA8DF873DDD19A8 /* Pods_ZcashLightClientSampleUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 372CC57DB80CC242BA556A30 /* Pods_ZcashLightClientSampleUITests.framework */; };
8462F5B5D7D1652782D6917E /* Pods_ZcashLightClientSampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AE1E6F756FD3EA41A397FC /* Pods_ZcashLightClientSampleTests.framework */; };
F94912632790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F94912622790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist */; };
F94912642790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = F94912622790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist */; };
F9D63D1F27CD114A00F4DC5F /* ZcashLightClientKit in Frameworks */ = {isa = PBXBuildFile; productRef = F9D63D1E27CD114A00F4DC5F /* ZcashLightClientKit */; };
F9D63D2227CD125300F4DC5F /* KRProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = F9D63D2127CD125300F4DC5F /* KRProgressHUD */; };
F9D63D2527CD12AA00F4DC5F /* MnemonicSwift in Frameworks */ = {isa = PBXBuildFile; productRef = F9D63D2427CD12AA00F4DC5F /* MnemonicSwift */; };
F9D63D2927CD131300F4DC5F /* PaginatedTableView in Frameworks */ = {isa = PBXBuildFile; productRef = F9D63D2827CD131300F4DC5F /* PaginatedTableView */; };
F9D63D2C27CD132800F4DC5F /* NotificationBubbles in Frameworks */ = {isa = PBXBuildFile; productRef = F9D63D2B27CD132800F4DC5F /* NotificationBubbles */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -83,7 +87,6 @@
0D7A4A82236CCD88001F4DD8 /* SyncBlocksViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncBlocksViewController.swift; sourceTree = "<group>"; };
0D7C85E423AD5A9B006878FC /* SampleStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleStorage.swift; sourceTree = "<group>"; };
0D8BB46C23B1DA0700D5E2A1 /* ZcashLightClientSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ZcashLightClientSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
0D8BB46D23B1DA0700D5E2A1 /* ZcashLightClientSample-Mainnet-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "ZcashLightClientSample-Mainnet-Info.plist"; path = "/Users/pacu/Repos/ECC/ZcashLightClientKit/Example/ZcashLightClientSample/ZcashLightClientSample-Mainnet-Info.plist"; sourceTree = "<absolute>"; };
0D907F122322CC5900D641FE /* ZcashLightClientSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ZcashLightClientSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
0D907F152322CC5900D641FE /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
0D907F172322CC5900D641FE /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
@ -95,8 +98,6 @@
0D907F2A2322CC5B00D641FE /* ZcashLightClientSampleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZcashLightClientSampleTests.swift; sourceTree = "<group>"; };
0D907F2C2322CC5B00D641FE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
0D907F312322CC5B00D641FE /* ZcashLightClientSampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ZcashLightClientSampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
0D907F352322CC5B00D641FE /* ZcashLightClientSampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZcashLightClientSampleUITests.swift; sourceTree = "<group>"; };
0D907F372322CC5B00D641FE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
0DA58B932397DDD9004596EA /* TransactionsTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionsTableViewController.swift; sourceTree = "<group>"; };
0DA58B952397F2CB004596EA /* TransactionsDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionsDataSource.swift; sourceTree = "<group>"; };
0DBF8F9423A80F5A0010B85F /* TransactionDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionDetailViewController.swift; sourceTree = "<group>"; };
@ -104,18 +105,12 @@
0DDFB33B236B743000AED892 /* LatestHeightViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LatestHeightViewController.swift; sourceTree = "<group>"; };
0DDFB33D236B844900AED892 /* DemoAppConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoAppConfig.swift; sourceTree = "<group>"; };
0DF53E6623A438F100D7249C /* PaginatedTransactionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaginatedTransactionsViewController.swift; sourceTree = "<group>"; };
1BEB1273671D6E7883C81472 /* Pods-ZcashLightClientSample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSample.release.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSample/Pods-ZcashLightClientSample.release.xcconfig"; sourceTree = "<group>"; };
2460FDF219C57FCA6113E129 /* Pods-ZcashLightClientSampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSampleUITests.release.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSampleUITests/Pods-ZcashLightClientSampleUITests.release.xcconfig"; sourceTree = "<group>"; };
33F67E6BA5A27016288E77EB /* Pods_ZcashLightClientSampleUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
47991618469ABD2A7FE69E73 /* Pods-ZcashLightClientSample-Mainnet.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSample-Mainnet.release.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSample-Mainnet/Pods-ZcashLightClientSample-Mainnet.release.xcconfig"; sourceTree = "<group>"; };
49540782BAF7E579947E23C4 /* Pods_ZcashLightClientSample_Mainnet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSample_Mainnet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
501B4B56030ED65B9C170CE2 /* Pods-ZcashLightClientSampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSampleTests.debug.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSampleTests/Pods-ZcashLightClientSampleTests.debug.xcconfig"; sourceTree = "<group>"; };
81B2AC726EA5CC3FEF521F84 /* Pods-ZcashLightClientSampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSampleUITests.debug.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSampleUITests/Pods-ZcashLightClientSampleUITests.debug.xcconfig"; sourceTree = "<group>"; };
90F55027AEE5406E35644223 /* Pods-ZcashLightClientSample-Mainnet.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSample-Mainnet.debug.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSample-Mainnet/Pods-ZcashLightClientSample-Mainnet.debug.xcconfig"; sourceTree = "<group>"; };
93F435FD5C95BEE3BC7BBC28 /* Pods-ZcashLightClientSample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSample.debug.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSample/Pods-ZcashLightClientSample.debug.xcconfig"; sourceTree = "<group>"; };
BEA142AE2F3C339269CBA120 /* Pods-ZcashLightClientSampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ZcashLightClientSampleTests.release.xcconfig"; path = "Target Support Files/Pods-ZcashLightClientSampleTests/Pods-ZcashLightClientSampleTests.release.xcconfig"; sourceTree = "<group>"; };
C89C3AE14EA6993FECC643BC /* Pods_ZcashLightClientSampleTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CCCFED26DDACC4FBD997470C /* Pods_ZcashLightClientSample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
22AE1E6F756FD3EA41A397FC /* Pods_ZcashLightClientSampleTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
372CC57DB80CC242BA556A30 /* Pods_ZcashLightClientSampleUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
541D36743362A797BF085D14 /* Pods_ZcashLightClientSample_Mainnet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSample_Mainnet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
EBA186B246C4205F9BF71EED /* Pods_ZcashLightClientSample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ZcashLightClientSample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
F94912622790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "ZcashLightClientSample-Mainnet-Info.plist"; sourceTree = SOURCE_ROOT; };
F9D63D1D27CD103E00F4DC5F /* ZcashLightClientKit */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ZcashLightClientKit; path = ../..; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -123,7 +118,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6355F11E6389A7F4FD9F21F7 /* Pods_ZcashLightClientSample_Mainnet.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -131,7 +125,11 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A337DEF9CF408DD9F8C200DD /* Pods_ZcashLightClientSample.framework in Frameworks */,
F9D63D2227CD125300F4DC5F /* KRProgressHUD in Frameworks */,
F9D63D2527CD12AA00F4DC5F /* MnemonicSwift in Frameworks */,
F9D63D2927CD131300F4DC5F /* PaginatedTableView in Frameworks */,
F9D63D1F27CD114A00F4DC5F /* ZcashLightClientKit in Frameworks */,
F9D63D2C27CD132800F4DC5F /* NotificationBubbles in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -139,7 +137,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
A459F9A413C2AB70A02FE894 /* Pods_ZcashLightClientSampleTests.framework in Frameworks */,
8462F5B5D7D1652782D6917E /* Pods_ZcashLightClientSampleTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -147,7 +145,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
742DCA7AFF9FBEA217FD3EED /* Pods_ZcashLightClientSampleUITests.framework in Frameworks */,
481792F96AA8DF873DDD19A8 /* Pods_ZcashLightClientSampleUITests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -214,13 +212,11 @@
0D907F092322CC5900D641FE = {
isa = PBXGroup;
children = (
F9D63D1C27CD103E00F4DC5F /* Packages */,
0D907F142322CC5900D641FE /* ZcashLightClientSample */,
0D907F292322CC5B00D641FE /* ZcashLightClientSampleTests */,
0D907F342322CC5B00D641FE /* ZcashLightClientSampleUITests */,
0D907F132322CC5900D641FE /* Products */,
66EF5A44FD6A5AC92244F054 /* Pods */,
A4E309895AA511479901D67E /* Frameworks */,
0D8BB46D23B1DA0700D5E2A1 /* ZcashLightClientSample-Mainnet-Info.plist */,
F93EF550279077B70063E43A /* Frameworks */,
);
sourceTree = "<group>";
};
@ -256,6 +252,7 @@
0D907F1C2322CC5B00D641FE /* Assets.xcassets */,
0D907F1E2322CC5B00D641FE /* LaunchScreen.storyboard */,
0D907F212322CC5B00D641FE /* Info.plist */,
F94912622790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist */,
0DDFB33D236B844900AED892 /* DemoAppConfig.swift */,
0D7C85E423AD5A9B006878FC /* SampleStorage.swift */,
0D49A18B241698A800CC0649 /* SampleLogger.swift */,
@ -272,15 +269,6 @@
path = ZcashLightClientSampleTests;
sourceTree = "<group>";
};
0D907F342322CC5B00D641FE /* ZcashLightClientSampleUITests */ = {
isa = PBXGroup;
children = (
0D907F352322CC5B00D641FE /* ZcashLightClientSampleUITests.swift */,
0D907F372322CC5B00D641FE /* Info.plist */,
);
path = ZcashLightClientSampleUITests;
sourceTree = "<group>";
};
0DA58B922397DDBC004596EA /* List Transactions */ = {
isa = PBXGroup;
children = (
@ -322,32 +310,25 @@
path = "Paginated Transactions";
sourceTree = "<group>";
};
66EF5A44FD6A5AC92244F054 /* Pods */ = {
F93EF550279077B70063E43A /* Frameworks */ = {
isa = PBXGroup;
children = (
93F435FD5C95BEE3BC7BBC28 /* Pods-ZcashLightClientSample.debug.xcconfig */,
1BEB1273671D6E7883C81472 /* Pods-ZcashLightClientSample.release.xcconfig */,
501B4B56030ED65B9C170CE2 /* Pods-ZcashLightClientSampleTests.debug.xcconfig */,
BEA142AE2F3C339269CBA120 /* Pods-ZcashLightClientSampleTests.release.xcconfig */,
81B2AC726EA5CC3FEF521F84 /* Pods-ZcashLightClientSampleUITests.debug.xcconfig */,
2460FDF219C57FCA6113E129 /* Pods-ZcashLightClientSampleUITests.release.xcconfig */,
90F55027AEE5406E35644223 /* Pods-ZcashLightClientSample-Mainnet.debug.xcconfig */,
47991618469ABD2A7FE69E73 /* Pods-ZcashLightClientSample-Mainnet.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
A4E309895AA511479901D67E /* Frameworks */ = {
isa = PBXGroup;
children = (
C89C3AE14EA6993FECC643BC /* Pods_ZcashLightClientSampleTests.framework */,
33F67E6BA5A27016288E77EB /* Pods_ZcashLightClientSampleUITests.framework */,
49540782BAF7E579947E23C4 /* Pods_ZcashLightClientSample_Mainnet.framework */,
CCCFED26DDACC4FBD997470C /* Pods_ZcashLightClientSample.framework */,
EBA186B246C4205F9BF71EED /* Pods_ZcashLightClientSample.framework */,
541D36743362A797BF085D14 /* Pods_ZcashLightClientSample_Mainnet.framework */,
22AE1E6F756FD3EA41A397FC /* Pods_ZcashLightClientSampleTests.framework */,
372CC57DB80CC242BA556A30 /* Pods_ZcashLightClientSampleUITests.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
F9D63D1C27CD103E00F4DC5F /* Packages */ = {
isa = PBXGroup;
children = (
F9D63D1D27CD103E00F4DC5F /* ZcashLightClientKit */,
);
name = Packages;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -355,12 +336,10 @@
isa = PBXNativeTarget;
buildConfigurationList = 0D8BB46923B1DA0700D5E2A1 /* Build configuration list for PBXNativeTarget "ZcashLightClientSample-Mainnet" */;
buildPhases = (
0D8BB44F23B1DA0700D5E2A1 /* [CP] Check Pods Manifest.lock */,
0D8BB45023B1DA0700D5E2A1 /* ShellScript */,
0D8BB45123B1DA0700D5E2A1 /* Sources */,
0D8BB45F23B1DA0700D5E2A1 /* Frameworks */,
0D8BB46123B1DA0700D5E2A1 /* Resources */,
A18B8A4D55F1DF8B808ABB67 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@ -375,18 +354,23 @@
isa = PBXNativeTarget;
buildConfigurationList = 0D907F3A2322CC5B00D641FE /* Build configuration list for PBXNativeTarget "ZcashLightClientSample" */;
buildPhases = (
33EFC5F94E60AC06AD108A01 /* [CP] Check Pods Manifest.lock */,
0DCB58A4237B5B580040096C /* ShellScript */,
0D907F0E2322CC5900D641FE /* Sources */,
0D907F0F2322CC5900D641FE /* Frameworks */,
0D907F102322CC5900D641FE /* Resources */,
AD38BD608A7D4F64E720F342 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = ZcashLightClientSample;
packageProductDependencies = (
F9D63D1E27CD114A00F4DC5F /* ZcashLightClientKit */,
F9D63D2127CD125300F4DC5F /* KRProgressHUD */,
F9D63D2427CD12AA00F4DC5F /* MnemonicSwift */,
F9D63D2827CD131300F4DC5F /* PaginatedTableView */,
F9D63D2B27CD132800F4DC5F /* NotificationBubbles */,
);
productName = ZcashLightClientSample;
productReference = 0D907F122322CC5900D641FE /* ZcashLightClientSample.app */;
productType = "com.apple.product-type.application";
@ -395,7 +379,6 @@
isa = PBXNativeTarget;
buildConfigurationList = 0D907F3D2322CC5B00D641FE /* Build configuration list for PBXNativeTarget "ZcashLightClientSampleTests" */;
buildPhases = (
A715D89E618E44427C0608E2 /* [CP] Check Pods Manifest.lock */,
0D907F222322CC5B00D641FE /* Sources */,
0D907F232322CC5B00D641FE /* Frameworks */,
0D907F242322CC5B00D641FE /* Resources */,
@ -414,7 +397,6 @@
isa = PBXNativeTarget;
buildConfigurationList = 0D907F402322CC5B00D641FE /* Build configuration list for PBXNativeTarget "ZcashLightClientSampleUITests" */;
buildPhases = (
A80B091D1115175E507D0D44 /* [CP] Check Pods Manifest.lock */,
0D907F2D2322CC5B00D641FE /* Sources */,
0D907F2E2322CC5B00D641FE /* Frameworks */,
0D907F2F2322CC5B00D641FE /* Resources */,
@ -461,6 +443,12 @@
Base,
);
mainGroup = 0D907F092322CC5900D641FE;
packageReferences = (
F9D63D2027CD125300F4DC5F /* XCRemoteSwiftPackageReference "KRProgressHUD" */,
F9D63D2327CD12AA00F4DC5F /* XCRemoteSwiftPackageReference "MnemonicSwift" */,
F9D63D2727CD131300F4DC5F /* XCRemoteSwiftPackageReference "PaginatedTableView" */,
F9D63D2A27CD132800F4DC5F /* XCRemoteSwiftPackageReference "NotificationBubbles" */,
);
productRefGroup = 0D907F132322CC5900D641FE /* Products */;
projectDirPath = "";
projectRoot = "";
@ -481,6 +469,7 @@
0D8BB46223B1DA0700D5E2A1 /* LaunchScreen.storyboard in Resources */,
0D8BB46323B1DA0700D5E2A1 /* Assets.xcassets in Resources */,
0D8BB46423B1DA0700D5E2A1 /* Main.storyboard in Resources */,
F94912642790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -491,6 +480,7 @@
0D907F202322CC5B00D641FE /* LaunchScreen.storyboard in Resources */,
0D907F1D2322CC5B00D641FE /* Assets.xcassets in Resources */,
0D907F1B2322CC5900D641FE /* Main.storyboard in Resources */,
F94912632790D7C4004BB3DE /* ZcashLightClientSample-Mainnet-Info.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -511,28 +501,6 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
0D8BB44F23B1DA0700D5E2A1 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ZcashLightClientSample-Mainnet-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
0D8BB45023B1DA0700D5E2A1 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@ -567,106 +535,6 @@
shellPath = /bin/sh;
shellScript = "cd ../../\nif which swiftlint >/dev/null; then\n swiftlint lint --config .swiftlint.yml\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
};
33EFC5F94E60AC06AD108A01 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ZcashLightClientSample-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
A18B8A4D55F1DF8B808ABB67 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample-Mainnet/Pods-ZcashLightClientSample-Mainnet-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample-Mainnet/Pods-ZcashLightClientSample-Mainnet-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample-Mainnet/Pods-ZcashLightClientSample-Mainnet-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
A715D89E618E44427C0608E2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ZcashLightClientSampleTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
A80B091D1115175E507D0D44 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-ZcashLightClientSampleUITests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
AD38BD608A7D4F64E720F342 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample/Pods-ZcashLightClientSample-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample/Pods-ZcashLightClientSample-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ZcashLightClientSample/Pods-ZcashLightClientSample-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -729,7 +597,6 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
0D907F362322CC5B00D641FE /* ZcashLightClientSampleUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -770,7 +637,6 @@
/* Begin XCBuildConfiguration section */
0D8BB46A23B1DA0700D5E2A1 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 90F55027AEE5406E35644223 /* Pods-ZcashLightClientSample-Mainnet.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
@ -792,7 +658,6 @@
};
0D8BB46B23B1DA0700D5E2A1 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 47991618469ABD2A7FE69E73 /* Pods-ZcashLightClientSample-Mainnet.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
@ -934,7 +799,6 @@
};
0D907F3B2322CC5B00D641FE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 93F435FD5C95BEE3BC7BBC28 /* Pods-ZcashLightClientSample.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
@ -958,7 +822,6 @@
};
0D907F3C2322CC5B00D641FE /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 1BEB1273671D6E7883C81472 /* Pods-ZcashLightClientSample.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
@ -982,7 +845,6 @@
};
0D907F3E2322CC5B00D641FE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 501B4B56030ED65B9C170CE2 /* Pods-ZcashLightClientSampleTests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
BUNDLE_LOADER = "$(TEST_HOST)";
@ -1004,7 +866,6 @@
};
0D907F3F2322CC5B00D641FE /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = BEA142AE2F3C339269CBA120 /* Pods-ZcashLightClientSampleTests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
BUNDLE_LOADER = "$(TEST_HOST)";
@ -1026,7 +887,6 @@
};
0D907F412322CC5B00D641FE /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 81B2AC726EA5CC3FEF521F84 /* Pods-ZcashLightClientSampleUITests.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
@ -1047,7 +907,6 @@
};
0D907F422322CC5B00D641FE /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2460FDF219C57FCA6113E129 /* Pods-ZcashLightClientSampleUITests.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
@ -1115,6 +974,68 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
F9D63D2027CD125300F4DC5F /* XCRemoteSwiftPackageReference "KRProgressHUD" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/krimpedance/KRProgressHUD.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 3.0.0;
};
};
F9D63D2327CD12AA00F4DC5F /* XCRemoteSwiftPackageReference "MnemonicSwift" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/zcash-hackworks/MnemonicSwift.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 2.0.0;
};
};
F9D63D2727CD131300F4DC5F /* XCRemoteSwiftPackageReference "PaginatedTableView" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/dh-ecc/PaginatedTableView";
requirement = {
branch = master;
kind = branch;
};
};
F9D63D2A27CD132800F4DC5F /* XCRemoteSwiftPackageReference "NotificationBubbles" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/pacu/NotificationBubbles.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.0;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
F9D63D1E27CD114A00F4DC5F /* ZcashLightClientKit */ = {
isa = XCSwiftPackageProductDependency;
productName = ZcashLightClientKit;
};
F9D63D2127CD125300F4DC5F /* KRProgressHUD */ = {
isa = XCSwiftPackageProductDependency;
package = F9D63D2027CD125300F4DC5F /* XCRemoteSwiftPackageReference "KRProgressHUD" */;
productName = KRProgressHUD;
};
F9D63D2427CD12AA00F4DC5F /* MnemonicSwift */ = {
isa = XCSwiftPackageProductDependency;
package = F9D63D2327CD12AA00F4DC5F /* XCRemoteSwiftPackageReference "MnemonicSwift" */;
productName = MnemonicSwift;
};
F9D63D2827CD131300F4DC5F /* PaginatedTableView */ = {
isa = XCSwiftPackageProductDependency;
package = F9D63D2727CD131300F4DC5F /* XCRemoteSwiftPackageReference "PaginatedTableView" */;
productName = PaginatedTableView;
};
F9D63D2B27CD132800F4DC5F /* NotificationBubbles */ = {
isa = XCSwiftPackageProductDependency;
package = F9D63D2A27CD132800F4DC5F /* XCRemoteSwiftPackageReference "NotificationBubbles" */;
productName = NotificationBubbles;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = 0D907F0A2322CC5900D641FE /* Project object */;
}

View File

@ -2,6 +2,6 @@
<Workspace
version = "1.0">
<FileRef
location = "self:ZcashLightClientSample.xcodeproj">
location = "self:">
</FileRef>
</Workspace>

View File

@ -0,0 +1,151 @@
{
"object": {
"pins": [
{
"package": "grpc-swift",
"repositoryURL": "https://github.com/grpc/grpc-swift.git",
"state": {
"branch": null,
"revision": "5cc08ebf77e68598bfe4c793927d0f2838598607",
"version": "1.6.1"
}
},
{
"package": "KRActivityIndicatorView",
"repositoryURL": "https://github.com/krimpedance/KRActivityIndicatorView.git",
"state": {
"branch": null,
"revision": "bcb0e841d6de0cd343a32bd5056580a56d06c0bc",
"version": "3.0.7"
}
},
{
"package": "KRProgressHUD",
"repositoryURL": "https://github.com/krimpedance/KRProgressHUD.git",
"state": {
"branch": null,
"revision": "265142816d8f8ea93840accaf4ac7c49998e77c2",
"version": "3.4.7"
}
},
{
"package": "libzcashlc",
"repositoryURL": "https://github.com/dh-ecc/libzcashlc.git",
"state": {
"branch": "main",
"revision": "900dbfe0bc8c0e5f4774bf038678292ee5de0150",
"version": null
}
},
{
"package": "MnemonicSwift",
"repositoryURL": "https://github.com/zcash-hackworks/MnemonicSwift.git",
"state": {
"branch": null,
"revision": "27711179a75a1172d6f04ceb5d86419cf0cba401",
"version": "2.1.0"
}
},
{
"package": "NotificationBubbles",
"repositoryURL": "https://github.com/pacu/NotificationBubbles.git",
"state": {
"branch": null,
"revision": "ae6d47f3a415c9eec5daa8e04d040c0e68654f00",
"version": "1.0.0"
}
},
{
"package": "PaginatedTableView",
"repositoryURL": "https://github.com/dh-ecc/PaginatedTableView",
"state": {
"branch": "master",
"revision": "a3fd9f079d6c9ac3095ee3ef2369a68c29ba04db",
"version": null
}
},
{
"package": "SQLite.swift",
"repositoryURL": "https://github.com/stephencelis/SQLite.swift.git",
"state": {
"branch": null,
"revision": "60a65015f6402b7c34b9a924f755ca0a73afeeaa",
"version": "0.13.1"
}
},
{
"package": "swift-crypto",
"repositoryURL": "https://github.com/apple/swift-crypto.git",
"state": {
"branch": null,
"revision": "a8911e0fadc25aef1071d582355bd1037a176060",
"version": "2.0.4"
}
},
{
"package": "swift-log",
"repositoryURL": "https://github.com/apple/swift-log.git",
"state": {
"branch": null,
"revision": "5d66f7ba25daf4f94100e7022febf3c75e37a6c7",
"version": "1.4.2"
}
},
{
"package": "swift-nio",
"repositoryURL": "https://github.com/apple/swift-nio.git",
"state": {
"branch": null,
"revision": "51c3fc2e4a0fcdf4a25089b288dd65b73df1b0ef",
"version": "2.37.0"
}
},
{
"package": "swift-nio-extras",
"repositoryURL": "https://github.com/apple/swift-nio-extras.git",
"state": {
"branch": null,
"revision": "f73ca5ee9c6806800243f1ac415fcf82de9a4c91",
"version": "1.10.2"
}
},
{
"package": "swift-nio-http2",
"repositoryURL": "https://github.com/apple/swift-nio-http2.git",
"state": {
"branch": null,
"revision": "6e94a7be32891d1b303a3fcfde8b5bf64d162e74",
"version": "1.19.1"
}
},
{
"package": "swift-nio-ssl",
"repositoryURL": "https://github.com/apple/swift-nio-ssl.git",
"state": {
"branch": null,
"revision": "52a486ff6de9bc3e26bf634c5413c41c5fa89ca5",
"version": "2.17.2"
}
},
{
"package": "swift-nio-transport-services",
"repositoryURL": "https://github.com/apple/swift-nio-transport-services.git",
"state": {
"branch": null,
"revision": "8ab824b140d0ebcd87e9149266ddc353e3705a3e",
"version": "1.11.4"
}
},
{
"package": "SwiftProtobuf",
"repositoryURL": "https://github.com/apple/swift-protobuf.git",
"state": {
"branch": null,
"revision": "7e2c5f3cbbeea68e004915e3a8961e20bd11d824",
"version": "1.18.0"
}
}
]
},
"version": 1
}

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:ZcashLightClientSample.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreviewsEnabled</key>
<false/>
</dict>
</plist>

View File

@ -8,6 +8,7 @@
import UIKit
import ZcashLightClientKit
class GetBalanceViewController: UIViewController {
@IBOutlet weak var balance: UILabel!
@IBOutlet weak var verified: UILabel!

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>

View File

@ -1,34 +0,0 @@
//
// ZcashLightClientSampleUITests.swift
// ZcashLightClientSampleUITests
//
// Created by Francisco Gindre on 06/09/2019.
// Copyright © 2019 Electric Coin Company. All rights reserved.
//
import XCTest
class ZcashLightClientSampleUITests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
continueAfterFailure = false
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
XCUIApplication().launch()
// In UI tests its important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testExample() {
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
}

97
Package.resolved Normal file
View File

@ -0,0 +1,97 @@
{
"object": {
"pins": [
{
"package": "grpc-swift",
"repositoryURL": "https://github.com/grpc/grpc-swift.git",
"state": {
"branch": null,
"revision": "5cc08ebf77e68598bfe4c793927d0f2838598607",
"version": "1.6.1"
}
},
{
"package": "libzcashlc",
"repositoryURL": "https://github.com/dh-ecc/libzcashlc.git",
"state": {
"branch": "main",
"revision": "fbe54a6f8ed6d8acb2cef4728cd0970766697d8a",
"version": null
}
},
{
"package": "SQLite.swift",
"repositoryURL": "https://github.com/stephencelis/SQLite.swift.git",
"state": {
"branch": null,
"revision": "60a65015f6402b7c34b9a924f755ca0a73afeeaa",
"version": "0.13.1"
}
},
{
"package": "swift-log",
"repositoryURL": "https://github.com/apple/swift-log.git",
"state": {
"branch": null,
"revision": "5d66f7ba25daf4f94100e7022febf3c75e37a6c7",
"version": "1.4.2"
}
},
{
"package": "swift-nio",
"repositoryURL": "https://github.com/apple/swift-nio.git",
"state": {
"branch": null,
"revision": "51c3fc2e4a0fcdf4a25089b288dd65b73df1b0ef",
"version": "2.37.0"
}
},
{
"package": "swift-nio-extras",
"repositoryURL": "https://github.com/apple/swift-nio-extras.git",
"state": {
"branch": null,
"revision": "f73ca5ee9c6806800243f1ac415fcf82de9a4c91",
"version": "1.10.2"
}
},
{
"package": "swift-nio-http2",
"repositoryURL": "https://github.com/apple/swift-nio-http2.git",
"state": {
"branch": null,
"revision": "6e94a7be32891d1b303a3fcfde8b5bf64d162e74",
"version": "1.19.1"
}
},
{
"package": "swift-nio-ssl",
"repositoryURL": "https://github.com/apple/swift-nio-ssl.git",
"state": {
"branch": null,
"revision": "52a486ff6de9bc3e26bf634c5413c41c5fa89ca5",
"version": "2.17.2"
}
},
{
"package": "swift-nio-transport-services",
"repositoryURL": "https://github.com/apple/swift-nio-transport-services.git",
"state": {
"branch": null,
"revision": "8ab824b140d0ebcd87e9149266ddc353e3705a3e",
"version": "1.11.4"
}
},
{
"package": "SwiftProtobuf",
"repositoryURL": "https://github.com/apple/swift-protobuf.git",
"state": {
"branch": null,
"revision": "7e2c5f3cbbeea68e004915e3a8961e20bd11d824",
"version": "1.18.0"
}
}
]
},
"version": 1
}

61
Package.swift Normal file
View File

@ -0,0 +1,61 @@
// swift-tools-version:5.5
import PackageDescription
let package = Package(
name: "ZcashLightClientKit",
platforms: [
.iOS(.v13),
.macOS(.v10_12)
],
products: [
.library(
name: "ZcashLightClientKit",
targets: ["ZcashLightClientKit"]
),
],
dependencies: [
.package(url: "https://github.com/grpc/grpc-swift.git", from: "1.0.0"),
.package(url: "https://github.com/stephencelis/SQLite.swift.git", from: "0.13.0"),
.package(url: "https://github.com/dh-ecc/libzcashlc.git", branch: "main"),
],
targets: [
.target(
name: "ZcashLightClientKit",
dependencies: [
.product(name: "SQLite", package: "SQLite.swift"),
.product(name: "GRPC", package: "grpc-swift"),
.product(name: "libzcashlc", package: "libzcashlc"),
],
exclude: [
"Service/ProtoBuf/proto/compact_formats.proto",
"Service/ProtoBuf/proto/service.proto",
"Stencil"
]
),
.target(
name: "TestUtils",
dependencies: ["ZcashLightClientKit"],
path: "Tests/TestUtils",
exclude: [
"proto/darkside.proto"
],
resources: [
.copy("test_data.db"),
.copy("cache.db"),
.copy("ZcashSdk_Data.db"),
]
),
.testTarget(
name: "OfflineTests",
dependencies: ["ZcashLightClientKit", "TestUtils"]
),
.testTarget(
name: "NetworkTests",
dependencies: ["ZcashLightClientKit", "TestUtils"]
),
.testTarget(
name: "DarksideTests",
dependencies: ["ZcashLightClientKit", "TestUtils"]
)
]
)

165
README.md
View File

@ -16,124 +16,45 @@ This is an alpha build and is currently under active development. Please be advi
- Developers using this SDK must familiarize themselves with the current [threat
model](https://zcash.readthedocs.io/en/latest/rtd_pages/wallet_threat_model.html), especially the known weaknesses described there.
# Build dependencies
# Installation
ZcashLightClientKit uses a rust library called Librustzcash. In order to build it, you need to have rust and cargo installed on your environment.
## Swift Package Manager
Install [Rust and Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) following these directions, and then install `cargo-lipo` and add the appropriate architectures using `rustup` with the following example:
Add a package with the source "https://github.com/zcash/ZcashLightClientKit.git" and from version "0.13.0" onwards in either Xcode's GUI or in your "Package.swift" file
```
$ cargo install cargo-lipo
$ rustup target add aarch64-apple-ios x86_64-apple-ios
## Cocoapods Support
1. Add the following to the top of your podfile to resolve downstream dependencies.
```ruby
source "https://github.com/dh-ecc/CocoaPodsSpecs.git"
source "https://cdn.cocoapods.org/"
```
# Cocoapods Support
## Installing ZcashLightClientKit as a Contributor
``` ruby
use_frameworks!
pod 'ZcashLightClientKit', :path => '../../', :testspecs => ['Tests'] # include testspecs if you want to run the tests
```
## Installing ZcashLightClientKit as a wallet app developer
```` ruby
use_frameworks!
pod 'ZcashLightClientKit'
````
### Custom build phases warning
When running `pod install` you will see this warning upon success:
```` bash
[!] ZcashLightClientKit has added 2 script phases. Please inspect before executing a build.
See `https://guides.cocoapods.org/syntax/podspec.html#script_phases` for more information.
````
Integrating Rust code with Swift code and delivering it in a consistent and (build) reproducible way, is hard. We've taken the lead to get that burden off your shoulders as much as possible by leveraging the `prepare_command` and `script_phases` features from Cocoapods to carefully generate a build for the Rust layer.
## Build system
This section explains the 'Build System' that integrates the rust code and creates the corresponding environment.
### Overview
There are some basic steps to build ZcashLightClientKit. Even though they are 'basic' they can be cumbersome. So we automated them in scripts.
**1. Pod install and `prepare_command`**
ZcashLightClientKit needs files to be present at pod installation time, but that can't be defined properly yet and depend on librustzcash building properly and for an environment to be set up at build time. For know we just need to let Cocoapods that these files exist:
- `${ZCASH_POD_SRCROOT}/zcashlc/libzcashlc.a` this is the librustzcash build .a file itself
- `lib/libzcashlc.a` (as vendored library that will be added as an asset by xcodeproj)
**2. Build Phase**
The build Phase scripts executes within the Xcode Build Step and has all the known variables of a traditional build at hand.
```` ruby
s.script_phase = {
:name => 'Build generate constants and build librustzcash',
:script => 'sh ${PODS_TARGET_SRCROOT}/Scripts/build_librustzcash_xcode.sh',
:execution_position => :before_compile
}
````
This step will generate files needed on the next steps and build the librustzcash with Xcode but *not using cargo's built-in Xcode integration*
** Building librustzcash and integrating it to the pod structure**
Where the magic happens. Here we will make sure that everything is set up properly to start building librustzcash. When on mainnet, the build will append a parameter to include mainnet features.
### Scripts
On the Scripts folder you will find the following files:
````
| Scripts
|-/prepare_zcash_sdk.sh
|-/generate_test_constants.sh
|-/build_librustzcash_xcode.sh
|-/build_librustzcash.sh
|-/script_commons.sh
````
#### prepare_zcash_sdk.sh
This script is run by the Cocoapods 'prepare_command'.
```` Ruby
s.prepare_command = <<-CMD
sh Scripts/prepare_zcash_sdk.sh
CMD
````
It basically creates empty files that cocoapods needs to pick up on its pod structure but that are still not present in the file system and that will be generated in later build phases.
NOTE: pod install will only run this phase when no Pods/ folder is present or if your pod hash has changed or is not present on manifest.lock. When in doubt, just clean the Pods/ folder and start over. That usually gets rid of weirdness caused by Xcode caching a lot of stuff you are not aware of.
#### script_commons.sh
A lot of important environment variables and helper functions live in the `script_commons.sh`.
2. Add `pod "ZcashLightClientKit", ~> "0.13.0"` to the target you want to add the kit too.
# Testing
Currently tests depend on a `lightwalletd` server instance running locally or remotely to pass.
To know more about running `lightwalletd`, refer to its repo https://github.com/zcash/lightwalletd
The best way to run tests is to open "Package.swift" in Xcode and use the Test panel and target an iOS device. Tests will build and run for a Mac target but are not currently working as expected.
## Pointing tests to a lightwalletd instance
There are three test targets grouped by external requirements:
1. `OfflineTests`
- No external requirements.
2. `NetworkTests`
- Require an active internet connection.
3. `DarksideTests`
- Require an instance of `lightwalletd` to be running while the tests are being run, see below for some information on how to set up. (Darkside refers to a mode in lightwalletd that allows it to be updated to represent/mock different states of the underlying blockchain.)
Tests use `Sourcery` to generate a Constants file which injects the `lightwalletd` server address to the test themselves.
## lightwalletd
### Installing sourcery
Refer to the official repo https://github.com/krzysztofzablocki/Sourcery
### Setting env-var.sh file to run locally
Create a file called `env-var.sh` on the project root to create the `LIGHTWALLETD_ADDRESS` environment variable on build time.
The `DarksideTests` test target depend on a `lightwalletd` server instance running locally (or remotely). For convenience, we have added a universal (Mac) `lightwalletd` binary (in `Tests/lightwalletd/lightwalletd) and it can be run locally for use by the tests with the following command:
```
export LIGHTWALLETD_ADDRESS="localhost%3a9067"
Tests/lightwalletd/lightwalletd --no-tls-very-insecure --data-dir /tmp --darkside-very-insecure --log-file /dev/stdout
```
You can find out more about running `lightwalletd`, from the main repo https://github.com/zcash/lightwalletd.
### Integrating with CD/CI
The `LIGHTWALLETD_ADDRESS` environment variable can also be added to your shell of choice and `xcodebuild` will pick it up accordingly.
@ -166,44 +87,8 @@ For more details look the Sample App's `AppDelegate` code.
# Swiftlint
We don't like reinventing the wheel, so we gently borrowed swift lint rules from AirBnB which we find pretty cool and reasonable.
## Troubleshooting
#### clean pod install
it's not necessary to delete the whole Pods/ directory and download all of your dependencies again
1. on your project root, locate the `Pods/` directory
2. remove ZcashLightClientKit from it
3. clean derived data from Xcode
4. close Xcode
5. run `pod install` (run --verbose to see more details)
6. open Xcode project
7. build
### _function_name referenced from...
if you get a build error similar to ```_function_name referenced from...```
* on your project root directory *
1. remove the 'Pods' directory ``` rm -rf Pods/```
2. delete derived data and clean
3. run `pod install`
4. build
### can't find crate for ... target may not be installed
This error could be a side effect of having more then one rust toolchain installed.
If you worked with ZcashLightClientKit 0.6.6 or below you might have had to set the compiler to 1.40.0 which can cause this compilation error to happen.
make sure that the directory that you are working on has the correct rust environment.
You can do so by calling `rustup show` in the working directory.
### Building in Apple Silicon
So far we have come up with this set up (april 2021)
* Clone a terminal and run it in rosetta mode
* Clone your Xcode of choice and run it in rosetta mode
* Installing the right toolchain for cargo
* `rustup toolchain add stable-x86_64-apple-darwin`
* `rustup target add aarch64-apple-ios x86_64-apple-darwin x86_64-apple-ios`
## Versioning
# Versioning
This project follows [semantic versioning](https://semver.org/) with pre-release versions. An example of a valid version number is `1.0.4-alpha11` denoting the `11th` iteration of the `alpha` pre-release of version `1.0.4`. Stable releases, such as `1.0.4` will not contain any pre-release identifiers. Pre-releases include the following, in order of stability: `alpha`, `beta`, `rc`. Version codes offer a numeric representation of the build name that always increases. The first six significant digits represent the major, minor and patch number (two digits each) and the last 3 significant digits represent the pre-release identifier. The first digit of the identifier signals the build type. Lastly, each new build has a higher version code than all previous builds. The following table breaks this down:

View File

@ -1,23 +0,0 @@
#!/bin/bash
BASEPATH="${PWD}"
TARGET_DIR="target"
LIB_PATH="ZcashLightClientKit/$FLAVOR_FOLDER/zcashlc"
echo "++++ Building librustzcash $NETWORK_TYPE library ++++"
if [ -f $TARGET_DIR ]; then
rm -rf $TARGET_DIR
fi
cargo lipo --manifest-path ${PODS_TARGET_SRCROOT}/Cargo.toml --release
if [ -f $LIB_PATH ]; then
rm -rf $LIB_PATH
mkdir -p $LIB_PATH
fi
cp -rf $TARGET_DIR/universal/release/* $LIB_PATH

View File

@ -1,63 +0,0 @@
#!/bin/sh
set -x
SCRIPT_COMMONS="${PODS_TARGET_SRCROOT}/Scripts/script_commons.sh"
if [ ! -f $SCRIPT_COMMONS ]; then
echo "Failed to load $SCRIPT_COMMONS"
exit 1
fi
source $SCRIPT_COMMONS
if [ "$ACTION" = "clean" ]; then
echo "CLEAN DETECTED"
clean
exit 0
fi
echo "Building Rust backend"
echo ""
echo "platform name"
echo $PLATFORM_NAME
if [ $PLATFORM_NAME = "iphonesimulator" ]; then
ZCASH_ACTIVE_ARCHITECTURE="aarch64-apple-ios-sim x86_64-apple-ios"
RUSTUP_TOOLCHAIN="stable"
else
ZCASH_ACTIVE_ARCHITECTURE="aarch64-apple-ios"
RUSTUP_TOOLCHAIN="stable"
fi
echo "fix 'permission denied issue'"
chmod -R +w ${PODS_TARGET_SRCROOT}
echo "RUSTUP_TOOLCHAIN=${RUSTUP_TOOLCHAIN} cargo build --manifest-path ${PODS_TARGET_SRCROOT}/Cargo.toml --target $ZCASH_ACTIVE_ARCHITECTURE --release"
if [[ -n "${DEVELOPER_SDK_DIR:-}" ]]; then
# Assume we're in Xcode, which means we're probably cross-compiling.
# In this case, we need to add an extra library search path for build scripts and proc-macros,
# which run on the host instead of the target.
# (macOS Big Sur does not have linkable libraries in /usr/lib/.)
echo "export LIBRARY_PATH=\"${DEVELOPER_SDK_DIR}/MacOSX.sdk/usr/lib:${LIBRARY_PATH:-}\""
export LIBRARY_PATH="${DEVELOPER_SDK_DIR}/MacOSX.sdk/usr/lib:${LIBRARY_PATH:-}"
fi
if [ ! -f ${ZCASH_LIB_RUST_BUILD_PATH}/universal/release/${ZCASH_LIB_RUST_NAME} ]; then
RUSTUP_TOOLCHAIN=${RUSTUP_TOOLCHAIN} cargo lipo --manifest-path ${PODS_TARGET_SRCROOT}/Cargo.toml --targets $ZCASH_ACTIVE_ARCHITECTURE --release
persist_environment
fi
if [ ! -d "${RUST_LIB_PATH}" ]; then
mkdir -p "${RUST_LIB_PATH}"
fi
echo "clean up existing artifacts: rm -f ${ZCASH_SDK_RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
rm -f "${ZCASH_SDK_RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
echo "clean up sdk lib path: rm -f ${RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
rm -f "${RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
echo "copying artifacts: cp -f ${ZCASH_LIB_RUST_BUILD_PATH}/universal/release/${ZCASH_LIB_RUST_NAME} ${ZCASH_SDK_RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
# ALWAYS SHIP RELEASE NO MATTER WHAT YOUR BUILD IS (FOR NOW AT LEAST)
cp -f "${ZCASH_LIB_RUST_BUILD_PATH}/universal/release/${ZCASH_LIB_RUST_NAME}" "${ZCASH_SDK_RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
echo "copying artifacts: cp -f ${ZCASH_LIB_RUST_BUILD_PATH}/universal/release/${ZCASH_LIB_RUST_NAME} ${RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"
cp -f "${ZCASH_LIB_RUST_BUILD_PATH}/universal/release/${ZCASH_LIB_RUST_NAME}" "${RUST_LIB_PATH}/${ZCASH_LIB_RUST_NAME}"

View File

@ -1,16 +0,0 @@
#!/bin/sh
#check if env-vars.sh exists
ENV_VARS_PATH=${PODS_TARGET_SRCROOT}/env-vars.sh
if [ -f $ENV_VARS_PATH ]; then
source $ENV_VARS_PATH
echo "importing $ENV_VARS_PATH"
fi
export ZCASH_TEST_SRC_PATH="${PODS_TARGET_SRCROOT}/ZcashLightClientKitTests"
if [ ! ${LIGHTWALLETD_ADDRESS} ]; then
echo "LIGHTWALLETD_ADDRESS VARIABLE NOT DEFINED"
exit 1
fi
echo "export ZCASH_TEST_SRC_PATH=$ZCASH_TEST_SRC_PATH"
#no `else` case needed if the CI works as expected
sourcery --templates "${ZCASH_TEST_SRC_PATH}/Stencil" --sources ${ZCASH_TEST_SRC_PATH} --output ${ZCASH_TEST_SRC_PATH} --args addr=$LIGHTWALLETD_ADDRESS

View File

@ -1,28 +0,0 @@
#!/bin/sh
echo "PWD: ${PWD}"
echo "*********************************************"
echo "* create fake .a so pod install picks it up *"
echo "*********************************************"
RUST_LIB_PATH="${PWD}"/lib
mkdir -p -v $RUST_LIB_PATH
echo "******************************************************************************"
echo " touch $RUST_LIB_PATH/libzcashlc.a "
echo "******************************************************************************"
touch $RUST_LIB_PATH/libzcashlc.a
ZCASH_POD_ROOT="${PWD}"
ZCASH_POD_SRCROOT="${ZCASH_POD_ROOT}/ZcashLightClientKit"
ZCASH_SDK_GENERATED_SOURCES_FOLDER="${ZCASH_POD_SRCROOT}/Generated"
echo "***************************************************************************"
echo " touch ${ZCASH_POD_ROOT}/zcashlc/libzcashlc.a"
echo "***************************************************************************"
touch ${ZCASH_POD_SRCROOT}/zcashlc/libzcashlc.a
echo "***************************************************************************"
echo " touch ${ZCASH_POD_ROOT}/zcashlc/zcashlc.h"
echo "***************************************************************************"
touch ${ZCASH_POD_SRCROOT}/zcashlc/zcashlc.h

View File

@ -1,23 +0,0 @@
#!/bin/sh
export PATH="$HOME/.cargo/bin:$PATH"
export RUST_LIB_PATH="${PODS_TARGET_SRCROOT}/lib"
export ZCASH_POD_SCRIPTS="${PODS_TARGET_SRCROOT}/Scripts"
export ZCASH_LIB_RUST_BUILD_PATH="${PODS_TARGET_SRCROOT}/target"
export ZCASH_LIB_RUST_NAME="libzcashlc.a"
export ZCASH_SRC_PATH="${PODS_TARGET_SRCROOT}/ZcashLightClientKit"
export ZCASH_SDK_RUST_LIB_PATH="${ZCASH_SRC_PATH}/zcashlc"
function clean {
echo "CLEAN DETECTED"
cargo clean
if [ -d "${RUST_LIB_PATH}" ]; then
rm -rf "${RUST_LIB_PATH}"
fi
if [ -d "${ZCASH_LIB_RUST_BUILD_PATH}" ]; then
rm -rf "${ZCASH_LIB_RUST_BUILD_PATH}"
fi
}

View File

@ -1,8 +0,0 @@
#!/bin/bash
set -x
APP_DIR=${TRAVIS_BUILD_DIR}/Example/ZcashLightClientSample
cd ${APP_DIR}
pod install

View File

@ -1,13 +0,0 @@
#!/bin/bash
set -x
rustup-init --verbose -y
source $HOME/.cargo/env
rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim
rustup toolchain add nightly-2021-09-24
rustup +nightly-2021-09-24 target add aarch64-apple-ios-sim x86_64-apple-ios
cargo install cargo-lipo

View File

@ -17,6 +17,7 @@ extension WalletBirthday {
time: 1535262293,
tree: "000000"
)
case 421720 ..< 425865:
return WalletBirthday(
height: 421720,
@ -24,6 +25,7 @@ extension WalletBirthday {
time: 1550762014,
tree: "015495a30aef9e18b9c774df6a9fcd583748c8bba1a6348e70f59bc9f0c2bc673b000f00000000018054b75173b577dc36f2c80dfc41f83d6716557597f74ec54436df32d4466d57000120f1825067a52ca973b07431199d5866a0d46ef231d08aa2f544665936d5b4520168d782e3d028131f59e9296c75de5a101898c5e53108e45baa223c608d6c3d3d01fb0a8d465b57c15d793c742df9470b116ddf06bd30d42123fdb7becef1fd63640001a86b141bdb55fd5f5b2e880ea4e07caf2bbf1ac7b52a9f504977913068a917270001dd960b6c11b157d1626f0768ec099af9385aea3f31c91111a8c5b899ffb99e6b0192acd61b1853311b0bf166057ca433e231c93ab5988844a09a91c113ebc58e18019fbfd76ad6d98cafa0174391546e7022afe62e870e20e16d57c4c419a5c2bb69"
)
case 425865 ..< 518000:
return WalletBirthday(
height: 425865,
@ -31,6 +33,7 @@ extension WalletBirthday {
time: 1551215770,
tree: "01881e4da7e4767ee8a144a32ab8a5719a513bb05854477773bb55e6cd7f15055201f8a99a3a5ae3528ec2fc0bda9652b6728aecb08bf364e06ac511fd6654d782720f019ef0b9bdd075c38519fa4ab8210fe7e94c609f52672796e33e3cab58b1602831000001f803bf338ff1526b2ca527288974cb9be3fe240a2eadb7507e46ba59eaddb9320129fc0148ac088a6aa509f8f64ef79fda92232020369b58a12b32c05b6f428f22015e3dd0950c442940bd015c2176f7c817f22104f54c61159727483188c539dc13000000013589be9e2d9e9e38fd78b1e8eaec5b5f5167bf7fd2b1c95c316fa366a24cac4c01a86b141bdb55fd5f5b2e880ea4e07caf2bbf1ac7b52a9f504977913068a917270001dd960b6c11b157d1626f0768ec099af9385aea3f31c91111a8c5b899ffb99e6b0192acd61b1853311b0bf166057ca433e231c93ab5988844a09a91c113ebc58e18019fbfd76ad6d98cafa0174391546e7022afe62e870e20e16d57c4c419a5c2bb69"
)
case 518000 ..< 523240:
return WalletBirthday(
height: 518000,
@ -38,6 +41,7 @@ extension WalletBirthday {
time: 1560645743,
tree: "01a4f5240a88a6eb4ffbda7961a1430506aad1a50ba011593f02c243d968feb0550010000140f91773b4ab669846e5bcb96f60e68256c49a27872a98e9d5ce50b30a0c434e0000018968663d6a7b444591de83f8a07223113f5de7e8203807adacc7677c3bcd4f420194c7ecac0ef6d702d475680ec32051fdf6368af0c459ab450009c001bcbf7a5300000001f0eead5192c3b3ab7208429877570676647e448210332c6da7e18660b142b80e01b98b14cab05247195b3b3be3dd8639bae99a0dd10bed1282ac25b62a134afd7200000000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 523240 ..< 620000:
return WalletBirthday(
height: 523240,
@ -45,6 +49,7 @@ extension WalletBirthday {
time: 1561002603,
tree: "01d3e02bc1c2d66762f370b329a3063067701ad66c44b40285686bc8ff25f5616f00100154bff87bd0bda3b70a6d7754eca261de15fee3cd9bc53073a232e07fc3261e27000001a54dcaccb4c5e578aef89f2a3b4e3c3d8a487e6e904c5da5916118d721948d07000000000118fa9c6fef4963049dc7002a13bb0021d5e950591e48c9e5f2cbd1199429b80401f0eead5192c3b3ab7208429877570676647e448210332c6da7e18660b142b80e01b98b14cab05247195b3b3be3dd8639bae99a0dd10bed1282ac25b62a134afd7200000000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 620000 ..< 680000:
return WalletBirthday(
height: 620000,
@ -52,6 +57,7 @@ extension WalletBirthday {
time: 1569572035,
tree: "0170cf036ea1ea3c6e08432e18b6a372ca0b8b83671cc13ab0cf9e28c182f6c36f00100000013f3fc2c16ac4780f1c472ca65534ab08911f325a9edde5ea7f24364b47c9a95300017621b12e518cbbbdb7511ab423e0bddda412ed61ed3cff5be2140de65d6a0069010576153a5a2098812e7a028c37c3398e186f398c9b07bc199784ab97e5535c3e0000019a6ce2f0f7dbb2de493a315abf62d8ca96ccc701f116b6ddfae33870a2183d3c01c9d3564eff54ebc328eab2e4f1150c3637f4f47516f879a0cfebdf49fe7b1d5201c104705fac60a85596010e41260d07f3a64f38f37a112eaef41cd9d736edc5270145e3d4899fcd7f0f1236ae31eafb3f4b65ad6b11a17eae1729cec09bd3afa01a000000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 680000 ..< 720000:
return WalletBirthday(
height: 680000,
@ -59,6 +65,7 @@ extension WalletBirthday {
time: 1573569367,
tree: "010a57f939a267f8b1e8b77288c783432e48fa95f7b22ead5e8ff46a788181453801d6457d98d3698a367aef4a2fe5675a575790d5d8081b731f979f0e64043fb7351001afaaf81d6d982b401444dbcf89e63c2583d234c1a60de17940a9b3a15f3494660001ba7acc730584a689413c44781d3b13cd497bfdca3fe27fb78cd9b50e9929906300000000000129e195df514840a20b95200b92d5b8d196b119cd6887508d8de077beffdbfe68016482af04b979e08e4e5760d55832292e55dbdd88143992f123840c8983db7b3f000001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 720000 ..< 740000:
return WalletBirthday(
height: 720000,
@ -66,6 +73,7 @@ extension WalletBirthday {
time: 1575943651,
tree: "012cfde48dff4f20ddc50a7aca3746f7d77920eebc8cf4ef53feac34cb8719c03a012c668d234aaa485862e1d06e46d6d7093c2581e2b9cda90aafd691d6e325410610014f3a875476cb8159d46fec1aba18c201c268cd61b01811b7e5bf83998fb8222500011f19160cc75325c090f3eb3fa0cff2d94e43e2713c89e7b02a34f6ed08fbcd26000001edc05305223f7f2839abc1dc7d900468349577d6d6f5c182ef3a81a848753b5b0000000129cbee0c11a827718f126d9e037155a9e173ee2d2ecf57dc68f7b66437d44f7301a113bcf163405e4286bc080ac55aa68555d2c9e63334e7b9a5eb756872f14c470001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 740000 ..< 760000:
return WalletBirthday(
height: 740000,
@ -73,6 +81,7 @@ extension WalletBirthday {
time: 1577389695,
tree: "0135ee37f83d0b924eed58bcceb249a4977dcb21495561b97bc747a272ebe5d6580010000001fe65cfbb8a76e0d29ac94e5ada80c80b607d1addfc287754f37ddef531eb122500013a1d604d978f716fcb2887cdaa3c582a608b795ed1b3c57998cbede2be479931000108ffb0fbc6b653305b37cd5568b85112b996cd514fe97ec73f7169dae0cef05101baf5541e853483315273c25c1956d233513c3dabd8741972136b2f8f8cd89035000129cbee0c11a827718f126d9e037155a9e173ee2d2ecf57dc68f7b66437d44f7301a113bcf163405e4286bc080ac55aa68555d2c9e63334e7b9a5eb756872f14c470001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 760000 ..< 780000:
return WalletBirthday(
height: 760000,
@ -80,6 +89,7 @@ extension WalletBirthday {
time: 1578766903,
tree: "01470a1a4d29374e074f07a646b95dd89892d9b84d235a89ecc9d5a52beadce901001001311898ce56df0ddb10dc573a54ea06d11415e72602daa80c01f888fbd4a9a734018610afa4925cdb8bd4dd75a53ab69a74080322cae53c630ac02ce00b09d3171601bdfbbde5011bd6c0620ed2db3e01d5daa2ff8bb5f3b58687d265dd33a5681d530197e268c82e56dfc62aeb54586a2000766da8078f09a2d15fb558ad05664b4c5301aa204407034ba59fce0eee6518688585e96b0f10befd595b8e68a8ae15328a51017389398c5634242b03ef811f6abf224df9e6fc6d4393139e526dca4cf44dcc2c0000017de4c2c210c617dc61a43e124cab93e4f6143e1e9e46c2e55a541a9781cde43c0129cbee0c11a827718f126d9e037155a9e173ee2d2ecf57dc68f7b66437d44f7301a113bcf163405e4286bc080ac55aa68555d2c9e63334e7b9a5eb756872f14c470001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 780000 ..< 798181:
return WalletBirthday(
height: 780000,
@ -87,6 +97,7 @@ extension WalletBirthday {
time: 1580205978,
tree: "011ed883b7eddb4783eee5b73ceee4c78413e1f6f9db3d88d1007f5fa62292955c001001861feaeab59bc31cd97ffc89467877abf8b9fa157bc875907eb90d6e8c723325000000000001ccc21a1d581eb6d3f35729f202f0014a59b4f9d41d92d44316b381f57dc8356b01ec0f418f21af87c0e0846b318be838bd181f25b708ee2b2fa030468399fb7932017de4c2c210c617dc61a43e124cab93e4f6143e1e9e46c2e55a541a9781cde43c0129cbee0c11a827718f126d9e037155a9e173ee2d2ecf57dc68f7b66437d44f7301a113bcf163405e4286bc080ac55aa68555d2c9e63334e7b9a5eb756872f14c470001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 798181 ..< 800000:
return WalletBirthday(
height: 798181,
@ -94,6 +105,7 @@ extension WalletBirthday {
time: 1581521064,
tree: "01901ef0f4221f8a02d5896fda6f78cb5578fb8e9a5361d5689bfb3b6ab92072320010000101c5d791d8748f0ab0ecdb48764de29c470cc74f5d95b5a1f8cf0830bb059b66015af654e998c75460e9c1f5ba185589c53c383167e66951cfe7684321b7a77e5c013faf6b3f21f03982ada477bfddc95b18e63683c497b2f4630ab453623c28974c01aff3253410a6601ab4b5b3626f2121cb77399c634b1774a4c63f415598d16b0c01a6158d0a1a1bec9dadc601b140a9fdfc7bdab7e232739a3cc0e0e46bbe3ef44301ccc21a1d581eb6d3f35729f202f0014a59b4f9d41d92d44316b381f57dc8356b01ec0f418f21af87c0e0846b318be838bd181f25b708ee2b2fa030468399fb7932017de4c2c210c617dc61a43e124cab93e4f6143e1e9e46c2e55a541a9781cde43c0129cbee0c11a827718f126d9e037155a9e173ee2d2ecf57dc68f7b66437d44f7301a113bcf163405e4286bc080ac55aa68555d2c9e63334e7b9a5eb756872f14c470001e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 800000 ..< 850000:
return WalletBirthday(
height: 800000,
@ -101,6 +113,7 @@ extension WalletBirthday {
time: 1581643886,
tree: "011ba0f16f59489a9bf9cc46c3ed1108c1dc0ff6e40f3a38def472c3229a96925e01b0eb758757bde323a6417d98365ce8f6299b0fa3de615d6cda68689e6a81573d1001438b40ff7357432d987d6ef4826fba35d38b2db531ea842ccedd4916a6aff9580000017cd705c293895c8b4613a3de3ad3b8d43ae05fff808882db4c5e19917e2f346d00000000000000016f6df9b95ef63866bdf0e8b4b97701cd09232ec3e4e240808c0546d01bc7bb0501e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 850000 ..< 900000:
return WalletBirthday(
height: 850000,
@ -108,6 +121,7 @@ extension WalletBirthday {
time: 1585012771,
tree: "01e3bd906376b563d184bfbf6616e220f895001b7ef9d26bf38c6cb5c71e57a42b001001d848adf8c38d113140bb30d306b0761da6987e25ffc0d82faa63c2764aab120301de3e6a35d09192cde3430860c70a534d7b63e95a726fab052de2a9befa3cc3320189b958fa030131bb83385a3e3a8b187a166dc1b3a02050f2d2fc20788536c30e0001cb8770ef198e7de60093a339afbc561c16c16749f9f96751c2fc58a22d0ff36f01f86ff70dd512f7075d02c5ee6e28a8824832d08025a4cfaf4c1854f1fba5da10019bcac1b44a27de2c4528fa6f4b3432913511b219cb3b29d137cac0236a3d244800000000016f6df9b95ef63866bdf0e8b4b97701cd09232ec3e4e240808c0546d01bc7bb0501e3ec5d790cc9acc2586fc6e9ce5aae5f5aba32d33e386165c248c4a03ec8ed670000011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 950000 ..< 1013250:
return WalletBirthday(
height: 950000,
@ -115,6 +129,7 @@ extension WalletBirthday {
time: 1591609525,
tree: "01f0637235c4a699d49ba996457a6c4eb7c67edd8270948065683deb19ef218363019f65a9692cefc7b90b42c1538ac1f38f7a7598549089c4561315b482f378523010000000000000018d30d0039277b05ab9e0c3990d53037c45892bf17af2d04fef40ed48c164ad2201ff5d86bbbe360e31378e783b740f8b05db2cf4246b95aa3851d22ed45554750300010cefb25743d5dd6062ef3afba438731cd5b35befc1038ecca3076fd205829e550001c19052386d8bbe3c07a1faf302281d67946cc9547e7e1890ff56b3a3ec69c0310001be53a6cd33da0442c7c6362c0172241f42e13c6dc893436a661a1cbf49775c1f00011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1013250 ..< 1028400:
return WalletBirthday(
height: 1013250,
@ -122,6 +137,7 @@ extension WalletBirthday {
time: 1595516064,
tree: "01d45e95007f8f97fe3c6a297a9d4bca917772e545fbcbb61b4f42d8a743eae31b0010013d7b7da2e6792dbfc6360f0c13a1ba879aa51a498c6dbab87aa57cef558cc35a00000001f945c15602617327026e3e0f231daf91570b32f7bb766f65e7e82131a911cc3c0000013173e9983fbd7a396e192e520d163be06cdd28abcfeba46c59dc62a400f589080001e7d5b00f0758cd3b7407c6d13e23d1a59e3f510c3dd3a4a8fc367a5305673b3f000001c787f900940720a3692e5694b085d5409dfa966017a6a48441c7e4b423b3144701be53a6cd33da0442c7c6362c0172241f42e13c6dc893436a661a1cbf49775c1f00011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1028400 ..< 1130000:
return WalletBirthday(
height: 1028400,
@ -129,6 +145,7 @@ extension WalletBirthday {
time: 1596480151,
tree: "01ac95378779cf56f0726655d248f95d63e07316ab67651ce357b346f9a7adba300107d7544edbe7d0522fe523df2ff804fc9f33f4844dd29e86a23fc7aa1818e237100001f8779a159482fd3a28c640e6d48ddfb37a44a26a102aae3822f32d2de22a1c70011f97534315f1800961bc78fcd1495e3b8047bb227e2776080fb31be6cae14e73000000000001fe15295e017fc2b8ba4ea1b7e53dd15f19860d10e7952905b7598373e143413e00019289038516ce3d6038cebe852ab5e32f7a1966fc79a1e41c7cb6e67e5a71c33d0001c787f900940720a3692e5694b085d5409dfa966017a6a48441c7e4b423b3144701be53a6cd33da0442c7c6362c0172241f42e13c6dc893436a661a1cbf49775c1f00011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1130000 ..< 1370446:
return WalletBirthday(
height: 1130000,
@ -136,6 +153,7 @@ extension WalletBirthday {
time: 1603070117,
tree: "01b00c3e6d98e706fdb2d40f082096505aaa70fb87c067baf1a8a6d25cccff7258015a5334276509c93b855db0c2a1252e2ca725821c9274add1c2e92631bbbfa12b100151ba8342564941385670cd7346dc753bb5cc61164f000f65044cc09baa175917019ed834b8b9c8ca58969b3f239d74c2dd4a7d0a462afb1e856cf76209b866eb660135de9af32480f38eeca478a33a95f495abe7470e93d5aa4813fab7ea4fd12c4c0000017ce3fc7ebc2f8cfc2e1ee9f8e92b6e45065679ee3b48b5b2f0ce053305f5a95c011f1e8fe8f4a1cb5a700614218b8bebf2113c8a660abd255f67448b684b82d76e00000000016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1370446 ..< 1414969:
return WalletBirthday(
height: 1370446,
@ -143,6 +161,7 @@ extension WalletBirthday {
time: 1618587354,
tree: "01d0d36f8845f9ffad4f0a8812fbc5c4c69b45733199d7183307cb1a7d00353c0900100000017a8a6f641c487a313bb949623cca3b22b925adfef8216866aa090546bcf520000001bf48febcd2a10e51d420782990e17b746d5ce0f3292007e60a2eeb830bc46d0201ab6e0123bf72f70255ec4cacd33935b19ff834d481d67e06801073d0b8f0ea2a0121f42f607885a0158022413591af8eca7eae38b10c46e3ac81a9bfe70046e51d018229160dbe1f1d9e02d738e9d5060497e786e7434c80c32db7b8c96878e9904601034e6b1c73f09aa81f16a13cdb2188a53d8761483470f0bea01bfb84eb2cea1100018469338dcbdf2f7e54bca5bc3e1c5fad4a656f206040436d3d0433a901218b5e016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1414969 ..< 1420000:
return WalletBirthday(
height: 1414969,
@ -150,6 +169,7 @@ extension WalletBirthday {
time: 1621459669,
tree: "01a9497fdb3add3bc2d0676f3163d94cda7c8cf8112d9dd8d2e7611b187c600a410010000143905c99f7bb45b164c636bb2443d9621db8147dba6a84a279fa8ed8f012083d00016847084e044e84059ea4b88b8af2de3f65c72adcee21522d5ee9d370d70f525b0000014d03c61befc68d02710784399567067db98f24eda340a1fd4a3ecc549d0fd0660001b4c1c846cae1423eaf52f1a8b1bfdde9ed9d43ced4d80dba9e72d862a0e03e4001ba0d7aa9e68417291c63b835fa64114f5899208238de59ee360f594c8b6c1b72018469338dcbdf2f7e54bca5bc3e1c5fad4a656f206040436d3d0433a901218b5e016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1420000 ..< 1430000:
return WalletBirthday(
height: 1420000,
@ -157,6 +177,7 @@ extension WalletBirthday {
time: 1621783347,
tree: "0107478e9125e3050506cbeea850266d94108997ec3ef101d9693d136611b4076c00100001dfcde451d111cd50bac54c4ed4e238ca3dd8dcfcb8b50eabccb11a12dbcad71b0001cffd776a8fd6e5df911d000876525aa1d792a4f764e252dac9af69dd8ef3046d0106d4ec443aa1194ea579a1aa179bd5a29eeb4a5a01ccbfcf7af9cadc58225a6900014d03c61befc68d02710784399567067db98f24eda340a1fd4a3ecc549d0fd0660001b4c1c846cae1423eaf52f1a8b1bfdde9ed9d43ced4d80dba9e72d862a0e03e4001ba0d7aa9e68417291c63b835fa64114f5899208238de59ee360f594c8b6c1b72018469338dcbdf2f7e54bca5bc3e1c5fad4a656f206040436d3d0433a901218b5e016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1430000 ..< 1440000:
return WalletBirthday(
height: 1430000,
@ -164,6 +185,7 @@ extension WalletBirthday {
time: 1622484411,
tree: "010ea3d173a66acda751cb72a86bcc1eed2708b997ca8c7292febbd4c19b41665e001001f908af1ee7296100c06672f69834e5be2dc8b5325945270d562669bba91b825d01c4b42187eb99ab242226f6f2a48a00d4e5b3b4201c931afe9bccc86f3fbdd46501f39c0c0c1f725fa6b3ab8b58e60b280207a41199e2e218405f31ae18f0759f16000154daf736c7f68b0f22072be3e6b59434618b514c0c32d044c187048e2600c60b01f98b75b62bf721db663a442cbfa411242ec07ccb70aee42ea3618ca7b157270a014d03c61befc68d02710784399567067db98f24eda340a1fd4a3ecc549d0fd0660001b4c1c846cae1423eaf52f1a8b1bfdde9ed9d43ced4d80dba9e72d862a0e03e4001ba0d7aa9e68417291c63b835fa64114f5899208238de59ee360f594c8b6c1b72018469338dcbdf2f7e54bca5bc3e1c5fad4a656f206040436d3d0433a901218b5e016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1440000 ..< 1450000:
return WalletBirthday(
height: 1440000,
@ -171,6 +193,7 @@ extension WalletBirthday {
time: 1623136353,
tree: "018d8cc853fd33af2a13ea00f379fe882fc56ecea3e0b1ecb75ac3b9783b443d3b01922d8ec71070cbe88eef0576738169965839e841d2fbc09c85f1d64f3528d4341001ee3dbc8987d7be81ccd8a5b502e9385c447f3f8c9c34085a1d11f7b41ceb625b010c1d1b1687fd081e55598e9bdcc5c565781ec867a12dd056384890f36fef434c00011674571f7aca05cc96139d2e59b08fe7a5b7b779da40a9903755b61e73421e64000001ccb87d20316142450d34c59bc515935f9adfd053a178ae8d799ea1f9bf02664901cc23dbfe7d27d7ad768868d7a96b6b31260ca34e4fbf164f652eb8e651f2fd3801b4c1c846cae1423eaf52f1a8b1bfdde9ed9d43ced4d80dba9e72d862a0e03e4001ba0d7aa9e68417291c63b835fa64114f5899208238de59ee360f594c8b6c1b72018469338dcbdf2f7e54bca5bc3e1c5fad4a656f206040436d3d0433a901218b5e016d559de7a1a382349cf97fe01a2fba41a49bb5e3b306d9ff8c2bcc301c731c00000001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1450000 ..< 1460000:
return WalletBirthday(
height: 1450000,
@ -178,6 +201,7 @@ extension WalletBirthday {
time: 1623815069,
tree: "0175626cf9d8448de98f68fcc585dd7a276c946c11bbc3b192ee08db99c542b86b01acf5a110dc7ab911b534984c46bf56592f0c4cc8cf70dbd6a9cc4a5b47d2c81c1001c91f518ccb74093a217a640c537b69b095de058e0430046c8783f231caa1fa4201f7c982ce76b2c9343fb771e077357322f9a7dabfd7ab93b7adee32806c930d6600000170910ab6355ec614412fae56dad5fdc1747ce1b306a4b8ae03b77513b612b00800000000000000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1460000 ..< 1470000:
return WalletBirthday(
height: 1460000,
@ -185,6 +209,7 @@ extension WalletBirthday {
time: 1624454126,
tree: "01f971b9781e857ab4acd5506174daf7ced473ad5a4a98134816d0c48de197d4400010000001ce49c67660eff9e404a3e4569ffa3ba98cc4514c05fa408beecd5c63420ef30e0192152273e4cbeafd426fa7df421310d2ccefad5e78f8d3e26dc283064b4d0d480188b70932b9ad821d4c9ecd57ed729a724723d22bdee4e5d4f08c9a924e68cf1501b2533ff180b8fb171fc0450fb7d1f91b7528bc19d88fdb2385c207b149d55e53017b499fdb9fe0db4bc418689d8f45f38b127b67d0445c421bfa6892c870610e260000000000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1470000 ..< 1480000:
return WalletBirthday(
height: 1470000,
@ -192,6 +217,7 @@ extension WalletBirthday {
time: 1625121412,
tree: "012442af751714abfbb1f6b815b187eecbb60849e29dca1e3acccfbfd73f6bb8150010000109777ddd46c0a0e7eb91f31735f6078c54334f9a6d22d6421898bd44fd83ce140000013337975cc4704be21cbecce1c877936ce395128f6264fcb91ba8c028e7f25230015d7589dc1009350a87831e2fa9c4d9d3ca61754644f1a1d5d09499567fdcb11e0136e55cb009dd4f8bb8a3469b27ec325f06552a66bef2d898b6a72063107d03350001a7b951c79a184af5bda58c8be77db9b1e3813df0de344f26b27e3ad02c325b3b000000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1480000 ..< 1490000:
return WalletBirthday(
height: 1480000,
@ -199,6 +225,7 @@ extension WalletBirthday {
time: 1625795173,
tree: "01a61918852f89d4d68aa82e1d93a7ddc4285ab2cf6a2ce92e79c4b9b498662014016d8109b64819882e5d35ee6730f54dda3a4ddc8232edc22226a367542c977a23100000016891e1f6b99afb29292bd3157f89eb2b8c1f74eed9cef56f4a802939d7392a1a0001f6f393a6ab5b0bc04a6d751bdbcd64a2740ff93aef7e1527dcd5de0511c4fb3001b938c3d7a93793fa04d51cce0369e789316a72f227436e02fc0c45fdd88def3700000001260f6e9fac0922f98d58afbcc3f391ac19d5d944081466929a33b99df19c0e6a0000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1490000 ..< 1500000:
return WalletBirthday(
height: 1490000,
@ -206,6 +233,7 @@ extension WalletBirthday {
time: 1626460494,
tree: "01448b047d9d4611f923ceb0c01a2fc743c7b4a54f7a00e92d666cbd0f39980f3100100000000001d917913fed08004cf1c74eeb918829cb80e576187e2f8e0c0e12a7e9849a9b400130282bcf71d57c40235baa4a3e045d89803c1fe069803da86ccebf25435dd270014aad72f0f5c3cd459d6d89a68657fbd299c84be0228c1a8a50d63ff2f2f74e0a000001260f6e9fac0922f98d58afbcc3f391ac19d5d944081466929a33b99df19c0e6a0000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1500000 ..< 1507328:
return WalletBirthday(
height: 1500000,
@ -213,6 +241,7 @@ extension WalletBirthday {
time: 1627076501,
tree: "01172b95f271c6af8f68388f08c8ef970db8ec8d8d61204ecb7b2bb2c38262b92d0010016284585a6c85dadfef27ff33f1403926b4bb391de92e8be797e4280cc4ca2971000001a1ff388639379c0120782b3929bd8871af797be4b651f694aa961bad65a9c12400000001d806c98bda9653d5ae22757eed750871e16e0fb657f52c3d771a4411668e84330001260f6e9fac0922f98d58afbcc3f391ac19d5d944081466929a33b99df19c0e6a0000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1510000 ..< 1520000:
return WalletBirthday(
height: 1510000,
@ -220,6 +249,7 @@ extension WalletBirthday {
time: 1627732497,
tree: "01d48068b1d5df60d503b3096df8324a496cb0d38cc0dae7d5384dc0d2c054a53c01f78eb50b151d718bfdca22fbf0009cf3c52cbabb4dc079458ce81c590615fb6e10014322a3d05341d97f21671686dd9f31264106c911d295d0ac9a3489d4257d15220001807210e338ac665a917b9dcb4b0dfec1661a51f8974dd601a13bece399c6fb6e0134e53353af751c1932b5be1fe16c7816ee765d0845ea29c64cf307bb481483630001526321fe3e5eb822fc10101b36b4601030b279a7f64b675d4c8438a6361c5e710001d806c98bda9653d5ae22757eed750871e16e0fb657f52c3d771a4411668e84330001260f6e9fac0922f98d58afbcc3f391ac19d5d944081466929a33b99df19c0e6a0000013d2fd009bf8a22d68f720eac19c411c99014ed9c5f85d5942e15d1fc039e28680001f08f39275112dd8905b854170b7f247cf2df18454d4fa94e6e4f9320cca05f24011f8322ef806eb2430dc4a7a41c1b344bea5be946efc7b4349c1c9edb14ff9d39"
)
case 1520000 ..< 1530000:
return WalletBirthday(
height: 1520000,

View File

@ -7,6 +7,7 @@
//
// swiftlint:disable type_body_length
import Foundation
import libzcashlc
class ZcashRustBackend: ZcashRustBackendWelding {
static func lastError() -> RustWeldingError? {

View File

@ -7,7 +7,6 @@
//
import Foundation
import UIKit
public extension Notification.Name {
/**

View File

@ -6,6 +6,7 @@
//
import XCTest
@testable import TestUtils
@testable import ZcashLightClientKit
// swiftlint:disable implicitly_unwrapped_optional force_unwrapping type_body_length

View File

@ -6,6 +6,7 @@
//
import XCTest
@testable import TestUtils
@testable import ZcashLightClientKit
// swiftlint:disable type_body_length implicitly_unwrapped_optional force_unwrapping file_length

Some files were not shown because too many files have changed in this diff Show More