From 2dd4ca05b4bdf5619f19874d6f5dbc4ae628505b Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 7 Dec 2018 03:03:37 +0300 Subject: [PATCH 01/28] fixed eip681 and eip67 --- Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h | 2 +- Pods/Headers/Public/BigInt/BigInt-iOS.modulemap | 2 +- Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h | 2 +- Pods/Headers/Public/BigInt/BigInt-macOS.modulemap | 2 +- Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h | 2 +- Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap | 2 +- Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h | 2 +- Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap | 2 +- Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h | 2 +- Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap | 2 +- Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h | 2 +- Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap | 2 +- .../Public/EthereumAddress/EthereumAddress-iOS-umbrella.h | 2 +- .../Public/EthereumAddress/EthereumAddress-iOS.modulemap | 2 +- .../Public/EthereumAddress/EthereumAddress-macOS-umbrella.h | 2 +- .../Public/EthereumAddress/EthereumAddress-macOS.modulemap | 2 +- Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h | 2 +- Pods/Headers/Public/PromiseKit/PromiseKit.modulemap | 2 +- .../PromiseKit.root-CorePromise-Foundation-umbrella.h | 2 +- .../PromiseKit.root-CorePromise-Foundation.modulemap | 2 +- Pods/Headers/Public/Result/Result-iOS-umbrella.h | 2 +- Pods/Headers/Public/Result/Result-iOS.modulemap | 2 +- Pods/Headers/Public/Result/Result-macOS-umbrella.h | 2 +- Pods/Headers/Public/Result/Result-macOS.modulemap | 2 +- Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h | 2 +- Pods/Headers/Public/SipHash/SipHash-iOS.modulemap | 2 +- Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h | 2 +- Pods/Headers/Public/SipHash/SipHash-macOS.modulemap | 2 +- Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h | 2 +- Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap | 2 +- Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h | 2 +- Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap | 2 +- Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h | 2 +- Pods/Headers/Public/scrypt/scrypt-iOS.modulemap | 2 +- Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h | 2 +- Pods/Headers/Public/scrypt/scrypt-macOS.modulemap | 2 +- .../Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h | 2 +- .../Public/secp256k1_swift/secp256k1_swift-iOS.modulemap | 2 +- .../Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h | 2 +- .../Public/secp256k1_swift/secp256k1_swift-macOS.modulemap | 2 +- web3swift.xcodeproj/project.pbxproj | 4 ++++ web3swiftTests/web3swift_EIP67_Tests.swift | 1 + 42 files changed, 45 insertions(+), 40 deletions(-) diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h index 54c439564..16afa3a0c 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap index 5827ffd6f..ba43bbb44 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h index 15cd9101e..c3ee0d508 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap index db0458375..bd641c3af 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h index 38ee2e270..9c82822e9 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap index d3c8afa43..11d195f60 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h index 4f6598359..75d2d1a64 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap index 13bb9bda2..fdd21eb6a 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h index 372038959..2bfc96860 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap index ded50b1ab..e4c1fe11f 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h index e72800bb6..296ae6f64 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap index 99eb1eb31..8f1687a58 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h index 505dcdba1..63dd90111 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap index 2e8de9c1b..564c53983 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h index 45c29b7ea..a71a370eb 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap index 1814f3891..39952c2eb 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h index 384f088cd..1de04831e 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap index 5b105d963..05d14d0fb 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h index 6026bec84..2215a97db 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap index 515bc96ce..cb55a7e03 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS-umbrella.h b/Pods/Headers/Public/Result/Result-iOS-umbrella.h index 5017bcc62..66e128f43 120000 --- a/Pods/Headers/Public/Result/Result-iOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS.modulemap b/Pods/Headers/Public/Result/Result-iOS.modulemap index a9cb518ea..c19082802 120000 --- a/Pods/Headers/Public/Result/Result-iOS.modulemap +++ b/Pods/Headers/Public/Result/Result-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS-umbrella.h b/Pods/Headers/Public/Result/Result-macOS-umbrella.h index d933679ed..2cd2be5b4 120000 --- a/Pods/Headers/Public/Result/Result-macOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS.modulemap b/Pods/Headers/Public/Result/Result-macOS.modulemap index 6ff87c94a..31357df43 120000 --- a/Pods/Headers/Public/Result/Result-macOS.modulemap +++ b/Pods/Headers/Public/Result/Result-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h index 736829e4f..4880a52a0 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap index 363bde1c4..e9597c3e1 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h index c56e6a45b..8f93caa8a 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap index 835353525..3d9b28ab7 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h index b77347325..cfc099ecc 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap index ae407f989..ec58169b3 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h index 4740a4f84..e2ad7b9b0 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap index d1421e204..cc3bc63c5 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h index 1c81cd5a7..0176eb75c 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap index 02bd8338d..29e617553 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h index 75f99866d..e915dea97 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap index 2e33aed25..606bbe68b 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h index 70cc63a67..bd5ff7f5d 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap index c5b6fa265..7470662b4 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h index d75b444d6..15f74edd9 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap index c0e372d55..48a096319 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 7afc31c4e..fca2b8894 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -171,6 +171,8 @@ 81FB21FF207BB297007F9A83 /* EIP67Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81FB21F8207BA78B007F9A83 /* EIP67Code.swift */; }; 81FB2201207BC58C007F9A83 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2200207BC58B007F9A83 /* CoreImage.framework */; }; 81FB2203207BC6DB007F9A83 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2202207BC6DB007F9A83 /* ImageIO.framework */; }; + 9196A68721B9EFDA00852ED0 /* web3swift_EIP681_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2892143DF1D004CD2C7 /* web3swift_EIP681_Tests.swift */; }; + 9196A68821B9EFF100852ED0 /* web3swift_EIP67_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E23B5ADC20EA685D00DC7F32 /* web3swift_EIP67_Tests.swift */; }; 985BFD4A216CE8B100B28C14 /* Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD49216CE8B100B28C14 /* Web3+TxPool.swift */; }; 985BFD4E216E2E0A00B28C14 /* Promise+Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD4D216E2E0A00B28C14 /* Promise+Web3+TxPool.swift */; }; B350A445E5DB35C60E59AD70 /* libPods-web3swift-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57F8C9C48884592DCF561393 /* libPods-web3swift-macOS.a */; }; @@ -1310,6 +1312,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 9196A68821B9EFF100852ED0 /* web3swift_EIP67_Tests.swift in Sources */, + 9196A68721B9EFDA00852ED0 /* web3swift_EIP681_Tests.swift in Sources */, E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */, 81909D292188504D007D2AE5 /* web3swift_AdvancedABIv2_Tests.swift in Sources */, 00E5FE8220EA3FF40030E0D6 /* web3swift_infura_Tests.swift in Sources */, diff --git a/web3swiftTests/web3swift_EIP67_Tests.swift b/web3swiftTests/web3swift_EIP67_Tests.swift index 90b10f2a5..8b62cbd30 100755 --- a/web3swiftTests/web3swift_EIP67_Tests.swift +++ b/web3swiftTests/web3swift_EIP67_Tests.swift @@ -7,6 +7,7 @@ import XCTest import CryptoSwift import BigInt +import EthereumAddress @testable import web3swift_iOS From b7f3c697c4aa4747dec5734115e5200914b40037 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 7 Dec 2018 05:16:03 +0300 Subject: [PATCH 02/28] added erc777 --- .../Public/BigInt/BigInt-iOS-umbrella.h | 2 +- .../Public/BigInt/BigInt-iOS.modulemap | 2 +- .../Public/BigInt/BigInt-macOS-umbrella.h | 2 +- .../Public/BigInt/BigInt-macOS.modulemap | 2 +- .../CryptoSwift/CryptoSwift-iOS-umbrella.h | 2 +- .../CryptoSwift/CryptoSwift-iOS.modulemap | 2 +- .../CryptoSwift/CryptoSwift-macOS-umbrella.h | 2 +- .../CryptoSwift/CryptoSwift-macOS.modulemap | 2 +- .../EthereumABI/EthereumABI-iOS-umbrella.h | 2 +- .../EthereumABI/EthereumABI-iOS.modulemap | 2 +- .../EthereumABI/EthereumABI-macOS-umbrella.h | 2 +- .../EthereumABI/EthereumABI-macOS.modulemap | 2 +- .../EthereumAddress-iOS-umbrella.h | 2 +- .../EthereumAddress-iOS.modulemap | 2 +- .../EthereumAddress-macOS-umbrella.h | 2 +- .../EthereumAddress-macOS.modulemap | 2 +- .../Public/PromiseKit/PromiseKit-umbrella.h | 2 +- .../Public/PromiseKit/PromiseKit.modulemap | 2 +- ...Kit.root-CorePromise-Foundation-umbrella.h | 2 +- ...eKit.root-CorePromise-Foundation.modulemap | 2 +- .../Public/Result/Result-iOS-umbrella.h | 2 +- .../Public/Result/Result-iOS.modulemap | 2 +- .../Public/Result/Result-macOS-umbrella.h | 2 +- .../Public/Result/Result-macOS.modulemap | 2 +- .../Public/SipHash/SipHash-iOS-umbrella.h | 2 +- .../Public/SipHash/SipHash-iOS.modulemap | 2 +- .../Public/SipHash/SipHash-macOS-umbrella.h | 2 +- .../Public/SipHash/SipHash-macOS.modulemap | 2 +- .../Public/SwiftRLP/SwiftRLP-iOS-umbrella.h | 2 +- .../Public/SwiftRLP/SwiftRLP-iOS.modulemap | 2 +- .../Public/SwiftRLP/SwiftRLP-macOS-umbrella.h | 2 +- .../Public/SwiftRLP/SwiftRLP-macOS.modulemap | 2 +- .../Public/scrypt/scrypt-iOS-umbrella.h | 2 +- .../Public/scrypt/scrypt-iOS.modulemap | 2 +- .../Public/scrypt/scrypt-macOS-umbrella.h | 2 +- .../Public/scrypt/scrypt-macOS.modulemap | 2 +- .../secp256k1_swift-iOS-umbrella.h | 2 +- .../secp256k1_swift-iOS.modulemap | 2 +- .../secp256k1_swift-macOS-umbrella.h | 2 +- .../secp256k1_swift-macOS.modulemap | 2 +- web3swift.xcodeproj/project.pbxproj | 14 + .../ERC777/Web3+ERC777.swift | 348 ++++ web3swift/Web3/Classes/Web3+Utils.swift | 1731 +++++++++++++++++ 43 files changed, 2133 insertions(+), 40 deletions(-) create mode 100644 web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h index 54c439564..16afa3a0c 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap index 5827ffd6f..ba43bbb44 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h index 15cd9101e..c3ee0d508 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap index db0458375..bd641c3af 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h index 38ee2e270..9c82822e9 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap index d3c8afa43..11d195f60 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h index 4f6598359..75d2d1a64 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap index 13bb9bda2..fdd21eb6a 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h index 372038959..2bfc96860 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap index ded50b1ab..e4c1fe11f 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h index e72800bb6..296ae6f64 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap index 99eb1eb31..8f1687a58 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h index 505dcdba1..63dd90111 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap index 2e8de9c1b..564c53983 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h index 45c29b7ea..a71a370eb 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap index 1814f3891..39952c2eb 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h index 384f088cd..1de04831e 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap index 5b105d963..05d14d0fb 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h index 6026bec84..2215a97db 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap index 515bc96ce..cb55a7e03 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS-umbrella.h b/Pods/Headers/Public/Result/Result-iOS-umbrella.h index 5017bcc62..66e128f43 120000 --- a/Pods/Headers/Public/Result/Result-iOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS.modulemap b/Pods/Headers/Public/Result/Result-iOS.modulemap index a9cb518ea..c19082802 120000 --- a/Pods/Headers/Public/Result/Result-iOS.modulemap +++ b/Pods/Headers/Public/Result/Result-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS-umbrella.h b/Pods/Headers/Public/Result/Result-macOS-umbrella.h index d933679ed..2cd2be5b4 120000 --- a/Pods/Headers/Public/Result/Result-macOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS.modulemap b/Pods/Headers/Public/Result/Result-macOS.modulemap index 6ff87c94a..31357df43 120000 --- a/Pods/Headers/Public/Result/Result-macOS.modulemap +++ b/Pods/Headers/Public/Result/Result-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h index 736829e4f..4880a52a0 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap index 363bde1c4..e9597c3e1 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h index c56e6a45b..8f93caa8a 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap index 835353525..3d9b28ab7 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h index b77347325..cfc099ecc 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap index ae407f989..ec58169b3 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h index 4740a4f84..e2ad7b9b0 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap index d1421e204..cc3bc63c5 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h index 1c81cd5a7..0176eb75c 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap index 02bd8338d..29e617553 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h index 75f99866d..e915dea97 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap index 2e33aed25..606bbe68b 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h index 70cc63a67..bd5ff7f5d 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap index c5b6fa265..7470662b4 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h index d75b444d6..15f74edd9 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap index c0e372d55..48a096319 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap @@ -1 +1 @@ -/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file +/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 7afc31c4e..2f325b9ef 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -171,6 +171,8 @@ 81FB21FF207BB297007F9A83 /* EIP67Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81FB21F8207BA78B007F9A83 /* EIP67Code.swift */; }; 81FB2201207BC58C007F9A83 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2200207BC58B007F9A83 /* CoreImage.framework */; }; 81FB2203207BC6DB007F9A83 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2202207BC6DB007F9A83 /* ImageIO.framework */; }; + 9196A68B21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */; }; + 9196A68C21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */; }; 985BFD4A216CE8B100B28C14 /* Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD49216CE8B100B28C14 /* Web3+TxPool.swift */; }; 985BFD4E216E2E0A00B28C14 /* Promise+Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD4D216E2E0A00B28C14 /* Promise+Web3+TxPool.swift */; }; B350A445E5DB35C60E59AD70 /* libPods-web3swift-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57F8C9C48884592DCF561393 /* libPods-web3swift-macOS.a */; }; @@ -360,6 +362,7 @@ 81FECD63211AF162006DA367 /* web3swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "web3swift-Bridging-Header.h"; sourceTree = ""; }; 8349531F1984454E50389370 /* libPods-web3swift-iOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-iOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8675751D91DB2DBC9E7A3469 /* libPods-web3swift-macOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-macOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC777.swift"; sourceTree = ""; }; 985BFD49216CE8B100B28C14 /* Web3+TxPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+TxPool.swift"; sourceTree = ""; }; 985BFD4D216E2E0A00B28C14 /* Promise+Web3+TxPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Promise+Web3+TxPool.swift"; sourceTree = ""; }; A5E8AF69880F5141B4AC9DF0 /* libPods-web3swift-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -610,6 +613,7 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + 9196A68921B9F0B100852ED0 /* ERC777 */, E2E94C5E2177886C005F54A0 /* ERC721 */, 8159C50621343ED300197B91 /* ERC20 */, ); @@ -794,6 +798,14 @@ name = Pods; sourceTree = ""; }; + 9196A68921B9F0B100852ED0 /* ERC777 */ = { + isa = PBXGroup; + children = ( + 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */, + ); + path = ERC777; + sourceTree = ""; + }; E228BD8921A4492A0085268C /* web3swiftLegacy */ = { isa = PBXGroup; children = ( @@ -1295,6 +1307,7 @@ 81C0FCF220440EB500D82FAF /* Web3+Protocols.swift in Sources */, 81C0FCF420440F0900D82FAF /* Web3+Options.swift in Sources */, 81A1822E20D67BC30016741F /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */, + 9196A68B21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */, 81A1824020D79FDB0016741F /* Promise+Web3+Eth+EstimateGas.swift in Sources */, 81909D1221862D17007D2AE5 /* Web3+ReadingTransaction.swift in Sources */, 81A1822B20D67A1B0016741F /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */, @@ -1416,6 +1429,7 @@ 8103BBCD2077B84400499769 /* PlainKeystore.swift in Sources */, 4194813D203630530065A83B /* RIPEMD160+StackOveflow.swift in Sources */, 4194813E203630530065A83B /* Data+Extension.swift in Sources */, + 9196A68C21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */, 81A1822F20D67BC30016741F /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */, 81A1822C20D67A1B0016741F /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */, 81909D1321862D17007D2AE5 /* Web3+ReadingTransaction.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift new file mode 100644 index 000000000..b0eb15609 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -0,0 +1,348 @@ +// +// Web3+ERC777.swift +// web3swift +// +// Created by Anton Grigorev on 07/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import PromiseKit +import EthereumAddress + +// This namespace contains functions to work with ERC721 tokens. +// can be imperatively read and saved +public class ERC777 { + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _totalSupply: BigUInt? = nil + private var _granularity: BigUInt? = nil + private var _defaultOperators: [EthereumAddress]? = nil + + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + + lazy var contract: web3.web3contract = { + // TODO: - need erc777abi + let contract = self.web3.contract(Web3.Utils.erc777ABI, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 18 + } + + public var totalSupply: BigUInt { + self.readProperties() + if self._totalSupply != nil { + return self._totalSupply! + } + return 0 + } + + public var granularity: BigUInt { + self.readProperties() + if self._granularity != nil { + return self._granularity! + } + return 1 + } + + public var defaultOperators: [EthereumAddress] { + self.readProperties() + if self._defaultOperators != nil { + return self._defaultOperators! + } + return [] + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let granularityPromise = contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let defaultOperatorsPromise = contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise, granularityPromise, defaultOperatorsPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} + guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} + self._totalSupply = totalSupply + + guard case .fulfilled(let granularityResult) = resolvedPromises[4] else {return} + guard let granularity = granularityResult["0"] as? BigUInt else {return} + self._granularity = granularity + + guard case .fulfilled(let defaultOperatorsResult) = resolvedPromises[5] else {return} + guard let defaultOperators = defaultOperatorsResult["0"] as? [EthereumAddress] else {return} + self._defaultOperators = defaultOperators + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt{ + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + /// ERC777 methods + public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorFor", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("send", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("operatorSend", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index 934b759a0..ee2fd6957 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -72,6 +72,1737 @@ extension Web3.Utils { /// Precoded ERC20 contracts ABI. Output parameters are named for ease of use. public static var erc20ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + /// Precoded ERC777 contracts ABI. Output parameters are named for ease of use. + public static var erc777ABI = """ +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensReceived", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "userData", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensToSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + }, + { + "name": "implementer", + "type": "address" + } + ], + "name": "setInterfaceImplementer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getManager", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "newManager", + "type": "address" + } + ], + "name": "setManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + } + ], + "name": "getInterfaceImplementer", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } +] +""" + public static var erc721ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" public static var ensRegistryABI = """ [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] From 80c03b545e6cfddd97e211f791d0c6709740ede2 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:21:48 +0300 Subject: [PATCH 03/28] fixed erc721 --- .../ERC721/Web3+ERC721.swift | 70 ++++++++++++++++++- 1 file changed, 67 insertions(+), 3 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index d4abab516..eb458e601 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -9,9 +9,32 @@ import BigInt import PromiseKit import EthereumAddress +protocol IERC721 { + + func getBalance(account: EthereumAddress) throws -> BigUInt + + func getOwner(tokenId: BigUInt) throws -> EthereumAddress + + func tokenByIndex(index: BigUInt) throws -> BigUInt + + func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt + + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction + + func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction + + func approve(approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction + + func setApprovalForAll(operator address: EthereumAddress, approved: Bool) throws -> WriteTransaction + + func getApproved(tokenId: BigUInt) throws -> EthereumAddress + + func isApprovedForAll(operator address: EthereumAddress, approved: Bool) throws -> Bool +} + // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC721 { +public class ERC721: IERC721 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -20,6 +43,7 @@ public class ERC721 { private var _symbol: String? = nil private var _tokenId: BigUInt? = nil private var _tokenURI: String? = nil + private var _totalSupply: BigUInt? = nil private var _hasReadProperties: Bool = false public var transactionOptions: TransactionOptions @@ -74,6 +98,14 @@ public class ERC721 { return "" } + public var totalSupply: BigUInt { + self.readProperties() + if self._totalSupply != nil { + return self._totalSupply! + } + return 0 + } + public func readProperties() { if self._hasReadProperties { return @@ -90,7 +122,9 @@ public class ERC721 { guard let tokenURIpromise = contract.read("tokenURI", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - let allPromises = [namePromise, symbolPromise, tokenIdPromise, tokenURIpromise] + guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, tokenIdPromise, tokenURIpromise, totalSupplyPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} @@ -109,6 +143,10 @@ public class ERC721 { guard let uri = tokenURIresult["0"] as? String else {return} self._tokenURI = uri + guard case .fulfilled(let totalSupplyResult) = resolvedPromises[4] else {return} + guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} + self._totalSupply = totalSupply + self._hasReadProperties = true }.wait() } @@ -122,7 +160,7 @@ public class ERC721 { return res } - public func getOwner(tokenId: BigUInt) throws -> EthereumAddress{ + public func getOwner(tokenId: BigUInt) throws -> EthereumAddress { let contract = self.contract var transactionOptions = TransactionOptions() transactionOptions.callOnBlock = .latest @@ -178,4 +216,30 @@ public class ERC721 { return tx } + public func approve(approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.callOnBlock = .latest + + let tx = contract.write("approve", parameters: [approved, tokenId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setApprovalForAll(operator address: EthereumAddress, approved: Bool) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.callOnBlock = .latest + + let tx = contract.write("setApprovalForAll", parameters: [address, approved] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isApprovedForAll(operator address: EthereumAddress, approved: Bool) throws -> Bool { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.callOnBlock = .latest + let result = try contract.read("setApprovalForAll", parameters: [address, approved] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } } From de705838e923f5f1bfc53452fad4d90e4a74befa Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:31:30 +0300 Subject: [PATCH 04/28] small fix --- web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index eb458e601..3571a462c 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -216,19 +216,19 @@ public class ERC721: IERC721 { return tx } - public func approve(approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { + public func approve(from: EthereumAddress, approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() - basicOptions.callOnBlock = .latest + basicOptions.from = from let tx = contract.write("approve", parameters: [approved, tokenId] as [AnyObject], transactionOptions: basicOptions)! return tx } - public func setApprovalForAll(operator address: EthereumAddress, approved: Bool) throws -> WriteTransaction { + public func setApprovalForAll(operator address: EthereumAddress, from: EthereumAddress, approved: Bool) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() - basicOptions.callOnBlock = .latest + basicOptions.from = from let tx = contract.write("setApprovalForAll", parameters: [address, approved] as [AnyObject], transactionOptions: basicOptions)! return tx From a0b15f1c62e0ca837b2992c2131d7428b73a106c Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:35:19 +0300 Subject: [PATCH 05/28] very small fix --- web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index 3571a462c..f50f80a68 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -23,9 +23,9 @@ protocol IERC721 { func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction - func approve(approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction + func approve(from: EthereumAddress, approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction - func setApprovalForAll(operator address: EthereumAddress, approved: Bool) throws -> WriteTransaction + func setApprovalForAll(operator address: EthereumAddress, from: EthereumAddress, approved: Bool) throws -> WriteTransaction func getApproved(tokenId: BigUInt) throws -> EthereumAddress From e37b60613585fe796fe9bddaf4cf94a3db92277c Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:40:25 +0300 Subject: [PATCH 06/28] small fix --- .../ERC777/Web3+ERC777.swift | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index b0eb15609..554278e6c 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -11,6 +11,21 @@ import BigInt import PromiseKit import EthereumAddress +protocol IERC777 { + func getBalance(account: EthereumAddress) throws -> BigUInt + func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt + func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction + func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction + func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction +} + // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved public class ERC777 { @@ -144,7 +159,7 @@ public class ERC777 { }.wait() } - public func getBalance(account: EthereumAddress) throws -> BigUInt{ + public func getBalance(account: EthereumAddress) throws -> BigUInt { let contract = self.contract var transactionOptions = TransactionOptions() transactionOptions.callOnBlock = .latest From 7e11e650cfcaf992bf36b39257dda8ac1ffd0d94 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:41:22 +0300 Subject: [PATCH 07/28] last small fix --- web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index f50f80a68..7b449fb98 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -238,7 +238,7 @@ public class ERC721: IERC721 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.callOnBlock = .latest - let result = try contract.read("setApprovalForAll", parameters: [address, approved] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + let result = try contract.read("isApprovedForAll", parameters: [address, approved] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} return res } From 0d4ead1b10003e20818694ba40ad37d542293893 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Thu, 13 Dec 2018 20:52:58 +0300 Subject: [PATCH 08/28] added protocol and method --- .../ERC20/Web3+ERC20.swift | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift index 82f1eaa6b..4030deae0 100644 --- a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift +++ b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift @@ -9,10 +9,19 @@ import BigInt import EthereumAddress import PromiseKit +protocol IERC20 { + func getBalance(account: EthereumAddress) throws -> BigUInt + func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt + func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction + func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction + func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction +} + // This namespace contains functions to work with ERC20 tokens. // variables are lazyly evaluated or global token information (name, ticker, total supply) // can be imperatively read and saved -public class ERC20 { +public class ERC20: IERC20 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -99,7 +108,7 @@ public class ERC20 { }.wait() } - func getBalance(account: EthereumAddress) throws -> BigUInt{ + public func getBalance(account: EthereumAddress) throws -> BigUInt { let contract = self.contract var transactionOptions = TransactionOptions() transactionOptions.callOnBlock = .latest @@ -185,5 +194,26 @@ public class ERC20 { return tx } + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } } From 496e17302a9b4a3bbc133a0eed1f1dcfc4f45ff4 Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Fri, 14 Dec 2018 01:39:46 +0300 Subject: [PATCH 09/28] Update Web3+ERC777.swift --- web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index 554278e6c..1041cc17b 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -28,7 +28,7 @@ protocol IERC777 { // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC777 { +public class ERC777: IERC777 { private var _name: String? = nil private var _symbol: String? = nil From 900eaad3ae1ffb683255527ecdff7fb71af87d32 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 02:32:20 +0300 Subject: [PATCH 10/28] added protocol erc1400 --- web3swift.xcodeproj/project.pbxproj | 12 ++++ .../ERC1400/Web3+ERC1400.swift | 67 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 7afc31c4e..a01646450 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -210,6 +210,7 @@ E228BED021A4C89F0085268C /* Web3Legacy+Eth.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BEC921A4C89E0085268C /* Web3Legacy+Eth.swift */; }; E228BED121A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; E228BED221A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; + E279C9EC21C316D90081695F /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EB21C316D90081695F /* Web3+ERC1400.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; @@ -390,6 +391,7 @@ E23B5ADC20EA685D00DC7F32 /* web3swift_EIP67_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_EIP67_Tests.swift; sourceTree = ""; }; E23B5AE020EA695400DC7F32 /* web3swift_rinkeby_personalSignature_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_rinkeby_personalSignature_Tests.swift; sourceTree = ""; }; E23B5AE220EA69B900DC7F32 /* web3swift_numberFormattingUtil_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_numberFormattingUtil_Tests.swift; sourceTree = ""; }; + E279C9EB21C316D90081695F /* Web3+ERC1400.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1400.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; @@ -610,6 +612,7 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E279C9EA21C316BE0081695F /* ERC1400 */, E2E94C5E2177886C005F54A0 /* ERC721 */, 8159C50621343ED300197B91 /* ERC20 */, ); @@ -945,6 +948,14 @@ path = Classes; sourceTree = ""; }; + E279C9EA21C316BE0081695F /* ERC1400 */ = { + isa = PBXGroup; + children = ( + E279C9EB21C316D90081695F /* Web3+ERC1400.swift */, + ); + path = ERC1400; + sourceTree = ""; + }; E2E94C5E2177886C005F54A0 /* ERC721 */ = { isa = PBXGroup; children = ( @@ -1227,6 +1238,7 @@ 81C0FCF720441A1D00D82FAF /* TransactionSigner.swift in Sources */, 8125F06920499AC300A0F2FE /* BloomFilter.swift in Sources */, 810B0F9A1FEC446B00CF0DA2 /* Web3+JSONRPC.swift in Sources */, + E279C9EC21C316D90081695F /* Web3+ERC1400.swift in Sources */, 81195AB020D7FF8500ABC6B1 /* Promise+Web3+Contract+GetIndexedEvents.swift in Sources */, 81EB1E4B208173D7003BD47F /* Web3+Personal.swift in Sources */, E228BE7821A4492B0085268C /* Web3Legacy+BrowserFunctions.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift new file mode 100644 index 000000000..b13b60094 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift @@ -0,0 +1,67 @@ +// +// Web3+ERC1400.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 14/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +// ERC1400 = ERC20 + IERC1400 +protocol IERC1400 { + + // Document Management + func getDocument(name: Data) throws -> (String, Data) + func setDocument(name: Data, uri: String, documentHash: Data) throws -> WriteTransaction + + // Token Information + func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt + func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] + + // Transfers + func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Partition Token Transfers + func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Controller Operation + func isControllable() throws -> Bool + func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func controllerRedeem(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + + // Operator Management + func authorizeOperator(operator: EthereumAddress) throws -> WriteTransaction + func revokeOperator(operator: EthereumAddress) throws -> WriteTransaction + func authorizeOperatorByPartition(partition: Data, operator: EthereumAddress) throws -> WriteTransaction + func revokeOperatorByPartition(partition: Data, operator: EthereumAddress) throws -> WriteTransaction + + // Operator Information + func isOperator(operator: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func isOperatorForPartition(partition: Data, operator: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + + // Token Issuance + func isIssuable() throws -> Bool + func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) -> WriteTransaction + func issueByPartition(partition: Data, from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) -> WriteTransaction + + // Token Redemption + func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemFrom(tokenHolder: EthereumAddress, from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemByPartition(partition: Data, from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorRedeemByPartition(partition: Data, tokenHolder: EthereumAddress, from: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction + + // Transfer Validity + func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) +} + +// This namespace contains functions to work with ERC1400 tokens. +// variables are lazyly evaluated or global token information (name, ticker, total supply) +// can be imperatively read and saved From ca8de0d7dacc88808b3fa48e858dc1baa7be4eab Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 02:48:46 +0300 Subject: [PATCH 11/28] major fix erc721 --- .../ERC721/Web3+ERC721.swift | 124 ++++++++---------- 1 file changed, 58 insertions(+), 66 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index 7b449fb98..f05709830 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -15,10 +15,6 @@ protocol IERC721 { func getOwner(tokenId: BigUInt) throws -> EthereumAddress - func tokenByIndex(index: BigUInt) throws -> BigUInt - - func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt - func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction @@ -32,18 +28,33 @@ protocol IERC721 { func isApprovedForAll(operator address: EthereumAddress, approved: Bool) throws -> Bool } +protocol IERC721Metadata { + + func name() throws -> String + + func symbol() throws -> String + + func tokenURI(tokenId: BigUInt) throws -> String + +} + +protocol IERC721Enumerable { + + func totalSupply() throws -> BigUInt + + func tokenByIndex(index: BigUInt) throws -> BigUInt + + func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt +} + // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC721: IERC721 { +public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() - private var _name: String? = nil - private var _symbol: String? = nil private var _tokenId: BigUInt? = nil - private var _tokenURI: String? = nil - private var _totalSupply: BigUInt? = nil private var _hasReadProperties: Bool = false public var transactionOptions: TransactionOptions @@ -66,22 +77,6 @@ public class ERC721: IERC721 { self.transactionOptions = mergedOptions } - public var name: String { - self.readProperties() - if self._name != nil { - return self._name! - } - return "" - } - - public var symbol: String { - self.readProperties() - if self._symbol != nil { - return self._symbol! - } - return "" - } - public var tokenId: BigUInt { self.readProperties() if self._tokenId != nil { @@ -90,22 +85,6 @@ public class ERC721: IERC721 { return 0 } - public var tokenURI: String { - self.readProperties() - if self._tokenURI != nil { - return self._tokenURI! - } - return "" - } - - public var totalSupply: BigUInt { - self.readProperties() - if self._totalSupply != nil { - return self._totalSupply! - } - return 0 - } - public func readProperties() { if self._hasReadProperties { return @@ -114,39 +93,16 @@ public class ERC721: IERC721 { guard contract.contract.address != nil else {return} var transactionOptions = TransactionOptions.defaultOptions transactionOptions.callOnBlock = .latest - guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} guard let tokenIdPromise = contract.read("tokenId", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - guard let tokenURIpromise = contract.read("tokenURI", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - let allPromises = [namePromise, symbolPromise, tokenIdPromise, tokenURIpromise, totalSupplyPromise] + let allPromises = [tokenIdPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in - guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} - guard let name = nameResult["0"] as? String else {return} - self._name = name - - guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} - guard let symbol = symbolResult["0"] as? String else {return} - self._symbol = symbol - - guard case .fulfilled(let tokenIdResult) = resolvedPromises[2] else {return} + guard case .fulfilled(let tokenIdResult) = resolvedPromises[0] else {return} guard let tokenId = tokenIdResult["0"] as? BigUInt else {return} self._tokenId = tokenId - guard case .fulfilled(let tokenURIresult) = resolvedPromises[3] else {return} - guard let uri = tokenURIresult["0"] as? String else {return} - self._tokenURI = uri - - guard case .fulfilled(let totalSupplyResult) = resolvedPromises[4] else {return} - guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} - self._totalSupply = totalSupply - self._hasReadProperties = true }.wait() } @@ -242,4 +198,40 @@ public class ERC721: IERC721 { guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} return res } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func name() throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("name", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func symbol() throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("symbol", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func tokenURI(tokenId: BigUInt) throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenId", parameters: [tokenId] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } } From b29bdcb87cc18fd062e1a9ae165ea93015c1d47d Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 02:57:40 +0300 Subject: [PATCH 12/28] added comment --- web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index 1041cc17b..085016ae6 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -76,6 +76,7 @@ public class ERC777: IERC777 { return "" } + /// Must be 18! public var decimals: UInt8 { self.readProperties() if self._decimals != nil { From dba69e23e7b9ad82bb71d88340ed83b37fcddecd Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 03:02:05 +0300 Subject: [PATCH 13/28] erc1400 inherit from erc20 --- web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift index b13b60094..283c54a9e 100644 --- a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift +++ b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift @@ -65,3 +65,6 @@ protocol IERC1400 { // This namespace contains functions to work with ERC1400 tokens. // variables are lazyly evaluated or global token information (name, ticker, total supply) // can be imperatively read and saved +public class ERC1400: ERC20 { + +} From 1e4c498ed990a5d16f9eef6971bbb9d4b4e28155 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 16:13:58 +0300 Subject: [PATCH 14/28] erc1400 implemented --- .../ERC1400/Web3+ERC1400.swift | 482 +++++++++++++++++- 1 file changed, 467 insertions(+), 15 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift index 283c54a9e..daf5b0c19 100644 --- a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift +++ b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift @@ -16,7 +16,7 @@ protocol IERC1400 { // Document Management func getDocument(name: Data) throws -> (String, Data) - func setDocument(name: Data, uri: String, documentHash: Data) throws -> WriteTransaction + func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction // Token Information func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt @@ -28,33 +28,33 @@ protocol IERC1400 { // Partition Token Transfers func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction // Controller Operation func isControllable() throws -> Bool func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction - func controllerRedeem(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction // Operator Management - func authorizeOperator(operator: EthereumAddress) throws -> WriteTransaction - func revokeOperator(operator: EthereumAddress) throws -> WriteTransaction - func authorizeOperatorByPartition(partition: Data, operator: EthereumAddress) throws -> WriteTransaction - func revokeOperatorByPartition(partition: Data, operator: EthereumAddress) throws -> WriteTransaction + func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction // Operator Information - func isOperator(operator: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool - func isOperatorForPartition(partition: Data, operator: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool // Token Issuance func isIssuable() throws -> Bool - func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) -> WriteTransaction - func issueByPartition(partition: Data, from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) -> WriteTransaction + func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction // Token Redemption func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func redeemFrom(tokenHolder: EthereumAddress, from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func redeemByPartition(partition: Data, from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorRedeemByPartition(partition: Data, tokenHolder: EthereumAddress, from: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction + func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction // Transfer Validity func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) @@ -65,6 +65,458 @@ protocol IERC1400 { // This namespace contains functions to work with ERC1400 tokens. // variables are lazyly evaluated or global token information (name, ticker, total supply) // can be imperatively read and saved -public class ERC1400: ERC20 { +public class ERC1400: ERC20, IERC1400 { + public func getDocument(name: Data) throws -> (String, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getDocument", parameters: [name] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? (String, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + public func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setDocument", parameters: [name, uri, documentHash] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOfByPartition", parameters: [partition, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("partitionsOf", parameters: [tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [Data] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferWithData", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFromWithData", parameters: [originalOwner, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferByPartition", parameters: [partition, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorTransferByPartition", parameters: [partition, originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isControllable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isControllable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerTransfer", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerRedeem", parameters: [tokenHolder, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperator", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorForPartition", parameters: [partition, user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isIssuable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isIssuable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issue", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issueByPartition", parameters: [partition, tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeem", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemFrom", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemByPartition", parameters: [partition, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorRedeemByPartition", parameters: [partition, tokenHolder, value, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, partition, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } } From 871bf2d00881b493c6204013f154667f573731ae Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Fri, 14 Dec 2018 16:46:44 +0300 Subject: [PATCH 15/28] small fix --- .../PrecompiledContracts/ERC721/Web3+ERC721.swift | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index f05709830..112366bc2 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -21,11 +21,11 @@ protocol IERC721 { func approve(from: EthereumAddress, approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction - func setApprovalForAll(operator address: EthereumAddress, from: EthereumAddress, approved: Bool) throws -> WriteTransaction + func setApprovalForAll(from: EthereumAddress, operator user: EthereumAddress, approved: Bool) throws -> WriteTransaction func getApproved(tokenId: BigUInt) throws -> EthereumAddress - func isApprovedForAll(operator address: EthereumAddress, approved: Bool) throws -> Bool + func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress) throws -> Bool } protocol IERC721Metadata { @@ -181,20 +181,20 @@ public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { return tx } - public func setApprovalForAll(operator address: EthereumAddress, from: EthereumAddress, approved: Bool) throws -> WriteTransaction { + public func setApprovalForAll(from: EthereumAddress, operator user: EthereumAddress, approved: Bool) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from - let tx = contract.write("setApprovalForAll", parameters: [address, approved] as [AnyObject], transactionOptions: basicOptions)! + let tx = contract.write("setApprovalForAll", parameters: [user, approved] as [AnyObject], transactionOptions: basicOptions)! return tx } - public func isApprovedForAll(operator address: EthereumAddress, approved: Bool) throws -> Bool { + public func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress) throws -> Bool { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.callOnBlock = .latest - let result = try contract.read("isApprovedForAll", parameters: [address, approved] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + let result = try contract.read("isApprovedForAll", parameters: [owner, user] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} return res } From d3fe1c4ff96aa793dbf4a6912321fdd666d82076 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 02:05:02 +0300 Subject: [PATCH 16/28] added 165 protocol and support for it in 721 --- web3swift.xcodeproj/project.pbxproj | 12 ++++++++++++ .../ERC165/Web3+ERC165.swift | 18 ++++++++++++++++++ .../ERC721/Web3+ERC721.swift | 12 +++++++++++- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 7afc31c4e..eb489d118 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -210,6 +210,7 @@ E228BED021A4C89F0085268C /* Web3Legacy+Eth.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BEC921A4C89E0085268C /* Web3Legacy+Eth.swift */; }; E228BED121A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; E228BED221A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; + E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EE21C46A140081695F /* Web3+ERC165.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; @@ -390,6 +391,7 @@ E23B5ADC20EA685D00DC7F32 /* web3swift_EIP67_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_EIP67_Tests.swift; sourceTree = ""; }; E23B5AE020EA695400DC7F32 /* web3swift_rinkeby_personalSignature_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_rinkeby_personalSignature_Tests.swift; sourceTree = ""; }; E23B5AE220EA69B900DC7F32 /* web3swift_numberFormattingUtil_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_numberFormattingUtil_Tests.swift; sourceTree = ""; }; + E279C9EE21C46A140081695F /* Web3+ERC165.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC165.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; @@ -610,6 +612,7 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E279C9ED21C3F2970081695F /* ERC165 */, E2E94C5E2177886C005F54A0 /* ERC721 */, 8159C50621343ED300197B91 /* ERC20 */, ); @@ -945,6 +948,14 @@ path = Classes; sourceTree = ""; }; + E279C9ED21C3F2970081695F /* ERC165 */ = { + isa = PBXGroup; + children = ( + E279C9EE21C46A140081695F /* Web3+ERC165.swift */, + ); + path = ERC165; + sourceTree = ""; + }; E2E94C5E2177886C005F54A0 /* ERC721 */ = { isa = PBXGroup; children = ( @@ -1251,6 +1262,7 @@ 81A1823720D6E2BB0016741F /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */, 81909D51218DAEC0007D2AE5 /* Promise+Web3+Personal+CreateAccount.swift in Sources */, 818D16CF204D42910084D2A4 /* Web3+EventParser.swift in Sources */, + E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */, 81C5DA282072E18200424CD6 /* NativeTypesEncoding+Extensions.swift in Sources */, 8123E1C7200CBAC200B6D3AB /* Dictionary+Extension.swift in Sources */, E228BE7421A4492B0085268C /* Promise+Web3Legacy+Eth+Call.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift new file mode 100644 index 000000000..0150c6aef --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift @@ -0,0 +1,18 @@ +// +// Web3+ERC165.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 15/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import PromiseKit +import EthereumAddress + +protocol IERC165 { + + func supportsInterface(interfaceID: [UInt8]) throws -> Bool + +} diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index d4abab516..2e7cbf2a8 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -11,7 +11,7 @@ import EthereumAddress // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC721 { +public class ERC721: IERC165 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -178,4 +178,14 @@ public class ERC721 { return tx } + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + } From 0f144ddcdf77d360437fd159bd221642e12f5cc4 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 02:17:49 +0300 Subject: [PATCH 17/28] small refactor --- .../ERC721/Web3+ERC721.swift | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index 112366bc2..462081827 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -49,7 +49,7 @@ protocol IERC721Enumerable { // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { +public class ERC721: IERC721 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -134,24 +134,6 @@ public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { return res } - public func tokenByIndex(index: BigUInt) throws -> BigUInt { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("tokenByIndex", parameters: [index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("tokenOfOwnerByIndex", parameters: [owner, index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - public func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() @@ -199,6 +181,10 @@ public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { return res } +} + +extension ERC721: IERC721Enumerable { + public func totalSupply() throws -> BigUInt { let contract = self.contract var transactionOptions = TransactionOptions() @@ -208,6 +194,28 @@ public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { return res } + public func tokenByIndex(index: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenByIndex", parameters: [index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenOfOwnerByIndex", parameters: [owner, index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + +} + +extension ERC721: IERC721Metadata { + public func name() throws -> String { let contract = self.contract var transactionOptions = TransactionOptions() @@ -234,4 +242,5 @@ public class ERC721: IERC721, IERC721Enumerable, IERC721Metadata { guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} return res } + } From 72fb251005cd293ad83ecfacae241c2d4e6ab295 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 02:19:28 +0300 Subject: [PATCH 18/28] small refactor --- web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index 2e7cbf2a8..88a46c880 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -11,7 +11,7 @@ import EthereumAddress // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC721: IERC165 { +public class ERC721 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -178,6 +178,10 @@ public class ERC721: IERC165 { return tx } +} + +extension ERC721: IERC165 { + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { let contract = self.contract var transactionOptions = TransactionOptions() From ec81451c9944b08166e6069f5041c113135bd887 Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Sat, 15 Dec 2018 02:45:39 +0300 Subject: [PATCH 19/28] Revert "Added erc1400 precompiled contract" --- web3swift.xcodeproj/project.pbxproj | 11 - .../ERC1400/Web3+ERC1400.swift | 522 ------------------ 2 files changed, 533 deletions(-) delete mode 100644 web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index ee386164f..afbfbdfd6 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -212,7 +212,6 @@ E228BED021A4C89F0085268C /* Web3Legacy+Eth.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BEC921A4C89E0085268C /* Web3Legacy+Eth.swift */; }; E228BED121A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; E228BED221A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; - E279C9EC21C316D90081695F /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EB21C316D90081695F /* Web3+ERC1400.swift */; }; E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EE21C46A140081695F /* Web3+ERC165.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; @@ -395,7 +394,6 @@ E23B5ADC20EA685D00DC7F32 /* web3swift_EIP67_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_EIP67_Tests.swift; sourceTree = ""; }; E23B5AE020EA695400DC7F32 /* web3swift_rinkeby_personalSignature_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_rinkeby_personalSignature_Tests.swift; sourceTree = ""; }; E23B5AE220EA69B900DC7F32 /* web3swift_numberFormattingUtil_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_numberFormattingUtil_Tests.swift; sourceTree = ""; }; - E279C9EB21C316D90081695F /* Web3+ERC1400.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1400.swift"; sourceTree = ""; }; E279C9EE21C46A140081695F /* Web3+ERC165.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC165.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; @@ -617,7 +615,6 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( - E279C9EA21C316BE0081695F /* ERC1400 */, 9196A68921B9F0B100852ED0 /* ERC777 */, E279C9ED21C3F2970081695F /* ERC165 */, E2E94C5E2177886C005F54A0 /* ERC721 */, @@ -963,13 +960,6 @@ path = Classes; sourceTree = ""; }; - E279C9EA21C316BE0081695F /* ERC1400 */ = { - isa = PBXGroup; - children = ( - E279C9EB21C316D90081695F /* Web3+ERC1400.swift */, - ); - path = ERC1400; - sourceTree = ""; E279C9ED21C3F2970081695F /* ERC165 */ = { isa = PBXGroup; children = ( @@ -1260,7 +1250,6 @@ 81C0FCF720441A1D00D82FAF /* TransactionSigner.swift in Sources */, 8125F06920499AC300A0F2FE /* BloomFilter.swift in Sources */, 810B0F9A1FEC446B00CF0DA2 /* Web3+JSONRPC.swift in Sources */, - E279C9EC21C316D90081695F /* Web3+ERC1400.swift in Sources */, 81195AB020D7FF8500ABC6B1 /* Promise+Web3+Contract+GetIndexedEvents.swift in Sources */, 81EB1E4B208173D7003BD47F /* Web3+Personal.swift in Sources */, E228BE7821A4492B0085268C /* Web3Legacy+BrowserFunctions.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift deleted file mode 100644 index daf5b0c19..000000000 --- a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift +++ /dev/null @@ -1,522 +0,0 @@ -// -// Web3+ERC1400.swift -// web3swift-iOS -// -// Created by Anton Grigorev on 14/12/2018. -// Copyright © 2018 The Matter Inc. All rights reserved. -// - -import Foundation -import BigInt -import EthereumAddress -import PromiseKit - -// ERC1400 = ERC20 + IERC1400 -protocol IERC1400 { - - // Document Management - func getDocument(name: Data) throws -> (String, Data) - func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction - - // Token Information - func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt - func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] - - // Transfers - func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - - // Partition Token Transfers - func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction - - // Controller Operation - func isControllable() throws -> Bool - func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction - func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction - - // Operator Management - func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction - func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction - func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction - func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction - - // Operator Information - func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool - func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool - - // Token Issuance - func isIssuable() throws -> Bool - func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - - // Token Redemption - func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction - - // Transfer Validity - func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) - func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) - func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) -} - -// This namespace contains functions to work with ERC1400 tokens. -// variables are lazyly evaluated or global token information (name, ticker, total supply) -// can be imperatively read and saved -public class ERC1400: ERC20, IERC1400 { - public func getDocument(name: Data) throws -> (String, Data) { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("getDocument", parameters: [name] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? (String, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - - let tx = contract.write("setDocument", parameters: [name, uri, documentHash] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("balanceOfByPartition", parameters: [partition, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("partitionsOf", parameters: [tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? [Data] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("transferWithData", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("transferFromWithData", parameters: [originalOwner, to, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("transferByPartition", parameters: [partition, to, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("operatorTransferByPartition", parameters: [partition, originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func isControllable() throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("isControllable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("controllerTransfer", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("controllerRedeem", parameters: [tokenHolder, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - - let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - - let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - - let tx = contract.write("authorizeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - - let tx = contract.write("revokeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("isOperator", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("isOperatorForPartition", parameters: [partition, user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func isIssuable() throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("isIssuable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("issue", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("issueByPartition", parameters: [partition, tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("redeem", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("redeemFrom", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("redeemByPartition", parameters: [partition, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("operatorRedeemByPartition", parameters: [partition, tokenHolder, value, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let result = try contract.read("canTransfer", parameters: [to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let result = try contract.read("canTransfer", parameters: [originalOwner, to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let result = try contract.read("canTransfer", parameters: [originalOwner, to, partition, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? ([UInt8], Data, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } -} From 9570182470183ace1915d8e928ee21cefebbad12 Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Sat, 15 Dec 2018 02:46:07 +0300 Subject: [PATCH 20/28] Revert "Added erc777 precompiled contract" --- .../Public/BigInt/BigInt-iOS-umbrella.h | 2 +- .../Public/BigInt/BigInt-iOS.modulemap | 2 +- .../Public/BigInt/BigInt-macOS-umbrella.h | 2 +- .../Public/BigInt/BigInt-macOS.modulemap | 2 +- .../CryptoSwift/CryptoSwift-iOS-umbrella.h | 2 +- .../CryptoSwift/CryptoSwift-iOS.modulemap | 2 +- .../CryptoSwift/CryptoSwift-macOS-umbrella.h | 2 +- .../CryptoSwift/CryptoSwift-macOS.modulemap | 2 +- .../EthereumABI/EthereumABI-iOS-umbrella.h | 2 +- .../EthereumABI/EthereumABI-iOS.modulemap | 2 +- .../EthereumABI/EthereumABI-macOS-umbrella.h | 2 +- .../EthereumABI/EthereumABI-macOS.modulemap | 2 +- .../EthereumAddress-iOS-umbrella.h | 2 +- .../EthereumAddress-iOS.modulemap | 2 +- .../EthereumAddress-macOS-umbrella.h | 2 +- .../EthereumAddress-macOS.modulemap | 2 +- .../Public/PromiseKit/PromiseKit-umbrella.h | 2 +- .../Public/PromiseKit/PromiseKit.modulemap | 2 +- ...Kit.root-CorePromise-Foundation-umbrella.h | 2 +- ...eKit.root-CorePromise-Foundation.modulemap | 2 +- .../Public/Result/Result-iOS-umbrella.h | 2 +- .../Public/Result/Result-iOS.modulemap | 2 +- .../Public/Result/Result-macOS-umbrella.h | 2 +- .../Public/Result/Result-macOS.modulemap | 2 +- .../Public/SipHash/SipHash-iOS-umbrella.h | 2 +- .../Public/SipHash/SipHash-iOS.modulemap | 2 +- .../Public/SipHash/SipHash-macOS-umbrella.h | 2 +- .../Public/SipHash/SipHash-macOS.modulemap | 2 +- .../Public/SwiftRLP/SwiftRLP-iOS-umbrella.h | 2 +- .../Public/SwiftRLP/SwiftRLP-iOS.modulemap | 2 +- .../Public/SwiftRLP/SwiftRLP-macOS-umbrella.h | 2 +- .../Public/SwiftRLP/SwiftRLP-macOS.modulemap | 2 +- .../Public/scrypt/scrypt-iOS-umbrella.h | 2 +- .../Public/scrypt/scrypt-iOS.modulemap | 2 +- .../Public/scrypt/scrypt-macOS-umbrella.h | 2 +- .../Public/scrypt/scrypt-macOS.modulemap | 2 +- .../secp256k1_swift-iOS-umbrella.h | 2 +- .../secp256k1_swift-iOS.modulemap | 2 +- .../secp256k1_swift-macOS-umbrella.h | 2 +- .../secp256k1_swift-macOS.modulemap | 2 +- web3swift.xcodeproj/project.pbxproj | 14 - .../ERC777/Web3+ERC777.swift | 364 ---- web3swift/Web3/Classes/Web3+Utils.swift | 1731 ----------------- 43 files changed, 40 insertions(+), 2149 deletions(-) delete mode 100644 web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h index 16afa3a0c..54c439564 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap index ba43bbb44..5827ffd6f 120000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h index c3ee0d508..15cd9101e 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h +++ b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap index bd641c3af..db0458375 120000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap +++ b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h index 9c82822e9..38ee2e270 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap index 11d195f60..d3c8afa43 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h index 75d2d1a64..4f6598359 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap index fdd21eb6a..13bb9bda2 120000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h index 2bfc96860..372038959 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap index e4c1fe11f..ded50b1ab 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h index 296ae6f64..e72800bb6 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap index 8f1687a58..99eb1eb31 120000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h index 63dd90111..505dcdba1 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap index 564c53983..2e8de9c1b 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h index a71a370eb..45c29b7ea 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap index 39952c2eb..1814f3891 120000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h index 1de04831e..384f088cd 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap index 05d14d0fb..5b105d963 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h index 2215a97db..6026bec84 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap index cb55a7e03..515bc96ce 120000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS-umbrella.h b/Pods/Headers/Public/Result/Result-iOS-umbrella.h index 66e128f43..5017bcc62 120000 --- a/Pods/Headers/Public/Result/Result-iOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS.modulemap b/Pods/Headers/Public/Result/Result-iOS.modulemap index c19082802..a9cb518ea 120000 --- a/Pods/Headers/Public/Result/Result-iOS.modulemap +++ b/Pods/Headers/Public/Result/Result-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS-umbrella.h b/Pods/Headers/Public/Result/Result-macOS-umbrella.h index 2cd2be5b4..d933679ed 120000 --- a/Pods/Headers/Public/Result/Result-macOS-umbrella.h +++ b/Pods/Headers/Public/Result/Result-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS.modulemap b/Pods/Headers/Public/Result/Result-macOS.modulemap index 31357df43..6ff87c94a 120000 --- a/Pods/Headers/Public/Result/Result-macOS.modulemap +++ b/Pods/Headers/Public/Result/Result-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h index 4880a52a0..736829e4f 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap index e9597c3e1..363bde1c4 120000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h index 8f93caa8a..c56e6a45b 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h +++ b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap index 3d9b28ab7..835353525 120000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap +++ b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h index cfc099ecc..b77347325 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap index ec58169b3..ae407f989 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h index e2ad7b9b0..4740a4f84 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap index cc3bc63c5..d1421e204 120000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h index 0176eb75c..1c81cd5a7 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap index 29e617553..02bd8338d 120000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h index e915dea97..75f99866d 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h +++ b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap index 606bbe68b..2e33aed25 120000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap +++ b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h index bd5ff7f5d..70cc63a67 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap index 7470662b4..c5b6fa265 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h index 15f74edd9..d75b444d6 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap index 48a096319..c0e372d55 120000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap @@ -1 +1 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file +/Users/antongrigorev/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index afbfbdfd6..eb489d118 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -171,8 +171,6 @@ 81FB21FF207BB297007F9A83 /* EIP67Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81FB21F8207BA78B007F9A83 /* EIP67Code.swift */; }; 81FB2201207BC58C007F9A83 /* CoreImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2200207BC58B007F9A83 /* CoreImage.framework */; }; 81FB2203207BC6DB007F9A83 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81FB2202207BC6DB007F9A83 /* ImageIO.framework */; }; - 9196A68B21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */; }; - 9196A68C21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */; }; 985BFD4A216CE8B100B28C14 /* Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD49216CE8B100B28C14 /* Web3+TxPool.swift */; }; 985BFD4E216E2E0A00B28C14 /* Promise+Web3+TxPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 985BFD4D216E2E0A00B28C14 /* Promise+Web3+TxPool.swift */; }; B350A445E5DB35C60E59AD70 /* libPods-web3swift-macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57F8C9C48884592DCF561393 /* libPods-web3swift-macOS.a */; }; @@ -363,7 +361,6 @@ 81FECD63211AF162006DA367 /* web3swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "web3swift-Bridging-Header.h"; sourceTree = ""; }; 8349531F1984454E50389370 /* libPods-web3swift-iOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-iOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 8675751D91DB2DBC9E7A3469 /* libPods-web3swift-macOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-macOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC777.swift"; sourceTree = ""; }; 985BFD49216CE8B100B28C14 /* Web3+TxPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+TxPool.swift"; sourceTree = ""; }; 985BFD4D216E2E0A00B28C14 /* Promise+Web3+TxPool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Promise+Web3+TxPool.swift"; sourceTree = ""; }; A5E8AF69880F5141B4AC9DF0 /* libPods-web3swift-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-web3swift-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -615,7 +612,6 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( - 9196A68921B9F0B100852ED0 /* ERC777 */, E279C9ED21C3F2970081695F /* ERC165 */, E2E94C5E2177886C005F54A0 /* ERC721 */, 8159C50621343ED300197B91 /* ERC20 */, @@ -801,14 +797,6 @@ name = Pods; sourceTree = ""; }; - 9196A68921B9F0B100852ED0 /* ERC777 */ = { - isa = PBXGroup; - children = ( - 9196A68A21B9F0DA00852ED0 /* Web3+ERC777.swift */, - ); - path = ERC777; - sourceTree = ""; - }; E228BD8921A4492A0085268C /* web3swiftLegacy */ = { isa = PBXGroup; children = ( @@ -1319,7 +1307,6 @@ 81C0FCF220440EB500D82FAF /* Web3+Protocols.swift in Sources */, 81C0FCF420440F0900D82FAF /* Web3+Options.swift in Sources */, 81A1822E20D67BC30016741F /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */, - 9196A68B21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */, 81A1824020D79FDB0016741F /* Promise+Web3+Eth+EstimateGas.swift in Sources */, 81909D1221862D17007D2AE5 /* Web3+ReadingTransaction.swift in Sources */, 81A1822B20D67A1B0016741F /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */, @@ -1441,7 +1428,6 @@ 8103BBCD2077B84400499769 /* PlainKeystore.swift in Sources */, 4194813D203630530065A83B /* RIPEMD160+StackOveflow.swift in Sources */, 4194813E203630530065A83B /* Data+Extension.swift in Sources */, - 9196A68C21B9F0DA00852ED0 /* Web3+ERC777.swift in Sources */, 81A1822F20D67BC30016741F /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */, 81A1822C20D67A1B0016741F /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */, 81909D1321862D17007D2AE5 /* Web3+ReadingTransaction.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift deleted file mode 100644 index 085016ae6..000000000 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ /dev/null @@ -1,364 +0,0 @@ -// -// Web3+ERC777.swift -// web3swift -// -// Created by Anton Grigorev on 07/12/2018. -// Copyright © 2018 The Matter Inc. All rights reserved. -// - -import Foundation -import BigInt -import PromiseKit -import EthereumAddress - -protocol IERC777 { - func getBalance(account: EthereumAddress) throws -> BigUInt - func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt - func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction - func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction - func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction - func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction - func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction - func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool - func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction - func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction - func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction -} - -// This namespace contains functions to work with ERC721 tokens. -// can be imperatively read and saved -public class ERC777: IERC777 { - - private var _name: String? = nil - private var _symbol: String? = nil - private var _decimals: UInt8? = nil - private var _totalSupply: BigUInt? = nil - private var _granularity: BigUInt? = nil - private var _defaultOperators: [EthereumAddress]? = nil - - private var _hasReadProperties: Bool = false - - public var transactionOptions: TransactionOptions - public var web3: web3 - public var provider: Web3Provider - public var address: EthereumAddress - - lazy var contract: web3.web3contract = { - // TODO: - need erc777abi - let contract = self.web3.contract(Web3.Utils.erc777ABI, at: self.address, abiVersion: 2) - precondition(contract != nil) - return contract! - }() - - public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { - self.web3 = web3 - self.provider = provider - self.address = address - var mergedOptions = web3.transactionOptions - mergedOptions.to = address - self.transactionOptions = mergedOptions - } - - public var name: String { - self.readProperties() - if self._name != nil { - return self._name! - } - return "" - } - - public var symbol: String { - self.readProperties() - if self._symbol != nil { - return self._symbol! - } - return "" - } - - /// Must be 18! - public var decimals: UInt8 { - self.readProperties() - if self._decimals != nil { - return self._decimals! - } - return 18 - } - - public var totalSupply: BigUInt { - self.readProperties() - if self._totalSupply != nil { - return self._totalSupply! - } - return 0 - } - - public var granularity: BigUInt { - self.readProperties() - if self._granularity != nil { - return self._granularity! - } - return 1 - } - - public var defaultOperators: [EthereumAddress] { - self.readProperties() - if self._defaultOperators != nil { - return self._defaultOperators! - } - return [] - } - - public func readProperties() { - if self._hasReadProperties { - return - } - let contract = self.contract - guard contract.contract.address != nil else {return} - var transactionOptions = TransactionOptions.defaultOptions - transactionOptions.callOnBlock = .latest - guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let granularityPromise = contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let defaultOperatorsPromise = contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise, granularityPromise, defaultOperatorsPromise] - let queue = self.web3.requestDispatcher.queue - when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in - guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} - guard let name = nameResult["0"] as? String else {return} - self._name = name - - guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} - guard let symbol = symbolResult["0"] as? String else {return} - self._symbol = symbol - - guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} - guard let decimals = decimalsResult["0"] as? BigUInt else {return} - self._decimals = UInt8(decimals) - - guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} - guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} - self._totalSupply = totalSupply - - guard case .fulfilled(let granularityResult) = resolvedPromises[4] else {return} - guard let granularity = granularityResult["0"] as? BigUInt else {return} - self._granularity = granularity - - guard case .fulfilled(let defaultOperatorsResult) = resolvedPromises[5] else {return} - guard let defaultOperators = defaultOperatorsResult["0"] as? [EthereumAddress] else {return} - self._defaultOperators = defaultOperators - - self._hasReadProperties = true - }.wait() - } - - public func getBalance(account: EthereumAddress) throws -> BigUInt { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - - let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - /// ERC777 methods - public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.callOnBlock = .latest - - let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.callOnBlock = .latest - - let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - let result = try contract.read("isOperatorFor", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - - public func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - let tx = contract.write("send", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.to = self.address - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - let tx = contract.write("operatorSend", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - let tx = contract.write("burn", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! - return tx - } - - public func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { - let contract = self.contract - var basicOptions = TransactionOptions() - basicOptions.from = from - basicOptions.callOnBlock = .latest - - // get the decimals manually - let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() - var decimals = BigUInt(0) - guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { - throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} - decimals = decTyped - - let intDecimals = Int(decimals) - guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { - throw Web3Error.inputError(desc: "Can not parse inputted amount") - } - let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! - return tx - } -} diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index ee2fd6957..934b759a0 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -72,1737 +72,6 @@ extension Web3.Utils { /// Precoded ERC20 contracts ABI. Output parameters are named for ease of use. public static var erc20ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" - /// Precoded ERC777 contracts ABI. Output parameters are named for ease of use. - public static var erc777ABI = """ -[ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "defaultOperators", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "granularity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_operatorData", - "type": "bytes" - } - ], - "name": "operatorSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenHolder", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_operator", - "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "send", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_operator", - "type": "address" - }, - { - "name": "_tokenHolder", - "type": "address" - } - ], - "name": "isOperatorFor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_operator", - "type": "address" - } - ], - "name": "revokeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_tokenHolder", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_operatorData", - "type": "bytes" - } - ], - "name": "operatorBurn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_granularity", - "type": "uint256" - }, - { - "name": "_defaultOperators", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Sent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Minted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Burned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "AuthorizedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "RevokedOperator", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "defaultOperators", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "granularity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_operatorData", - "type": "bytes" - } - ], - "name": "operatorSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenHolder", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_operator", - "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "send", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_operator", - "type": "address" - }, - { - "name": "_tokenHolder", - "type": "address" - } - ], - "name": "isOperatorFor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_operator", - "type": "address" - } - ], - "name": "revokeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_tokenHolder", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - }, - { - "name": "_operatorData", - "type": "bytes" - } - ], - "name": "operatorBurn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "name": "_name", - "type": "string" - }, - { - "name": "_symbol", - "type": "string" - }, - { - "name": "_granularity", - "type": "uint256" - }, - { - "name": "_defaultOperators", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Sent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Minted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Burned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "AuthorizedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "RevokedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "defaultOperators", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "granularity", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" - } - ], - "name": "operatorSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - } - ], - "name": "authorizeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "send", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "tokenHolder", - "type": "address" - } - ], - "name": "isOperatorFor", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - } - ], - "name": "revokeOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" - } - ], - "name": "operatorBurn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Sent", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Minted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "name": "operatorData", - "type": "bytes" - } - ], - "name": "Burned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "AuthorizedOperator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "name": "tokenHolder", - "type": "address" - } - ], - "name": "RevokedOperator", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" - } - ], - "name": "tokensReceived", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "userData", - "type": "bytes" - }, - { - "name": "operatorData", - "type": "bytes" - } - ], - "name": "tokensToSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "iHash", - "type": "bytes32" - }, - { - "name": "implementer", - "type": "address" - } - ], - "name": "setInterfaceImplementer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - } - ], - "name": "getManager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "newManager", - "type": "address" - } - ], - "name": "setManager", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "addr", - "type": "address" - }, - { - "name": "iHash", - "type": "bytes32" - } - ], - "name": "getInterfaceImplementer", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } -] -""" - public static var erc721ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" public static var ensRegistryABI = """ [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] From 6968d2dba58d121f9e4f28129c44034df8ad0954 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 03:35:51 +0300 Subject: [PATCH 21/28] correctly fixed and added erc20, 165, 721, 777, 820 --- web3swift.xcodeproj/project.pbxproj | 24 + .../ERC165/Web3+ERC165.swift | 3 - .../ERC20/Web3+ERC20.swift | 17 +- .../ERC777/Web3+ERC777.swift | 433 +++++ .../ERC820/Web3+ERC820.swift | 19 + web3swift/Web3/Classes/Web3+Utils.swift | 1730 +++++++++++++++++ 6 files changed, 2222 insertions(+), 4 deletions(-) create mode 100644 web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift create mode 100644 web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index eb489d118..946225af1 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -211,6 +211,8 @@ E228BED121A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; E228BED221A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E228BECA21A4C89F0085268C /* Web3Legacy+Instance.swift */; }; E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EE21C46A140081695F /* Web3+ERC165.swift */; }; + E279C9F521C47B4A0081695F /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F421C47B4A0081695F /* Web3+ERC777.swift */; }; + E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F721C47CD00081695F /* Web3+ERC820.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; @@ -392,6 +394,8 @@ E23B5AE020EA695400DC7F32 /* web3swift_rinkeby_personalSignature_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_rinkeby_personalSignature_Tests.swift; sourceTree = ""; }; E23B5AE220EA69B900DC7F32 /* web3swift_numberFormattingUtil_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = web3swift_numberFormattingUtil_Tests.swift; sourceTree = ""; }; E279C9EE21C46A140081695F /* Web3+ERC165.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC165.swift"; sourceTree = ""; }; + E279C9F421C47B4A0081695F /* Web3+ERC777.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC777.swift"; sourceTree = ""; }; + E279C9F721C47CD00081695F /* Web3+ERC820.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC820.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; @@ -612,6 +616,8 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E279C9F621C47CC10081695F /* ERC820 */, + E279C9F321C47B3B0081695F /* ERC777 */, E279C9ED21C3F2970081695F /* ERC165 */, E2E94C5E2177886C005F54A0 /* ERC721 */, 8159C50621343ED300197B91 /* ERC20 */, @@ -956,6 +962,22 @@ path = ERC165; sourceTree = ""; }; + E279C9F321C47B3B0081695F /* ERC777 */ = { + isa = PBXGroup; + children = ( + E279C9F421C47B4A0081695F /* Web3+ERC777.swift */, + ); + path = ERC777; + sourceTree = ""; + }; + E279C9F621C47CC10081695F /* ERC820 */ = { + isa = PBXGroup; + children = ( + E279C9F721C47CD00081695F /* Web3+ERC820.swift */, + ); + path = ERC820; + sourceTree = ""; + }; E2E94C5E2177886C005F54A0 /* ERC721 */ = { isa = PBXGroup; children = ( @@ -1259,6 +1281,7 @@ 81FB21FE207BB297007F9A83 /* EIP67Code.swift in Sources */, 81A1821A20D5A6F70016741F /* Promise+HttpProvider.swift in Sources */, E228BECD21A4C89F0085268C /* Web3Legacy+Contract.swift in Sources */, + E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */, 81A1823720D6E2BB0016741F /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */, 81909D51218DAEC0007D2AE5 /* Promise+Web3+Personal+CreateAccount.swift in Sources */, 818D16CF204D42910084D2A4 /* Web3+EventParser.swift in Sources */, @@ -1307,6 +1330,7 @@ 81C0FCF220440EB500D82FAF /* Web3+Protocols.swift in Sources */, 81C0FCF420440F0900D82FAF /* Web3+Options.swift in Sources */, 81A1822E20D67BC30016741F /* Promise+Web3+Eth+GetTransactionReceipt.swift in Sources */, + E279C9F521C47B4A0081695F /* Web3+ERC777.swift in Sources */, 81A1824020D79FDB0016741F /* Promise+Web3+Eth+EstimateGas.swift in Sources */, 81909D1221862D17007D2AE5 /* Web3+ReadingTransaction.swift in Sources */, 81A1822B20D67A1B0016741F /* Promise+Web3+Eth+GetTransactionDetails.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift index 0150c6aef..1875c0bef 100644 --- a/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift +++ b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift @@ -7,9 +7,6 @@ // import Foundation -import BigInt -import PromiseKit -import EthereumAddress protocol IERC165 { diff --git a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift index 4030deae0..31e0d05a0 100644 --- a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift +++ b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift @@ -29,6 +29,7 @@ public class ERC20: IERC20 { private var _name: String? = nil private var _symbol: String? = nil private var _decimals: UInt8? = nil + private var _totalSupply: BigUInt? = nil private var _hasReadProperties: Bool = false public var transactionOptions: TransactionOptions @@ -75,6 +76,14 @@ public class ERC20: IERC20 { return 255 } + public var totalSupply: BigUInt { + self.readProperties() + if self._totalSupply != nil { + return self._totalSupply! + } + return 0 + } + public func readProperties() { if self._hasReadProperties { return @@ -88,8 +97,10 @@ public class ERC20: IERC20 { guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - let allPromises = [namePromise, symbolPromise, decimalPromise] + let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} @@ -104,6 +115,10 @@ public class ERC20: IERC20 { guard let decimals = decimalsResult["0"] as? BigUInt else {return} self._decimals = UInt8(decimals) + guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} + guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} + self._totalSupply = totalSupply + self._hasReadProperties = true }.wait() } diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift new file mode 100644 index 000000000..0d2d8d346 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -0,0 +1,433 @@ +// +// Web3+ERC777.swift +// web3swift +// +// Created by Anton Grigorev on 07/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// +import Foundation +import BigInt +import PromiseKit +import EthereumAddress + +protocol IERC777 { + func getBalance(account: EthereumAddress) throws -> BigUInt + func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt + func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction + func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction + func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction +} + +// This namespace contains functions to work with ERC721 tokens. +// can be imperatively read and saved +public class ERC777: IERC777 { + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _totalSupply: BigUInt? = nil + private var _granularity: BigUInt? = nil + private var _defaultOperators: [EthereumAddress]? = nil + + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + + lazy var contract: web3.web3contract = { + // TODO: - need erc777abi + let contract = self.web3.contract(Web3.Utils.erc777ABI, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + /// Must be 18! + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 18 + } + + public var totalSupply: BigUInt { + self.readProperties() + if self._totalSupply != nil { + return self._totalSupply! + } + return 0 + } + + public var granularity: BigUInt { + self.readProperties() + if self._granularity != nil { + return self._granularity! + } + return 1 + } + + public var defaultOperators: [EthereumAddress] { + self.readProperties() + if self._defaultOperators != nil { + return self._defaultOperators! + } + return [] + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let granularityPromise = contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let defaultOperatorsPromise = contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise, granularityPromise, defaultOperatorsPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} + guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} + self._totalSupply = totalSupply + + guard case .fulfilled(let granularityResult) = resolvedPromises[4] else {return} + guard let granularity = granularityResult["0"] as? BigUInt else {return} + self._granularity = granularity + + guard case .fulfilled(let defaultOperatorsResult) = resolvedPromises[5] else {return} + guard let defaultOperators = defaultOperatorsResult["0"] as? [EthereumAddress] else {return} + self._defaultOperators = defaultOperators + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + /// ERC777 methods + public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorFor", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("send", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("operatorSend", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} + +extension ERC777: IERC165 { + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} + +extension ERC777: IERC820 { + public func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("canImplementInterfaceForAddress", parameters: [interfaceHash, addr] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getInterfaceImplementer(addr: EthereumAddress, interfaceHash: Data) throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getInterfaceImplementer", parameters: [addr, interfaceHash] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func setInterfaceImplementer(from: EthereumAddress, addr: EthereumAddress, interfaceHash: Data, implementer: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setInterfaceImplementer", parameters: [addr, interfaceHash, implementer] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setManager(from: EthereumAddress, addr: EthereumAddress, newManager: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setManager", parameters: [addr, newManager] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func interfaceHash(interfaceName: String) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("interfaceHash", parameters: [interfaceName] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func updateERC165Cache(from: EthereumAddress, contract: EthereumAddress, interfaceId: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("updateERC165Cache", parameters: [contract, interfaceId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + +} diff --git a/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift b/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift new file mode 100644 index 000000000..1b0d51c57 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift @@ -0,0 +1,19 @@ +// +// Web3+ERC820.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 15/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import EthereumAddress + +protocol IERC820 { + func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data + func getInterfaceImplementer(addr: EthereumAddress, interfaceHash: Data) throws -> EthereumAddress + func setInterfaceImplementer(from: EthereumAddress, addr: EthereumAddress, interfaceHash: Data, implementer: EthereumAddress) throws -> WriteTransaction + func setManager(from: EthereumAddress, addr: EthereumAddress, newManager: EthereumAddress) throws -> WriteTransaction + func interfaceHash(interfaceName: String) throws -> Data + func updateERC165Cache(from: EthereumAddress, contract: EthereumAddress, interfaceId: [UInt8]) throws -> WriteTransaction +} diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index 934b759a0..a50793caa 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -73,6 +73,1736 @@ extension Web3.Utils { public static var erc20ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" public static var erc721ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" + /// Precoded ERC777 contracts ABI. Output parameters are named for ease of use. + public static var erc777ABI = """ +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensReceived", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "userData", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensToSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + }, + { + "name": "implementer", + "type": "address" + } + ], + "name": "setInterfaceImplementer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getManager", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "newManager", + "type": "address" + } + ], + "name": "setManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + } + ], + "name": "getInterfaceImplementer", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } +] +""" public static var ensRegistryABI = """ [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] """ From 62f3fd270a901e92201ac0912c2f213c85212a78 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 03:53:21 +0300 Subject: [PATCH 22/28] fixed erc777 and 1400 - need to add correct abi for 1400 and check abi for 777 --- web3swift.xcodeproj/project.pbxproj | 12 + .../ERC1400/Web3+ERC1400.swift | 730 ++++++++++++++++++ .../ERC777/Web3+ERC777.swift | 23 +- web3swift/Web3/Classes/Web3+Utils.swift | 3 + 4 files changed, 767 insertions(+), 1 deletion(-) create mode 100644 web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 946225af1..eaf4498fa 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -213,6 +213,7 @@ E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9EE21C46A140081695F /* Web3+ERC165.swift */; }; E279C9F521C47B4A0081695F /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F421C47B4A0081695F /* Web3+ERC777.swift */; }; E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F721C47CD00081695F /* Web3+ERC820.swift */; }; + E279C9FB21C4860F0081695F /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9FA21C4860F0081695F /* Web3+ERC1400.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; @@ -396,6 +397,7 @@ E279C9EE21C46A140081695F /* Web3+ERC165.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC165.swift"; sourceTree = ""; }; E279C9F421C47B4A0081695F /* Web3+ERC777.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC777.swift"; sourceTree = ""; }; E279C9F721C47CD00081695F /* Web3+ERC820.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC820.swift"; sourceTree = ""; }; + E279C9FA21C4860F0081695F /* Web3+ERC1400.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1400.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; @@ -616,6 +618,7 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E279C9F921C484400081695F /* ERC1400 */, E279C9F621C47CC10081695F /* ERC820 */, E279C9F321C47B3B0081695F /* ERC777 */, E279C9ED21C3F2970081695F /* ERC165 */, @@ -978,6 +981,14 @@ path = ERC820; sourceTree = ""; }; + E279C9F921C484400081695F /* ERC1400 */ = { + isa = PBXGroup; + children = ( + E279C9FA21C4860F0081695F /* Web3+ERC1400.swift */, + ); + path = ERC1400; + sourceTree = ""; + }; E2E94C5E2177886C005F54A0 /* ERC721 */ = { isa = PBXGroup; children = ( @@ -1284,6 +1295,7 @@ E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */, 81A1823720D6E2BB0016741F /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */, 81909D51218DAEC0007D2AE5 /* Promise+Web3+Personal+CreateAccount.swift in Sources */, + E279C9FB21C4860F0081695F /* Web3+ERC1400.swift in Sources */, 818D16CF204D42910084D2A4 /* Web3+EventParser.swift in Sources */, E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */, 81C5DA282072E18200424CD6 /* NativeTypesEncoding+Extensions.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift new file mode 100644 index 000000000..299100fc0 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift @@ -0,0 +1,730 @@ +// +// Web3+ERC1400.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 14/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +// ERC1400 = ERC20 + IERC1400 +protocol IERC1400 { + + // Document Management + func getDocument(name: Data) throws -> (String, Data) + func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction + + // Token Information + func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt + func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] + + // Transfers + func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Partition Token Transfers + func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + + // Controller Operation + func isControllable() throws -> Bool + func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + + // Operator Management + func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction + + // Operator Information + func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + + // Token Issuance + func isIssuable() throws -> Bool + func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Token Redemption + func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction + + // Transfer Validity + func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) +} + +// This namespace contains functions to work with ERC1400 tokens. +// variables are lazyly evaluated or global token information (name, ticker, total supply) +// can be imperatively read and saved +public class ERC1400: IERC20, IERC1400 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _totalSupply: BigUInt? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(Web3.Utils.erc1400ABI, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public var totalSupply: BigUInt { + self.readProperties() + if self._totalSupply != nil { + return self._totalSupply! + } + return 0 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} + guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} + self._totalSupply = totalSupply + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func getDocument(name: Data) throws -> (String, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getDocument", parameters: [name] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? (String, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setDocument", parameters: [name, uri, documentHash] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOfByPartition", parameters: [partition, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("partitionsOf", parameters: [tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [Data] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferWithData", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFromWithData", parameters: [originalOwner, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferByPartition", parameters: [partition, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorTransferByPartition", parameters: [partition, originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isControllable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isControllable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerTransfer", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerRedeem", parameters: [tokenHolder, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperator", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorForPartition", parameters: [partition, user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isIssuable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isIssuable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issue", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issueByPartition", parameters: [partition, tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeem", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemFrom", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemByPartition", parameters: [partition, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorRedeemByPartition", parameters: [partition, tokenHolder, value, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, partition, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index 0d2d8d346..63b58b98a 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -27,7 +27,7 @@ protocol IERC777 { // This namespace contains functions to work with ERC721 tokens. // can be imperatively read and saved -public class ERC777: IERC777 { +public class ERC777: IERC20, IERC777 { private var _name: String? = nil private var _symbol: String? = nil @@ -429,5 +429,26 @@ extension ERC777: IERC820 { return tx } + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } } diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index a50793caa..d91aad10d 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -1806,6 +1806,9 @@ extension Web3.Utils { public static var ensRegistryABI = """ [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] """ + /// TODO: - Need to add correct ABI for ERC1400 + /// Precoded ERC1400 contracts ABI. Output parameters are named for ease of use. + public static var erc1400ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" //function setAddr(bytes32 node, address addr) public static var resolverABI = """ From a659b97d9ed8e670d8e9de60e9e1621a080d7166 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 04:01:50 +0300 Subject: [PATCH 23/28] min fix --- Podfile.lock | 2 +- .../Public/BigInt/BigInt-iOS-umbrella.h | 17 +- .../Public/BigInt/BigInt-iOS.modulemap | 8 +- .../Public/BigInt/BigInt-macOS-umbrella.h | 17 +- .../Public/BigInt/BigInt-macOS.modulemap | 8 +- .../CryptoSwift/CryptoSwift-iOS-umbrella.h | 17 +- .../CryptoSwift/CryptoSwift-iOS.modulemap | 8 +- .../CryptoSwift/CryptoSwift-macOS-umbrella.h | 17 +- .../CryptoSwift/CryptoSwift-macOS.modulemap | 8 +- .../EthereumABI/EthereumABI-iOS-umbrella.h | 18 +- .../EthereumABI/EthereumABI-iOS.modulemap | 8 +- .../EthereumABI/EthereumABI-macOS-umbrella.h | 18 +- .../EthereumABI/EthereumABI-macOS.modulemap | 8 +- .../EthereumAddress-iOS-umbrella.h | 18 +- .../EthereumAddress-iOS.modulemap | 8 +- .../EthereumAddress-macOS-umbrella.h | 18 +- .../EthereumAddress-macOS.modulemap | 8 +- .../Public/PromiseKit/PromiseKit-umbrella.h | 27 +- .../Public/PromiseKit/PromiseKit.modulemap | 8 +- ...Kit.root-CorePromise-Foundation-umbrella.h | 24 +- ...eKit.root-CorePromise-Foundation.modulemap | 8 +- .../Public/Result/Result-iOS-umbrella.h | 17 +- .../Public/Result/Result-iOS.modulemap | 8 +- .../Public/Result/Result-macOS-umbrella.h | 17 +- .../Public/Result/Result-macOS.modulemap | 8 +- .../Public/SipHash/SipHash-iOS-umbrella.h | 17 +- .../Public/SipHash/SipHash-iOS.modulemap | 8 +- .../Public/SipHash/SipHash-macOS-umbrella.h | 17 +- .../Public/SipHash/SipHash-macOS.modulemap | 8 +- .../Public/SwiftRLP/SwiftRLP-iOS-umbrella.h | 18 +- .../Public/SwiftRLP/SwiftRLP-iOS.modulemap | 8 +- .../Public/SwiftRLP/SwiftRLP-macOS-umbrella.h | 18 +- .../Public/SwiftRLP/SwiftRLP-macOS.modulemap | 8 +- .../Public/scrypt/scrypt-iOS-umbrella.h | 18 +- .../Public/scrypt/scrypt-iOS.modulemap | 8 +- .../Public/scrypt/scrypt-macOS-umbrella.h | 18 +- .../Public/scrypt/scrypt-macOS.modulemap | 8 +- .../secp256k1_swift-iOS-umbrella.h | 20 +- .../secp256k1_swift-iOS.modulemap | 8 +- .../secp256k1_swift-macOS-umbrella.h | 20 +- .../secp256k1_swift-macOS.modulemap | 8 +- Pods/Manifest.lock | 2 +- Pods/Pods.xcodeproj/project.pbxproj | 3418 +++++++++-------- .../BigInt-iOS/BigInt-iOS.xcconfig | 3 +- .../BigInt-macOS/BigInt-macOS.xcconfig | 3 +- .../CryptoSwift-iOS/CryptoSwift-iOS.xcconfig | 2 +- .../CryptoSwift-macOS.xcconfig | 2 +- .../EthereumABI-iOS/EthereumABI-iOS.xcconfig | 5 +- .../EthereumABI-macOS.xcconfig | 5 +- .../EthereumAddress-iOS.xcconfig | 3 +- .../EthereumAddress-macOS.xcconfig | 3 +- .../Pods-web3swift-iOS-resources.sh | 118 + .../Pods-web3swift-iOS.debug.xcconfig | 6 +- .../Pods-web3swift-iOS.release.xcconfig | 6 +- ...3swift-iOS_Tests-acknowledgements.markdown | 196 + ...web3swift-iOS_Tests-acknowledgements.plist | 256 ++ .../Pods-web3swift-iOS_Tests-frameworks.sh | 146 + .../Pods-web3swift-iOS_Tests-resources.sh | 118 + .../Pods-web3swift-iOS_Tests-umbrella.h | 16 + .../Pods-web3swift-iOS_Tests.debug.xcconfig | 8 +- .../Pods-web3swift-iOS_Tests.modulemap | 6 + .../Pods-web3swift-iOS_Tests.release.xcconfig | 8 +- .../Pods-web3swift-macOS-resources.sh | 118 + .../Pods-web3swift-macOS.debug.xcconfig | 6 +- .../Pods-web3swift-macOS.release.xcconfig | 6 +- ...wift-macOS_Tests-acknowledgements.markdown | 196 + ...b3swift-macOS_Tests-acknowledgements.plist | 256 ++ .../Pods-web3swift-macOS_Tests-frameworks.sh | 146 + .../Pods-web3swift-macOS_Tests-resources.sh | 118 + .../Pods-web3swift-macOS_Tests-umbrella.h | 16 + .../Pods-web3swift-macOS_Tests.debug.xcconfig | 8 +- .../Pods-web3swift-macOS_Tests.modulemap | 6 + ...ods-web3swift-macOS_Tests.release.xcconfig | 8 +- ...seKit.root-CorePromise-Foundation.xcconfig | 3 +- .../PromiseKit/PromiseKit.xcconfig | 3 +- .../Result-iOS/Result-iOS.xcconfig | 2 +- .../Result-macOS/Result-macOS.xcconfig | 2 +- .../SipHash-iOS/SipHash-iOS.xcconfig | 2 +- .../SipHash-macOS/SipHash-macOS.xcconfig | 2 +- .../SwiftRLP-iOS/SwiftRLP-iOS.xcconfig | 3 +- .../SwiftRLP-macOS/SwiftRLP-macOS.xcconfig | 3 +- .../scrypt-iOS/scrypt-iOS.xcconfig | 5 +- .../scrypt-macOS/scrypt-macOS.xcconfig | 5 +- .../secp256k1_swift-iOS.xcconfig | 6 +- .../secp256k1_swift-macOS.xcconfig | 6 +- .../ERC777/Web3+ERC777.swift | 2 +- 86 files changed, 4173 insertions(+), 1618 deletions(-) mode change 120000 => 100644 Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/BigInt/BigInt-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/BigInt/BigInt-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/PromiseKit/PromiseKit.modulemap mode change 120000 => 100644 Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap mode change 120000 => 100644 Pods/Headers/Public/Result/Result-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/Result/Result-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/Result/Result-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/Result/Result-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/SipHash/SipHash-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/SipHash/SipHash-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/scrypt/scrypt-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/scrypt/scrypt-macOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap mode change 120000 => 100644 Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h mode change 120000 => 100644 Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap create mode 100755 Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS-resources.sh create mode 100755 Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-frameworks.sh create mode 100755 Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-resources.sh create mode 100644 Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-umbrella.h create mode 100644 Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap create mode 100755 Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS-resources.sh create mode 100755 Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-frameworks.sh create mode 100755 Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-resources.sh create mode 100644 Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-umbrella.h create mode 100644 Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap diff --git a/Podfile.lock b/Podfile.lock index c66bc7947..e1e61777c 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -63,4 +63,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 72534436a5f24d6d07a676642432e134a85ff3e5 -COCOAPODS: 1.6.0.beta.2 +COCOAPODS: 1.5.3 diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h deleted file mode 120000 index 16afa3a0c..000000000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h new file mode 100644 index 000000000..e3d2506e1 --- /dev/null +++ b/Pods/Headers/Public/BigInt/BigInt-iOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double BigIntVersionNumber; +FOUNDATION_EXPORT const unsigned char BigIntVersionString[]; + diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap deleted file mode 120000 index ba43bbb44..000000000 --- a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap new file mode 100644 index 000000000..4eae580c5 --- /dev/null +++ b/Pods/Headers/Public/BigInt/BigInt-iOS.modulemap @@ -0,0 +1,7 @@ +module BigInt { + umbrella header "BigInt-iOS-umbrella.h" + exclude header "BigInt-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h deleted file mode 120000 index c3ee0d508..000000000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h new file mode 100644 index 000000000..bde66664c --- /dev/null +++ b/Pods/Headers/Public/BigInt/BigInt-macOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double BigIntVersionNumber; +FOUNDATION_EXPORT const unsigned char BigIntVersionString[]; + diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap deleted file mode 120000 index bd641c3af..000000000 --- a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap new file mode 100644 index 000000000..63d12e8af --- /dev/null +++ b/Pods/Headers/Public/BigInt/BigInt-macOS.modulemap @@ -0,0 +1,7 @@ +module BigInt { + umbrella header "BigInt-macOS-umbrella.h" + exclude header "BigInt-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h deleted file mode 120000 index 9c82822e9..000000000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h new file mode 100644 index 000000000..e93efa884 --- /dev/null +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double CryptoSwiftVersionNumber; +FOUNDATION_EXPORT const unsigned char CryptoSwiftVersionString[]; + diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap deleted file mode 120000 index 11d195f60..000000000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap new file mode 100644 index 000000000..33880aa56 --- /dev/null +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap @@ -0,0 +1,7 @@ +module CryptoSwift { + umbrella header "CryptoSwift-iOS-umbrella.h" + exclude header "CryptoSwift-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h deleted file mode 120000 index 75d2d1a64..000000000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h new file mode 100644 index 000000000..ad69315c4 --- /dev/null +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double CryptoSwiftVersionNumber; +FOUNDATION_EXPORT const unsigned char CryptoSwiftVersionString[]; + diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap deleted file mode 120000 index fdd21eb6a..000000000 --- a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap new file mode 100644 index 000000000..76cf15e80 --- /dev/null +++ b/Pods/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap @@ -0,0 +1,7 @@ +module CryptoSwift { + umbrella header "CryptoSwift-macOS-umbrella.h" + exclude header "CryptoSwift-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h deleted file mode 120000 index 2bfc96860..000000000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h new file mode 100644 index 000000000..d0c9e02c9 --- /dev/null +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "EthereumABI.h" + +FOUNDATION_EXPORT double EthereumABIVersionNumber; +FOUNDATION_EXPORT const unsigned char EthereumABIVersionString[]; + diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap deleted file mode 120000 index e4c1fe11f..000000000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap new file mode 100644 index 000000000..aafb8ce82 --- /dev/null +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap @@ -0,0 +1,7 @@ +module EthereumABI { + umbrella header "EthereumABI-iOS-umbrella.h" + exclude header "EthereumABI-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h deleted file mode 120000 index 296ae6f64..000000000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h new file mode 100644 index 000000000..c01fbff6a --- /dev/null +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "EthereumABI.h" + +FOUNDATION_EXPORT double EthereumABIVersionNumber; +FOUNDATION_EXPORT const unsigned char EthereumABIVersionString[]; + diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap deleted file mode 120000 index 8f1687a58..000000000 --- a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap new file mode 100644 index 000000000..676927a57 --- /dev/null +++ b/Pods/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap @@ -0,0 +1,7 @@ +module EthereumABI { + umbrella header "EthereumABI-macOS-umbrella.h" + exclude header "EthereumABI-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h deleted file mode 120000 index 63dd90111..000000000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h new file mode 100644 index 000000000..d19195a1e --- /dev/null +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "EthereumAddress.h" + +FOUNDATION_EXPORT double EthereumAddressVersionNumber; +FOUNDATION_EXPORT const unsigned char EthereumAddressVersionString[]; + diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap deleted file mode 120000 index 564c53983..000000000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap new file mode 100644 index 000000000..9df80dae3 --- /dev/null +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap @@ -0,0 +1,7 @@ +module EthereumAddress { + umbrella header "EthereumAddress-iOS-umbrella.h" + exclude header "EthereumAddress-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h deleted file mode 120000 index a71a370eb..000000000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h new file mode 100644 index 000000000..ab4ebeafa --- /dev/null +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "EthereumAddress.h" + +FOUNDATION_EXPORT double EthereumAddressVersionNumber; +FOUNDATION_EXPORT const unsigned char EthereumAddressVersionString[]; + diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap deleted file mode 120000 index 39952c2eb..000000000 --- a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap new file mode 100644 index 000000000..3a8fe9f18 --- /dev/null +++ b/Pods/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap @@ -0,0 +1,7 @@ +module EthereumAddress { + umbrella header "EthereumAddress-macOS-umbrella.h" + exclude header "EthereumAddress-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h deleted file mode 120000 index 1de04831e..000000000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h new file mode 100644 index 000000000..4a0b02de6 --- /dev/null +++ b/Pods/Headers/Public/PromiseKit/PromiseKit-umbrella.h @@ -0,0 +1,26 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "fwd.h" +#import "AnyPromise.h" +#import "PromiseKit.h" +#import "NSURLSession+AnyPromise.h" +#import "NSTask+AnyPromise.h" +#import "NSNotificationCenter+AnyPromise.h" +#import "PMKFoundation.h" +#import "PMKUIKit.h" +#import "UIView+AnyPromise.h" +#import "UIViewController+AnyPromise.h" + +FOUNDATION_EXPORT double PromiseKitVersionNumber; +FOUNDATION_EXPORT const unsigned char PromiseKitVersionString[]; + diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap deleted file mode 120000 index 05d14d0fb..000000000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit/PromiseKit.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap new file mode 100644 index 000000000..31f1aa5b4 --- /dev/null +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.modulemap @@ -0,0 +1,7 @@ +module PromiseKit { + umbrella header "PromiseKit-umbrella.h" + exclude header "PromiseKit.root-CorePromise-Foundation-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h deleted file mode 120000 index 2215a97db..000000000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h new file mode 100644 index 000000000..90525d22e --- /dev/null +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h @@ -0,0 +1,23 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "fwd.h" +#import "AnyPromise.h" +#import "PromiseKit.h" +#import "NSURLSession+AnyPromise.h" +#import "NSTask+AnyPromise.h" +#import "NSNotificationCenter+AnyPromise.h" +#import "PMKFoundation.h" + +FOUNDATION_EXPORT double PromiseKitVersionNumber; +FOUNDATION_EXPORT const unsigned char PromiseKitVersionString[]; + diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap deleted file mode 120000 index cb55a7e03..000000000 --- a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap new file mode 100644 index 000000000..8831a9e8c --- /dev/null +++ b/Pods/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap @@ -0,0 +1,7 @@ +module PromiseKit { + umbrella header "PromiseKit.root-CorePromise-Foundation-umbrella.h" + exclude header "PromiseKit-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/Result/Result-iOS-umbrella.h b/Pods/Headers/Public/Result/Result-iOS-umbrella.h deleted file mode 120000 index 66e128f43..000000000 --- a/Pods/Headers/Public/Result/Result-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS-umbrella.h b/Pods/Headers/Public/Result/Result-iOS-umbrella.h new file mode 100644 index 000000000..25f5eb129 --- /dev/null +++ b/Pods/Headers/Public/Result/Result-iOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double ResultVersionNumber; +FOUNDATION_EXPORT const unsigned char ResultVersionString[]; + diff --git a/Pods/Headers/Public/Result/Result-iOS.modulemap b/Pods/Headers/Public/Result/Result-iOS.modulemap deleted file mode 120000 index c19082802..000000000 --- a/Pods/Headers/Public/Result/Result-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-iOS/Result-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-iOS.modulemap b/Pods/Headers/Public/Result/Result-iOS.modulemap new file mode 100644 index 000000000..a5389d10c --- /dev/null +++ b/Pods/Headers/Public/Result/Result-iOS.modulemap @@ -0,0 +1,7 @@ +module Result { + umbrella header "Result-iOS-umbrella.h" + exclude header "Result-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/Result/Result-macOS-umbrella.h b/Pods/Headers/Public/Result/Result-macOS-umbrella.h deleted file mode 120000 index 2cd2be5b4..000000000 --- a/Pods/Headers/Public/Result/Result-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS-umbrella.h b/Pods/Headers/Public/Result/Result-macOS-umbrella.h new file mode 100644 index 000000000..43e81ac3c --- /dev/null +++ b/Pods/Headers/Public/Result/Result-macOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double ResultVersionNumber; +FOUNDATION_EXPORT const unsigned char ResultVersionString[]; + diff --git a/Pods/Headers/Public/Result/Result-macOS.modulemap b/Pods/Headers/Public/Result/Result-macOS.modulemap deleted file mode 120000 index 31357df43..000000000 --- a/Pods/Headers/Public/Result/Result-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/Result-macOS/Result-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/Result/Result-macOS.modulemap b/Pods/Headers/Public/Result/Result-macOS.modulemap new file mode 100644 index 000000000..68af722db --- /dev/null +++ b/Pods/Headers/Public/Result/Result-macOS.modulemap @@ -0,0 +1,7 @@ +module Result { + umbrella header "Result-macOS-umbrella.h" + exclude header "Result-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h deleted file mode 120000 index 4880a52a0..000000000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h new file mode 100644 index 000000000..65aec28d8 --- /dev/null +++ b/Pods/Headers/Public/SipHash/SipHash-iOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double SipHashVersionNumber; +FOUNDATION_EXPORT const unsigned char SipHashVersionString[]; + diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap deleted file mode 120000 index e9597c3e1..000000000 --- a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap new file mode 100644 index 000000000..fd9c26573 --- /dev/null +++ b/Pods/Headers/Public/SipHash/SipHash-iOS.modulemap @@ -0,0 +1,7 @@ +module SipHash { + umbrella header "SipHash-iOS-umbrella.h" + exclude header "SipHash-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h deleted file mode 120000 index 8f93caa8a..000000000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h new file mode 100644 index 000000000..ae5b2f0b7 --- /dev/null +++ b/Pods/Headers/Public/SipHash/SipHash-macOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double SipHashVersionNumber; +FOUNDATION_EXPORT const unsigned char SipHashVersionString[]; + diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap deleted file mode 120000 index 3d9b28ab7..000000000 --- a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap new file mode 100644 index 000000000..045b59e80 --- /dev/null +++ b/Pods/Headers/Public/SipHash/SipHash-macOS.modulemap @@ -0,0 +1,7 @@ +module SipHash { + umbrella header "SipHash-macOS-umbrella.h" + exclude header "SipHash-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h deleted file mode 120000 index cfc099ecc..000000000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h new file mode 100644 index 000000000..c819e55b6 --- /dev/null +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SwiftRLP.h" + +FOUNDATION_EXPORT double SwiftRLPVersionNumber; +FOUNDATION_EXPORT const unsigned char SwiftRLPVersionString[]; + diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap deleted file mode 120000 index ec58169b3..000000000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap new file mode 100644 index 000000000..873026516 --- /dev/null +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap @@ -0,0 +1,7 @@ +module SwiftRLP { + umbrella header "SwiftRLP-iOS-umbrella.h" + exclude header "SwiftRLP-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h deleted file mode 120000 index e2ad7b9b0..000000000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h new file mode 100644 index 000000000..bfe75850f --- /dev/null +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "SwiftRLP.h" + +FOUNDATION_EXPORT double SwiftRLPVersionNumber; +FOUNDATION_EXPORT const unsigned char SwiftRLPVersionString[]; + diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap deleted file mode 120000 index cc3bc63c5..000000000 --- a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap new file mode 100644 index 000000000..5e8affee4 --- /dev/null +++ b/Pods/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap @@ -0,0 +1,7 @@ +module SwiftRLP { + umbrella header "SwiftRLP-macOS-umbrella.h" + exclude header "SwiftRLP-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h deleted file mode 120000 index 0176eb75c..000000000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h new file mode 100644 index 000000000..5dccb1b3e --- /dev/null +++ b/Pods/Headers/Public/scrypt/scrypt-iOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "scrypt.h" + +FOUNDATION_EXPORT double scryptVersionNumber; +FOUNDATION_EXPORT const unsigned char scryptVersionString[]; + diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap deleted file mode 120000 index 29e617553..000000000 --- a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap new file mode 100644 index 000000000..e95e8b4fc --- /dev/null +++ b/Pods/Headers/Public/scrypt/scrypt-iOS.modulemap @@ -0,0 +1,7 @@ +module scrypt { + umbrella header "scrypt-iOS-umbrella.h" + exclude header "scrypt-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h deleted file mode 120000 index e915dea97..000000000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h new file mode 100644 index 000000000..5a2597a63 --- /dev/null +++ b/Pods/Headers/Public/scrypt/scrypt-macOS-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "scrypt.h" + +FOUNDATION_EXPORT double scryptVersionNumber; +FOUNDATION_EXPORT const unsigned char scryptVersionString[]; + diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap deleted file mode 120000 index 606bbe68b..000000000 --- a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap new file mode 100644 index 000000000..16ca0df08 --- /dev/null +++ b/Pods/Headers/Public/scrypt/scrypt-macOS.modulemap @@ -0,0 +1,7 @@ +module scrypt { + umbrella header "scrypt-macOS-umbrella.h" + exclude header "scrypt-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h deleted file mode 120000 index bd5ff7f5d..000000000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h new file mode 100644 index 000000000..0390c804f --- /dev/null +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h @@ -0,0 +1,19 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "secp256k1.h" +#import "secp256k1_ecdh.h" +#import "secp256k1_recovery.h" + +FOUNDATION_EXPORT double secp256k1_swiftVersionNumber; +FOUNDATION_EXPORT const unsigned char secp256k1_swiftVersionString[]; + diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap deleted file mode 120000 index 7470662b4..000000000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap new file mode 100644 index 000000000..af83c0c4e --- /dev/null +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap @@ -0,0 +1,7 @@ +module secp256k1_swift { + umbrella header "secp256k1_swift-iOS-umbrella.h" + exclude header "secp256k1_swift-macOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h deleted file mode 120000 index 15f74edd9..000000000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h new file mode 100644 index 000000000..0b120cf70 --- /dev/null +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h @@ -0,0 +1,19 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "secp256k1.h" +#import "secp256k1_ecdh.h" +#import "secp256k1_recovery.h" + +FOUNDATION_EXPORT double secp256k1_swiftVersionNumber; +FOUNDATION_EXPORT const unsigned char secp256k1_swiftVersionString[]; + diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap deleted file mode 120000 index 48a096319..000000000 --- a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap +++ /dev/null @@ -1 +0,0 @@ -/Users/baldyash/Developer/web3swift/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap \ No newline at end of file diff --git a/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap new file mode 100644 index 000000000..6faec165d --- /dev/null +++ b/Pods/Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap @@ -0,0 +1,7 @@ +module secp256k1_swift { + umbrella header "secp256k1_swift-macOS-umbrella.h" + exclude header "secp256k1_swift-iOS-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index c66bc7947..e1e61777c 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -63,4 +63,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 72534436a5f24d6d07a676642432e134a85ff3e5 -COCOAPODS: 1.6.0.beta.2 +COCOAPODS: 1.5.3 diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 70a06ecce..b735f9e2b 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -10,51 +10,53 @@ 0020B3469BA74AE230A3980EAE138C7A /* field_10x26.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DCAB923DFB091E9F4A71F5FD29FEB40 /* field_10x26.h */; settings = {ATTRIBUTES = (Project, ); }; }; 01349159EBEDEB29A5C35BA3B387F596 /* Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = C174EE4F0CE9A869F2E898CFF8A36484 /* Poly1305.swift */; }; 0194087258D01A6AAD57DD0DCF7F9971 /* NoError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20EF6148A6A9322390DD71721B5343D /* NoError.swift */; }; - 030B22879409F834B4FD21C5F8DFDDCD /* field_10x26.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DCAB923DFB091E9F4A71F5FD29FEB40 /* field_10x26.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 01B4E9254DBEEDE181F55B19D9015863 /* ecdsa_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 022840F67B21B7E7901D7C85F27A911E /* field.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BCAAFEDF865BD7F6D1C36246EEE02A /* field.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0315EE301733CF0DE349A0C9B65C177F /* Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = C174EE4F0CE9A869F2E898CFF8A36484 /* Poly1305.swift */; }; - 0416379BA218FFDEAF901B16AD09831F /* CryptoSwift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B9103BCEE6F57F21DC2CDA536BA8D0F /* CryptoSwift-macOS-dummy.m */; }; + 03C77F570C319D6448CC9FC45B37AB0F /* CryptoSwift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C83AC33C26F743EA9D7563722721066 /* CryptoSwift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0416379BA218FFDEAF901B16AD09831F /* CryptoSwift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0C9A26C84B6D3262E7774E3CFFEA6D /* CryptoSwift-macOS-dummy.m */; }; + 04D7D60982BB2DD9B746F35E4494B314 /* scrypt-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BF4AECB94DC3BA1862359A2958924A32 /* scrypt-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 064BFC26007D3B4F4B963361B52F3099 /* Pods-web3swift-iOS_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1938EA02A3971FFC506F4AE3E29121A6 /* Pods-web3swift-iOS_Tests-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0698C088B99DA6A050F31AABA173ED61 /* AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = DF72EE1FD04A0B49CB495E9980F6B8A9 /* AnyPromise.m */; }; 06AFCBEE04085CA117D6CEA63CF64C27 /* NSObject+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E664638E84199C40F931B3593272F8D /* NSObject+Promise.swift */; }; 06E5B8C23C8BCD1E8F04C48C360B615E /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF71F803FD375964F60D0271834711E /* AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 079C35EF04A06B8593CF55F7E523BF25 /* eckey_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = E05424B44F6AFD35E237815F926FEEEB /* eckey_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0803200FCF34AD13D541A796839CFD8C /* ecmult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C93F4B7E331943729BE3CFC4F439C2A /* ecmult.h */; settings = {ATTRIBUTES = (Project, ); }; }; 098D227D8DAE7643ACDF1DBCE8AA4264 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5430F65435F42C41489D6A5D36494E0B /* Array+Extension.swift */; }; 09BAF87C5E1AF9E3EE4DEA24FF666E43 /* PCBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0CB4379D0092F51F5C1232B3CD03D3 /* PCBC.swift */; }; 09BF24BCE4F4A393B8E2A8FF610FA924 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A15DC755B12D8CCABB5B073B63856F /* Utils.swift */; }; 0A396743B4ADF0FA7C12FDF1BA2C5F14 /* CBCMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9883FCDA0DBDA6DCA8C5923AB1B3F45A /* CBCMAC.swift */; }; - 0ADC230F620426946507547899D899B6 /* SwiftRLP.h in Headers */ = {isa = PBXBuildFile; fileRef = B8EBC720E3207E6F08965D7549AAFEC6 /* SwiftRLP.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0B3D630F66F9E1B3BC7A654E42366967 /* field_10x26_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F7ED977AF2E31DEA78D850BDE6C9F601 /* field_10x26_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0B987FF04FAAC3E2C96DBE0C52BDBD62 /* field_5x52_int128_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FB6255E4560252B9DC0BE760F34C261 /* field_5x52_int128_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0BE78CEAD41114017D74519E3B67A0A2 /* Deprecations.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A9A0105BAE9E5BEE9ADD4B17A58DD8 /* Deprecations.swift */; }; 0C3EF791FBE499977F647EE7635CC4C9 /* Updatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DE68FEECDD098908A9003BDA40307F /* Updatable.swift */; }; 0C67CB16C374D9368E38EB149B7CEEF8 /* Thenable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 582D7324492EFDB22783F0B7B2FA6859 /* Thenable.swift */; }; 0D05ABBC7CC7C8489D2A4282581CA5E2 /* field_5x52_asm_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C96A2C2C3B9F8977AD08B6FBEDE552 /* field_5x52_asm_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 0E5539016575272AA3BFC2BEC1D7EB53 /* NSTask+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FFFD5E940B31BAEC3CCFD05B093B6F8 /* NSTask+AnyPromise.m */; }; - 0EE3C6323A8EDEAB638639DD05932581 /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6314619E8FCD5D07FBD2BA0BA5C58C15 /* ABIEncoding.swift */; }; - 0EF9D11A3631D7F8BE44552285F4A63F /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0F4BC161113C9EBF41626D66606EB70E /* ecdsa_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 0FA9B674BE83227DB456D1E8CDBD426A /* UIViewController+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = E94EF5B041036E702BC404B7118A8F9E /* UIViewController+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 103C1056FCEF16B87FAC9DC37BADA0AF /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = F7E0FE543A2A814147E52BD4424892FD /* fwd.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0ED119A1C97E44906885D6A763A8C85E /* num_gmp_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A69680CF78C97C6DA250B325FFD04251 /* num_gmp_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 11B9993FADEB6211B59663345DE5E978 /* lax_der_parsing.c in Sources */ = {isa = PBXBuildFile; fileRef = 4624EFF8C97C1CBAF2910297112CF9E8 /* lax_der_parsing.c */; }; 11D236D734F12042B70BB21010A7BB31 /* AES.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E6FCC003B1158AFE68C8101E9DC9B0 /* AES.swift */; }; 11F368D67F8A1E7E97B1DBD198C94069 /* UIView+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = EE9322C93C8E91E65E7CE9C01CB02F70 /* UIView+AnyPromise.m */; }; + 121DD0EAF125E14BB25B48EB3FD76B54 /* ABIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AA08906784FF9AA2B198938456276 /* ABIExtensions.swift */; }; 12E9BA35700BF9E489BC75ABC6088E61 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 874DB4C8A2FF4D5197C42063F7939C9A /* Result.swift */; }; - 13F006A331F4F7D1E7A9C31C925C8434 /* EthereumABI-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 98229C7D8E3906BD4C8DCD833704588C /* EthereumABI-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 149D4B201B632E438223FBA71B4394D3 /* Result-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0536186C77B05CB18765BFD4670AC3D1 /* Result-macOS-dummy.m */; }; - 153311AB46ACF9C1960DF5E52EF0E7B9 /* Result-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 279857EBC2D837FCAB656991E73C8C39 /* Result-iOS-dummy.m */; }; + 149D4B201B632E438223FBA71B4394D3 /* Result-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 181506C85788407EF50AD45149AC2E91 /* Result-macOS-dummy.m */; }; + 153311AB46ACF9C1960DF5E52EF0E7B9 /* Result-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A62A996E150BEC15618C743082DB6A6 /* Result-iOS-dummy.m */; }; 158F6BC9635AF0C4F8FCAD1FB913BB45 /* Division.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDB10140BE59AEE481C7E08EDC79971D /* Division.swift */; }; + 15AB2F50D1D00D9B27D065D2475F213A /* field_5x52_asm_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C96A2C2C3B9F8977AD08B6FBEDE552 /* field_5x52_asm_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 162C34742BB8CDD3E2987A46C854F282 /* NoError.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20EF6148A6A9322390DD71721B5343D /* NoError.swift */; }; 16430D1306BA11693EFE55BE2052FBEB /* Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3654C41FDB74088592DA713158476E5B /* Padding.swift */; }; 16DEF17C280AFAD959ECEED27F7FDCD6 /* AnyPromise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C4ACD478692712EEF2FF8BB7F4A160 /* AnyPromise.swift */; }; 1726CE463B9A337870F28E208B8F268E /* BlockModeOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CBF6B2F887499D9631619E0D53008D /* BlockModeOptions.swift */; }; 1736288FC9BC2391AF96F9CCBA1A27D2 /* SHA2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840549A6DE0F91C91EE1712E3C57D6ED /* SHA2.swift */; }; - 187B191D2E4399E1567DB24BD93F0486 /* SipHash-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BF0D275DC3AF207D0A444A28CB773AA5 /* SipHash-macOS-dummy.m */; }; + 187B191D2E4399E1567DB24BD93F0486 /* SipHash-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C25A231A9C942A2334AE3430ED146FF4 /* SipHash-macOS-dummy.m */; }; + 18C1BE4FA70828DB6F911129EAA11C89 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */; }; 1904E18F6CE01618BBBC1B31E43B64EA /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2AB0FA3FFAC3EBB0D9CACE786196AC1 /* BigUInt.swift */; }; 193CE1B123F216F0140298A506854F9D /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = C04C575F1277CF14F506F691F9C669FC /* Random.swift */; }; 1974CBE5CBA7E90AF2951744F9F700DA /* Cimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F106BE3FED3F7D139A061124A9FF0251 /* Cimpl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 1A05748E830513D5B126B463DC61CA60 /* libsecp256k1-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 12EC94EA370709920BAE52B23A048E1A /* libsecp256k1-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1A363E92509740E616D5D1B3DAA1312B /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */; }; 1A8FE1E286DA1769792CED41CA55E329 /* UInt16+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E5CE0F5663064C7672E5299F1B3B7DF /* UInt16+Extension.swift */; }; 1AAC341916DC64CD28D08BDFED57AC9C /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F4B350BCCE6D995C937B1D56E4F9022 /* Shifts.swift */; }; - 1ACFA20B8643D974578D0B37E658A0A9 /* libsecp256k1-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 12EC94EA370709920BAE52B23A048E1A /* libsecp256k1-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 1BB795BAAF1BEEBEFEC7CB4790454E62 /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B4899E422658B96ADF84B5239C418D /* ABIElements.swift */; }; 1BEB60D584CDD65F08A874EC1961CE4C /* scalar_low_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A051E774D4D49F8D0B94D9E529E3A524 /* scalar_low_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 1C4DEFB88F8A0938532DA2184D2402AC /* NSURLSession+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49C5823B0C264F4AC2DF38C68F097FEA /* NSURLSession+Promise.swift */; }; 1D68B343368ADE35129C5CDCCDCCD468 /* group_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F74127A936A7C34D38E84140D1EFAC /* group_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; @@ -63,16 +65,12 @@ 1EAE65FB4A140803FE03F605B5B9AA82 /* Cryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F2F682F960F536C585085773DF5BBA1 /* Cryptor.swift */; }; 1F193DAAE1079FC10178E752783B032F /* scratch_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9C2CC8E90A38FD011723EB814A5A52 /* scratch_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 201B3540FF03FB8315A0024F4467C68F /* race.swift in Sources */ = {isa = PBXBuildFile; fileRef = C799FC61BB50110B0EF9812635A7CF8F /* race.swift */; }; - 213DE58F64F93C8508CCDEBE7CBD97D4 /* scalar_8x32.h in Headers */ = {isa = PBXBuildFile; fileRef = E9FDE304B6122EEAE8A1FC91742A69E6 /* scalar_8x32.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2143F6BFBCB27696AC66E1E88312361D /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */; }; 219282246EF9A166FC2BD24AC6997C06 /* HKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFAEDF6DDF0B48C4B8E16F6F9C59A5F /* HKDF.swift */; }; 21B3C21C7A16A522F0F463F9FB046A5E /* field_5x52_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB4E2DA064200DDCD42C634CBC39977 /* field_5x52_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 21EB006D3FD9C27B88742E512E7B227D /* num.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D1B636300E29159DFA920C5BA2E5F7C /* num.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 22D545D72C019120381A23F2008D216E /* ecmult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C93F4B7E331943729BE3CFC4F439C2A /* ecmult.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2231925D7102929E7A1721C49E67687C /* scalar_4x64.h in Headers */ = {isa = PBXBuildFile; fileRef = E1999CB16AEF90FFCC762EC5BA3C538B /* scalar_4x64.h */; settings = {ATTRIBUTES = (Project, ); }; }; 22FF16F6223F01F3AA966B2E701CBF89 /* Generics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EF69CEB8B2C8F6223E5A84FF9855D71 /* Generics.swift */; }; 2369A748CC5CAD0D29225D30090B0131 /* Thenable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 582D7324492EFDB22783F0B7B2FA6859 /* Thenable.swift */; }; 2469775BF29544EFC833E726E761A6D5 /* AnyError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F90DB66AA0BD6E09A8253873368008F /* AnyError.swift */; }; - 2477779866B98A08454D05619FA403DC /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */; }; 24D38DE85704AB93DCA1AA003FBD6729 /* Bit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C1E2F71DB75395E28DC3213425381D /* Bit.swift */; }; 24ED5E0F58443FB2E91C07D5B453E591 /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */; settings = {ATTRIBUTES = (Project, ); }; }; 25851E22505E49BED0DF4DAE6C033724 /* Resolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = F265D345562C600DE93E2D4EA31ED76D /* Resolver.swift */; }; @@ -81,49 +79,52 @@ 2688E6C9E4E219F10E1154D94A3353B5 /* hang.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5583797A4DF2B5636D036CDD472CD0 /* hang.m */; }; 272DA3B8E6A36A340F174862DDF47CFA /* Checksum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C25934B3D3377624DF16153BF76578 /* Checksum.swift */; }; 279EAE9173342F41D610247C9B8788DE /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C619FA5855429D15B556163471403E5 /* CompactMap.swift */; }; - 28228E86E8A57346F45744E805645CC7 /* PromiseKit.root-CorePromise-Foundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0CDB938B1F875D679C20362C887E17 /* PromiseKit.root-CorePromise-Foundation-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 27AD12765F2F7C59671EC211F125FF24 /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */; }; + 286EB55739F1322FA8C0185F426F434F /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF71F803FD375964F60D0271834711E /* AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2893DBF89BC6DF6F5B4DEA3EB812DE67 /* EthereumAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 28BC3ADAB9B6B63952EA005DA075E95C /* Pods-web3swift-macOS_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B3A8A1265A6932800FDF40A5E65FEC7 /* Pods-web3swift-macOS_Tests-dummy.m */; }; + 2A597DB9821E29841E3086D393E6D4E6 /* scalar_low_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A051E774D4D49F8D0B94D9E529E3A524 /* scalar_low_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 2A7E41504F95438DB79E852FB720F8B8 /* join.m in Sources */ = {isa = PBXBuildFile; fileRef = C4D8573A6F8E2A67DD73406C5B3ECBB5 /* join.m */; }; - 2AB0EAF55461D364004CD6F3DAF5585B /* field.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BCAAFEDF865BD7F6D1C36246EEE02A /* field.h */; settings = {ATTRIBUTES = (Project, ); }; }; 2AE019C6FBE28F14BBCF9011859E76C2 /* CBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 224F4E958C4909EF47CB0A9F43F48030 /* CBC.swift */; }; + 2BBD6269E8521A88E3F711C622E83030 /* Result-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 63E8E6C2713484D5B4AD0653183EE4F0 /* Result-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 2C47366FB3A3D0F2A380489DC0AB4EC6 /* scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 07853D5BF50E26B878B7B1D18CF18F06 /* scrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 2C573766EEF17A6CCBC46524208BCA4D /* EthereumAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */; settings = {ATTRIBUTES = (Project, ); }; }; 2D6C2BF004933839288FE0AD05169574 /* secp256k1_ecdh.h in Headers */ = {isa = PBXBuildFile; fileRef = 516F61020B364118837B9099CD918F5F /* secp256k1_ecdh.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2DF2807737F6DD5182F8C60570AF907C /* EthereumAddress-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A8CC8DB81A8576E0CDA6232DA9B65C /* EthereumAddress-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 2EDCE4A3A80772C88E0B4031FE4D86C6 /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6E2E2ED41464CEB00832B492D67ECB /* Words and Bits.swift */; }; - 31280DB99D63393FE7EBF701C18A7151 /* secp256k1_ecdh.h in Headers */ = {isa = PBXBuildFile; fileRef = 516F61020B364118837B9099CD918F5F /* secp256k1_ecdh.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 31648EA9AB41381E4C683FCFD69B5B97 /* ABIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AA08906784FF9AA2B198938456276 /* ABIExtensions.swift */; }; 318456407793AD399D02863A812ED6DE /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = B468DE556C27A7C396C7B5ECC7DCF12E /* Operators.swift */; }; 31D346420CE39369D66215B21F8A3337 /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = B453F34A70203AF07F27C5AE1B2A0518 /* AES.Cryptors.swift */; }; 32DAD7BC31D1813B10BB3069A4E8A563 /* field.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BCAAFEDF865BD7F6D1C36246EEE02A /* field.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3370EFA2B6998962C5C99681EDD51645 /* secp256k1_recovery.h in Headers */ = {isa = PBXBuildFile; fileRef = B88C2E2D4B6E99B918E6E13EDA4AA4A0 /* secp256k1_recovery.h */; settings = {ATTRIBUTES = (Project, ); }; }; 337EA355DE058979DB126870227A42DF /* Floating Point Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0930D7CD22CBEC2C752C14A123807624 /* Floating Point Conversion.swift */; }; + 3389FCBD2470730A75AB56DDBDD268FD /* EthereumABI-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0948C74C9B59B1B0795D45CD959AC2 /* EthereumABI-macOS-dummy.m */; }; 33E0957D577926FA5916FE4D0A9A431A /* dispatch_promise.m in Sources */ = {isa = PBXBuildFile; fileRef = 247DF1F9FE8902AA1A74867E7854662F /* dispatch_promise.m */; }; - 341353A9C8AA2DF577CD96527EE2225D /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A2D1D0062F350907B747E2A192E438 /* ABIDecoding.swift */; }; 3415B2D18705344A178286314A9C0038 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = 874DB4C8A2FF4D5197C42063F7939C9A /* Result.swift */; }; + 34A2440C77BAABCB7427D34497EC3462 /* EthereumABI.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */; settings = {ATTRIBUTES = (Project, ); }; }; 354D68B8C8B6D4C003BDB91E8A1D680A /* String Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D5DF1B1384D6392013199F71BACD06 /* String Conversion.swift */; }; 359269757B7FED4424DD9489F42BBB49 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B99B34DE805578131F4C0D5BFE276614 /* SipHashable.swift */; }; 35D45B19269F07EA96E6F003C6A1F04D /* ChaCha20.swift in Sources */ = {isa = PBXBuildFile; fileRef = F62C08D51F07D8799AD6CB646A710F41 /* ChaCha20.swift */; }; + 369B8E9C4EC32889C016598A1BBE5B55 /* field_5x52_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB4E2DA064200DDCD42C634CBC39977 /* field_5x52_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 36C2EF6383C5AC055C114EF70ACFA6EE /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6314619E8FCD5D07FBD2BA0BA5C58C15 /* ABIEncoding.swift */; }; 377C6046F93E7409F3996D06ADAD4CC7 /* SipHashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B99B34DE805578131F4C0D5BFE276614 /* SipHashable.swift */; }; 3819CB7BE87DC385D208FF40C7199DEA /* AES+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9883A143C0F77B2C2AF7E05BF805F25 /* AES+Foundation.swift */; }; - 38261BBD61EB4CE9C0D8D02EFD788CC4 /* ecmult_gen_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A05629BB0205300B694B527AD16E56 /* ecmult_gen_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 384CC535308CA645694E4C8ABAAF97F5 /* hash_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A1687163A14D55D2EF896A97CD937491 /* hash_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 3851107FB3FA5A4E70BE628AF438BC19 /* Catchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96C4685C831E862AD0F75DC78A3A5B61 /* Catchable.swift */; }; 3867CF007FF0AC14F07271D9E60154CF /* UInt16+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E5CE0F5663064C7672E5299F1B3B7DF /* UInt16+Extension.swift */; }; - 3873EA28EA1C34A735654F3652FE1237 /* lax_der_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 58FEC74B279A9D31ADE339DE27E86FA9 /* lax_der_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 387F8491EE0600C1B119837221A22252 /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */; }; 38D8B82703E87B790A4D8C9B749644DF /* Comparable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE5DD5643C155A18A460273094ACDA1 /* Comparable.swift */; }; - 39681148F2D32BE962A511F427CD42ED /* secp256k1_swift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CC444A933C805567A3F012F3CEE72D08 /* secp256k1_swift-macOS-dummy.m */; }; - 3A611A77C4E834E1E7F375E6362DB0D7 /* Pods-web3swift-iOS_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B56F6A20A0CF698ECA0EDF6CF4CDD74 /* Pods-web3swift-iOS_Tests-dummy.m */; }; + 39681148F2D32BE962A511F427CD42ED /* secp256k1_swift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E3533F5E7BCF44674C622F4B65BF374 /* secp256k1_swift-macOS-dummy.m */; }; + 3A17B1ABF2315BA8C3C2BDC75D0F24FE /* scalar_low.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA2CC618DEF4A5E27ADED64FC6F96A5 /* scalar_low.h */; settings = {ATTRIBUTES = (Project, ); }; }; 3AC07C0FB85EDC81532D78FAB99C85B1 /* BigUInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2AB0FA3FFAC3EBB0D9CACE786196AC1 /* BigUInt.swift */; }; 3B0D18B9FCA958796CDACD6710637030 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5430F65435F42C41489D6A5D36494E0B /* Array+Extension.swift */; }; 3BC2BF6E6B27BFABAEE1C5B8AD2838D7 /* CFB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3649CFBA1E54D6AD5C50879B03ED6866 /* CFB.swift */; }; - 3C1A5CA548BBD6346EA3C326AF0E1044 /* scalar.h in Headers */ = {isa = PBXBuildFile; fileRef = 2716312EADA930757B04015685EFD479 /* scalar.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 3D104A9C54922EADF90311DDFF2CB44A /* EthereumABI.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 3D4691FBDE3F2C3E06B753FC663C8CF2 /* EthereumAddress-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9F29B3A81741F09C62DDDDBACA9A17 /* EthereumAddress-iOS-dummy.m */; }; 3D80464CEDFAD819CD4BCB5190A469E9 /* GCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B830B448B480E1AE7466CE0AB7565D1 /* GCM.swift */; }; 3E5C1C698DFB2439892653C0F04DF498 /* ecmult_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 052A5D977253AD46619C79759D031E6B /* ecmult_const_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 3F474D94A325AFDB74206B0CD0790920 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4638850DD91EB5F2EFCF18E99D4D87FA /* SipHasher.swift */; }; 3FA010055B3BC4813A4245727D6E2AE7 /* UInt64+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA94DDC1F5525609A6FBA3EB53F09037 /* UInt64+Extension.swift */; }; - 4062448019AF90DB11E3860898E8EAEB /* secp256k1_swift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D1EDEFFF233BE2D7F100C45B95D49336 /* secp256k1_swift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 407A49373ABBE880240E941F98D7F117 /* after.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB5F00D821CDC9BDA7F7709F07DD0F3 /* after.m */; }; 41E4BB16EA30C7552FF1E3CA6BC0491D /* PKCS5.swift in Sources */ = {isa = PBXBuildFile; fileRef = F964C89C691E6FE6350F48A4A3E1DD52 /* PKCS5.swift */; }; + 41EC5D771D9D70624241A4FCA1135FC9 /* scrypt-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 158416E3558983FE0049CF2D90BA56BD /* scrypt-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 421C785128A33B16FC5F01BA9E921200 /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB40084682C161CD573420C8CCBFD4F /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; 42920ECBDE0A9803B1C7380ADD62A568 /* ecdsa_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 42FF2C1D3648C354550AC88EE5E64B80 /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B8BA477868467E169FF27E9193A10DA /* Data Conversion.swift */; }; 441F98C26072F42F773DDF5C14AC249E /* AES+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9883A143C0F77B2C2AF7E05BF805F25 /* AES+Foundation.swift */; }; @@ -135,93 +136,91 @@ 46374BB7EC19111A4297CFE9832387F6 /* AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = DF72EE1FD04A0B49CB495E9980F6B8A9 /* AnyPromise.m */; }; 465C38010042DF8DAEFA492DCE294A36 /* BlockCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4992855757033544670BD38D4484C08 /* BlockCipher.swift */; }; 46930C6A0C648E4A7A0830282F53E996 /* firstly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE7344E86789EA2ACF6B000EE6E0275 /* firstly.swift */; }; - 47C119777E312AE6602A93BA0027D876 /* secp256k1.h in Headers */ = {isa = PBXBuildFile; fileRef = D318DFC773B02CFC92B543471C937BA7 /* secp256k1.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 47CD85DFCA1848F901AAB6D6F6F1DC78 /* EthereumAddress-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B4F5205894DF6FD73EF8CFA7609DA7D9 /* EthereumAddress-macOS-dummy.m */; }; - 4882343A2039DD16BE3AE92E332AD44C /* ecmult_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 052A5D977253AD46619C79759D031E6B /* ecmult_const_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4756C27FD4C1AC3E8B0106C92C5D5C3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220B6001A2BD888AB52C2A47D550E8 /* Foundation.framework */; }; 48B50CFAD0E4088080A109DCA7B8688F /* CMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89EE579B1A3A156C9DE84CC0E9CC7F51 /* CMAC.swift */; }; 48EE55837C3546B46DFCD59737CEDC3C /* Blowfish.swift in Sources */ = {isa = PBXBuildFile; fileRef = F063BD5FB8772F058E36A1292962E899 /* Blowfish.swift */; }; - 48FD7843C2FD1E7F947576CB4F364A22 /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = F269536FCE8F92893C1DF08F94904EBD /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4908E7728A0935FCB6EF210407119794 /* scalar_8x32_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 81ECE7FE7C889AF9F1B739830D9A59B0 /* scalar_8x32_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 49318262D401006947F1248E1E119E14 /* SwiftRLP.h in Headers */ = {isa = PBXBuildFile; fileRef = B8EBC720E3207E6F08965D7549AAFEC6 /* SwiftRLP.h */; settings = {ATTRIBUTES = (Project, ); }; }; 494A8C06290340CA7C968264669CD5C0 /* Rabbit+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DCC7CDEAA23666C0D7F819861149F89 /* Rabbit+Foundation.swift */; }; - 4A46B113C4612B07CA848FC63240296D /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */; }; 4ABF0E379FBEF92B4F0B8B68CBE09230 /* afterlife.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D8491537B933BEB0BB26FA5415C295 /* afterlife.swift */; }; - 4AFCC9EC62D8433A0A0083506BFA0830 /* PromiseKit.root-CorePromise-Foundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 452B760316F8326FC21782A105163581 /* PromiseKit.root-CorePromise-Foundation-dummy.m */; }; + 4AFCC9EC62D8433A0A0083506BFA0830 /* PromiseKit.root-CorePromise-Foundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F6259B57E3A3E8491825840F9F99A14 /* PromiseKit.root-CorePromise-Foundation-dummy.m */; }; 4B0E14BAB8E59688BEDD2B5C94E261FA /* afterlife.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75D8491537B933BEB0BB26FA5415C295 /* afterlife.swift */; }; - 4B79D71DD2FC55BCBB35E1F397441057 /* eckey_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = E05424B44F6AFD35E237815F926FEEEB /* eckey_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 4B7175E173407B71508A864A033EC107 /* SipHash-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 70EED16C19046B0B9BE7B13BAC95A87B /* SipHash-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 4C418DDDF37352D82DC8A316EB35D643 /* num_gmp.h in Headers */ = {isa = PBXBuildFile; fileRef = 76F047FAB60C9A09C857EC109DAC9FC4 /* num_gmp.h */; settings = {ATTRIBUTES = (Project, ); }; }; 4C82B6EF64C041919BD1BDFB613CA7AF /* ChaCha20.swift in Sources */ = {isa = PBXBuildFile; fileRef = F62C08D51F07D8799AD6CB646A710F41 /* ChaCha20.swift */; }; - 4D65A0EA2474E1ACE27EB99A8C868A09 /* num_gmp.h in Headers */ = {isa = PBXBuildFile; fileRef = 76F047FAB60C9A09C857EC109DAC9FC4 /* num_gmp.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 4D7DEDC820A1EF913455BC0FBE72FBD6 /* BigInt-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E74F31CDCAA43E3665CAB99746882DD /* BigInt-iOS-dummy.m */; }; - 4D7F63CA708D40E84A6C8968CDB4D223 /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B4899E422658B96ADF84B5239C418D /* ABIElements.swift */; }; + 4D7DEDC820A1EF913455BC0FBE72FBD6 /* BigInt-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ADDD8977E2AE58D356A3834CF279DCDC /* BigInt-iOS-dummy.m */; }; 4EB23EA6CB130E3291B0776D3862D748 /* Rabbit+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DCC7CDEAA23666C0D7F819861149F89 /* Rabbit+Foundation.swift */; }; 4F70068CDD913C18026C4A968EA92E9A /* ZeroPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E02047F0F6A6150C26B56EEF63F55B /* ZeroPadding.swift */; }; 509748BEA3EC752BC3A2AC9B055DE91C /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70E24C26EF4EF9C8244E7F94F175FD51 /* Configuration.swift */; }; 50DE88114B7BD18A98F0F45A972079E3 /* SecureBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16973E34A2E1AB31C96F6ECF88E284D7 /* SecureBytes.swift */; }; - 5145AAE99352DBF420419223083C6C25 /* CryptoSwift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 303781526174E2DFA273950F9C1AEDBC /* CryptoSwift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 514CB91178D7A5A584BF7ED0E99C5783 /* CryptoSwift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C8B3233C12879C6534A856047197CECC /* CryptoSwift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 51B79A81BE02C232299A5DA47E988277 /* UInt32+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857BD06ABAFBE1C5C176886E254BE8E6 /* UInt32+Extension.swift */; }; 51DADAE211CE77CDDD762DF1F5FAA236 /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4289C87C5EC42792CDDDCFC5592AADF7 /* Exponentiation.swift */; }; 527E46A66487D9D5B3FF54359A3951EB /* CipherModeWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1D1692A2F154E2828E569943ED540D4 /* CipherModeWorker.swift */; }; 52E178194B9296D51D79BF2B7A4F7BA5 /* AnyPromise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71C4ACD478692712EEF2FF8BB7F4A160 /* AnyPromise.swift */; }; 5342EFAEB9363EEF4AA9D23C58E28589 /* Cimpl.c in Sources */ = {isa = PBXBuildFile; fileRef = 442D6200CC1781151499F7FAF44C0366 /* Cimpl.c */; }; 5493B45FC1BD542111A20AC6A58EA0B1 /* PKCS7Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45F5F772F0EEFC0C3E42DAF65DB4121F /* PKCS7Padding.swift */; }; - 54CC4EB0BFBA6950C9FF3ACBAF3E871D /* SwiftRLP-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E1A2664214C7FF4C93A67058FDACDE9 /* SwiftRLP-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 54CD3C94770F9985D0EDD8AD2D880EEF /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C27B7CBA5225481973EDA23AF49981 /* AEADChaCha20Poly1305.swift */; }; 54EC85190D1C1948AEC85A67298BDBFD /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = EA5B0A3B538B56303C1A061E2514BF07 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; }; 551E69D2CA91185ACDFCBFDE5505A63F /* after.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE9BBD4AE4B529B25E9E4FE7C8493181 /* after.swift */; }; - 553AD1CA02592C774AFF2659115B4DB1 /* num_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 982E6E4B839762B67F92588D34990052 /* num_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 55620C107463741AB202D7B93B8AC47A /* UInt128.swift in Sources */ = {isa = PBXBuildFile; fileRef = F60D6D403033B0F37C22533C4A05A1E4 /* UInt128.swift */; }; 55714E2CA2C818B9BB609FE4303A7AE3 /* DigestType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14CAC03510776AA4E99EA944110DFD9 /* DigestType.swift */; }; 557151A9F797E462E701215A27F7DC21 /* Digest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 721ECA637BED3AE2394AA1573B89D998 /* Digest.swift */; }; 557E070EDC1D983960128B12A77AA293 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB02248C062005D2F2620C9F81EC5ED4 /* GCD.swift */; }; - 563C641A5D7264103E44BCDCC6C6C887 /* CryptoSwift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D8EC3860FD1A1DA54C00A1498D1F1D9E /* CryptoSwift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 564FD746E26C5BFC311765163F88EF1E /* AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BF71F803FD375964F60D0271834711E /* AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 56959B7098D09A061F7F7721E757E1E2 /* ecmult_gen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D010E670FE8C5A9AAC9A8464ED42B3A /* ecmult_gen.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 57BEB3200D2E2AA64E34C9960AC0A503 /* EthereumABI-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48DE6A16D72E33E779AE2257CA5D34BC /* EthereumABI-iOS-dummy.m */; }; + 55D5E91986E8085FCDCE3F99A8DD585D /* group.h in Headers */ = {isa = PBXBuildFile; fileRef = F6575BB4E0B2AD0E5B88C62A5EDA6FCB /* group.h */; settings = {ATTRIBUTES = (Project, ); }; }; 582D36FB6BBE4D4259CBFC9B837E7F79 /* num.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D1B636300E29159DFA920C5BA2E5F7C /* num.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5916092AA6D7F2AABFCF33B48F68672B /* Pods-web3swift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 25F72E78DF48560F5D210E57844ACDED /* Pods-web3swift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 591B707CCE5C69B79289D27F93215603 /* lax_der_privatekey_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 15BED946B8A96EDBF82439D38353B748 /* lax_der_privatekey_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5A176FB29F73DA5B94E9257DE93AD928 /* num_gmp_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A69680CF78C97C6DA250B325FFD04251 /* num_gmp_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5916092AA6D7F2AABFCF33B48F68672B /* Pods-web3swift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23BB48B62BD11AE739C695D5E07DF23B /* Pods-web3swift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5AC824D111C540F3F5AFE019B18040DF /* EthereumABI-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BE513BBB1E501AC239B2E5FCFEEB1C7 /* EthereumABI-iOS-dummy.m */; }; 5B4044B103053232D6A987856C610367 /* ChaCha20+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA93B396CDC9BA5785D41386B95B4AE2 /* ChaCha20+Foundation.swift */; }; 5B842BF7DAD152B00F2629737F22DF42 /* eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 5BFC536A9D0ED05F329623FFFE9B9C6C /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6314619E8FCD5D07FBD2BA0BA5C58C15 /* ABIEncoding.swift */; }; 5E0D7EA7DC572DB4F63B87D4243AA73E /* scalar.h in Headers */ = {isa = PBXBuildFile; fileRef = 2716312EADA930757B04015685EFD479 /* scalar.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5E7AAF3819A10F209BE62046D1AFA4FA /* PromiseKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C1C69DE46F5ACC0602FAF8FB907D949 /* PromiseKit-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5F0A96C798B3599339C7A4BF7A6CCA9D /* scalar_4x64_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CE3A28090BEEF1B09E865F4962D871 /* scalar_4x64_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 5F0E15653C371061DC89F86BB79F7A04 /* PMKUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 92641023C5257B4110F73449FAC652E7 /* PMKUIKit.h */; settings = {ATTRIBUTES = (Project, ); }; }; 60398D9C8DCDC7FEDC52DC8AF907D1D9 /* scalar_4x64_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CE3A28090BEEF1B09E865F4962D871 /* scalar_4x64_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 60D4DE7DC97871E36FBF75DC91E7A248 /* EthereumABI.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 603D7473332E9462B3CCCD0E7BB087FB /* Pods-web3swift-iOS_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D96A0A368BE15EEEB27A3F77B5F74533 /* Pods-web3swift-iOS_Tests-dummy.m */; }; 6121E601434E10D5CC3A01A2C815B0D0 /* Utils+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F98F9737D714C11C13F01403ECACC354 /* Utils+Foundation.swift */; }; + 614EE39F1064EEC8A3E0AB0833A0FE93 /* ecmult_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 05D37539C41BE79893FEDECCB70FC25B /* ecmult_const.h */; settings = {ATTRIBUTES = (Project, ); }; }; 61C9BCD007508C2CB8959FA50BF0F53F /* Addition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03C5B3B2079547713108CA0A75C2D683 /* Addition.swift */; }; + 637727ABF2E1A48584E85D2F871A8F9C /* secp256k1_swift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E5B3140CA2A969D2F458E286A483C3F /* secp256k1_swift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 64310DB95A0B71D32365CB6D88944A03 /* SipHash-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C78140B0839244D489752A02DC0913B /* SipHash-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 64B09F51D747BE80ACF3869000E89585 /* CustomStringConvertible.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0EE85F786503354B347C059417EBAD2 /* CustomStringConvertible.swift */; }; 64B44E304433C6993AB07F47614BBC5E /* NSURLSession+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = B2AE7121F5348D2FDCD4FD763A42FB0C /* NSURLSession+AnyPromise.m */; }; 65D0354F4B4E32CBA63ECDF84AFAD283 /* AEADChaCha20Poly1305.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8C27B7CBA5225481973EDA23AF49981 /* AEADChaCha20Poly1305.swift */; }; + 66CCCA3984367EE8FB4CEB28695FFDE2 /* EthereumABI.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */; settings = {ATTRIBUTES = (Project, ); }; }; 67EA838CFD7F6CF89A7A056B09B63C06 /* scalar_8x32.h in Headers */ = {isa = PBXBuildFile; fileRef = E9FDE304B6122EEAE8A1FC91742A69E6 /* scalar_8x32.h */; settings = {ATTRIBUTES = (Project, ); }; }; 6817327279945D8425268EF14CDDAC21 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E446483743D975168011448637ED65 /* Primitive Types.swift */; }; - 69527E264B7CB8895C3299409B518A2F /* scratch_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9C2CC8E90A38FD011723EB814A5A52 /* scratch_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 6970C806A3C7873A22DA26802EE63912 /* NSURLSession+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49C5823B0C264F4AC2DF38C68F097FEA /* NSURLSession+Promise.swift */; }; 698DB1FA7FF3234946A86E51AF828F39 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86A87591096A3CD9071AD2D94874973C /* RandomUInt64.swift */; }; 69A4B05BCEDEACD5C3C10D2B2913F919 /* UIViewPropertyAnimator+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = C279D46376D66FBA43CD88224B12208B /* UIViewPropertyAnimator+Promise.swift */; }; - 6A484692AA6F59EEA3EC6137FB6AFFCF /* ecmult_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4C0B3D9EC3E926E106CA2DE8CDEAF9 /* ecmult_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 6A6F08C9310263A607DD61DF9EC1EA5F /* after.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE9BBD4AE4B529B25E9E4FE7C8493181 /* after.swift */; }; - 6AAD33E6E1945969931C25BAD27B42BA /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */; }; 6B2DC610BB5ACC7953553D5C4FA39033 /* hang.m in Sources */ = {isa = PBXBuildFile; fileRef = DD5583797A4DF2B5636D036CDD472CD0 /* hang.m */; }; 6B71498DEADD20033325A53D27E6191A /* SHA2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840549A6DE0F91C91EE1712E3C57D6ED /* SHA2.swift */; }; + 6BB6DA0290C8E8CDA20898B8A1BAC089 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9141557151A6042910B007BFD2C08337 /* Foundation.framework */; }; 6C983FCC57A9424B92E0AD5F05317431 /* RLP.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B67028CCAE6818C78DBC12D8329550 /* RLP.swift */; }; 6CED57BC415DF0F388D893405FE3DC3A /* UInt8+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD5252D2AAE2CE2F1FFDA208DD0EFB4C /* UInt8+Extension.swift */; }; 6D4618F519FFEDB9117FC4341C7F3F4A /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A15DC755B12D8CCABB5B073B63856F /* Utils.swift */; }; 6DC3B988093A7855E6880FFE8AE3D3B4 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDD6E2BFD8131F124DFD131BA3C6D90E /* Data+Extension.swift */; }; 6E1A1FD632248BF8EA8C08628B1DD44A /* Generics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3EF69CEB8B2C8F6223E5A84FF9855D71 /* Generics.swift */; }; + 6E683FCF9A5D1975E18E4A3E8FDB699C /* EthereumABI-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A786BAB1EBC0AC21E3491CEEBCA128 /* EthereumABI-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6E7A93100A37D16B05EE524FF2F95617 /* UIViewController+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = E94EF5B041036E702BC404B7118A8F9E /* UIViewController+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6F2B725624E6A7B550C9167BB1D8A03B /* UIView+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E3F5E519E5ED0A4BAF423C7DBB12042 /* UIView+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; 6F5B521B508C0230EF8488842DE2C905 /* SipHasher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4638850DD91EB5F2EFCF18E99D4D87FA /* SipHasher.swift */; }; 70C08283C27C54420E80CCFB8C2CEB18 /* Data+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDD6E2BFD8131F124DFD131BA3C6D90E /* Data+Extension.swift */; }; - 71567D015EC37FC03AE550A23ED89908 /* PromiseKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 04464806E7EED788DFE4F8D62793DD29 /* PromiseKit-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 717B05FECD48B3ED8481296EF0CCF350 /* RandomUInt64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86A87591096A3CD9071AD2D94874973C /* RandomUInt64.swift */; }; + 71916967CD49117BC05146139542AFC6 /* Pods-web3swift-macOS_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 553C1445D10FA04E682FE1674D6AF9EB /* Pods-web3swift-macOS_Tests-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 723881423457C16AFC563593E5F5B7E1 /* RandomBytesSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F42AC215BDD4E22070E88E9837549CD1 /* RandomBytesSequence.swift */; }; + 725E5A158E028AD7FF329E1AF6A963F7 /* secp256k1_swift-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D2B1BF97D7528737FF5CBBA5C7BB4C70 /* secp256k1_swift-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 726D7B79EE2D9BE951DB54D2130E9BCA /* field_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5300C71B6A3AB50A1D7ED70A41FAAD6B /* field_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 73197ACF23C4CCEC651FB50DA6AF71A9 /* secp256k1.c in Sources */ = {isa = PBXBuildFile; fileRef = AD85FC46DA6BEAA980010B0C5F2BEED3 /* secp256k1.c */; }; 734152CA029292005DD1062B744B320A /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = D895276EEA2D99E4EBF5B7FE4596872B /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; 74931156BC39F4870C2DE0792BE32405 /* ecmult_gen_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A05629BB0205300B694B527AD16E56 /* ecmult_gen_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 76A9DE7C8BC7B646D1A0508BF1A38A22 /* PKCS7.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C5181B2E5F94EAFEF5F04D83E0FFD13 /* PKCS7.swift */; }; 76E0382DDD9E348354DE5C5F8120D2B8 /* BlockEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F9EE37EACAF96F7344C1F0AEA46F02C /* BlockEncryptor.swift */; }; + 76EFD8B2D6078B3D9FAA9A95D46B4BD2 /* field_5x52_int128_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FB6255E4560252B9DC0BE760F34C261 /* field_5x52_int128_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 773013B84E21E3867773BCAB6E171CBC /* Shifts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F4B350BCCE6D995C937B1D56E4F9022 /* Shifts.swift */; }; 78638EB4FF9E1219EC7E04E8B97EB448 /* CCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31BA61BBC2E9A900CDFD9106099E71AF /* CCM.swift */; }; - 7866E902E917458E48CDFA6D0513288C /* secp256k1_swift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD86700A4552C712FAC348BB69DACD9 /* secp256k1_swift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 78B74AE02AC2AF0A4F6F10086E973340 /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */; }; + 78E048DA30054A04556F68A6DD229F3F /* eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */; settings = {ATTRIBUTES = (Project, ); }; }; 7A0702EE936C773C38F5E4B7F21AB26C /* Multiplication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A57E22BE5970C0F858EB10A32A3019D /* Multiplication.swift */; }; 7AE2FD363C4422762B7BC5E2005F7C2F /* String+FoundationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2742B99A93E16E813DA0B71800AAA56 /* String+FoundationExtension.swift */; }; 7AFF4F6002793DD750318A9334D3BB0F /* when.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4426237EBEE47CAC169D6291F77423 /* when.swift */; }; @@ -238,17 +237,19 @@ 81AEF5216BF27FF1FAF23471914CFB03 /* NSURLSession+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = B2AE7121F5348D2FDCD4FD763A42FB0C /* NSURLSession+AnyPromise.m */; }; 82AF1E6C9907EE09A09AB83C5B1818ED /* group.h in Headers */ = {isa = PBXBuildFile; fileRef = F6575BB4E0B2AD0E5B88C62A5EDA6FCB /* group.h */; settings = {ATTRIBUTES = (Project, ); }; }; 82C94A26B21102E331D831274DF3E5F3 /* hang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79B85C952F225CDFB5B272237402E77E /* hang.swift */; }; - 83270E867F5862F72F0F925937F1668A /* group.h in Headers */ = {isa = PBXBuildFile; fileRef = F6575BB4E0B2AD0E5B88C62A5EDA6FCB /* group.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 82EE63A02EBECBB95681760B3DE5D6CB /* EthereumAddress-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 59CA1CA71842D0F9F9DC0144EC286A7E /* EthereumAddress-macOS-dummy.m */; }; + 83C2F99B49019E5173C9C1968ECBC380 /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */; settings = {ATTRIBUTES = (Project, ); }; }; 83C9B6E62BE2665CCF9078D50C66331E /* BatchedCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F3DF43B9422FD5916A6C75F9C68568 /* BatchedCollection.swift */; }; 842761D17768C84E2B62EECED7A7A656 /* Process+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C42ABDF3D43E8CFBE45DFA6DF97E084 /* Process+Promise.swift */; }; 848EFB4F6CDA94AAAD25CCB2283E9EAA /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA46482A8E14BD7641E6F29ED4F0A6B4 /* Integer Conversion.swift */; }; - 848F627E8EC89D8060C4A7DC5C0B8CE2 /* field_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5300C71B6A3AB50A1D7ED70A41FAAD6B /* field_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 84921E76FF03F22869F7FD1C2CC044B0 /* NSObject+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E664638E84199C40F931B3593272F8D /* NSObject+Promise.swift */; }; 84AD91997553D782969A046B9146044A /* StreamDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5AAAD0BEA7AB575EE1203992B86F82 /* StreamDecryptor.swift */; }; 856C7A8C7D4956726A7299BEFBC01C49 /* ResultProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85CA122AC057DBDA1FC65BCB8FC33684 /* ResultProtocol.swift */; }; 857A105811C550ED97B48E423769E135 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE693F0F5E15CCA4AE9D51B9A369B70 /* Box.swift */; }; 857F892AC414752BEECA9829E4EA6322 /* Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = B468DE556C27A7C396C7B5ECC7DCF12E /* Operators.swift */; }; 8593AEFA684E7B84208518E6FC380FB7 /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BBA6411A89BD966DF62BE90EE478C /* Int+Extension.swift */; }; + 85C37C6DC00EC3953EF34A21CA508324 /* Cimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F106BE3FED3F7D139A061124A9FF0251 /* Cimpl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 85C41CDA9D68E68C47C57B1A5D5D4FE7 /* SwiftRLP-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E8C02178623EA24595E251627CE2F4A5 /* SwiftRLP-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 85FB5B7FC1D897B946EBAE4BEAC9CE4D /* UInt64+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA94DDC1F5525609A6FBA3EB53F09037 /* UInt64+Extension.swift */; }; 8601AFFE38D08BA40B4AED33D04654E4 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34A205CA261F59DB1AC7C1BE4E2ABE19 /* Strideable.swift */; }; 862C49A4047D7B32FA8ED4644AAF3DE2 /* StreamDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5AAAD0BEA7AB575EE1203992B86F82 /* StreamDecryptor.swift */; }; @@ -261,100 +262,103 @@ 8BA4D38F41C7AD0545B23BB7671C2114 /* Process+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C42ABDF3D43E8CFBE45DFA6DF97E084 /* Process+Promise.swift */; }; 8C7DC341CF6C0D742059C180AF4D3AE6 /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AA60D2034DC22F7C907855DDB5ADAD9 /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 8C8D2A38239F1CDA6CB302EFEA1E18B4 /* RLP.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6B67028CCAE6818C78DBC12D8329550 /* RLP.swift */; }; - 8CBF1AE067B860433B0A4BE710FFA9BD /* CryptoSwift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6907C77858F6612BF4232E34D8D30C3F /* CryptoSwift-iOS-dummy.m */; }; + 8CBF1AE067B860433B0A4BE710FFA9BD /* CryptoSwift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B7DD102BC02F706460BD77A53962C987 /* CryptoSwift-iOS-dummy.m */; }; 8CFC200142682965D7D13983526BEC97 /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDDAEEE4BC31C06BAE2232AFCA5468E /* HMAC.swift */; }; - 8DC20C4A7C1E28D752BFEBF35B5D9759 /* ecmult_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 05D37539C41BE79893FEDECCB70FC25B /* ecmult_const.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8D96A821185919FD9DD4FB0F05DD3C2B /* ecmult.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C93F4B7E331943729BE3CFC4F439C2A /* ecmult.h */; settings = {ATTRIBUTES = (Project, ); }; }; 8DCA7529640903D6984416665D803C1D /* CBCMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9883FCDA0DBDA6DCA8C5923AB1B3F45A /* CBCMAC.swift */; }; - 8E6ADE71160E4C617ABA4C32C87D16F3 /* eckey.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8E4C7E79C799B9811F801FCD446CF240 /* num_gmp.h in Headers */ = {isa = PBXBuildFile; fileRef = 76F047FAB60C9A09C857EC109DAC9FC4 /* num_gmp.h */; settings = {ATTRIBUTES = (Project, ); }; }; 8EAEFFBCB259C139AE42E4967BFCD638 /* PBKDF2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BBEB708E926639930327B2FC6F3759D /* PBKDF2.swift */; }; + 8FE762DAD36B785B235EDAD1AACD5F8E /* ABIEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6314619E8FCD5D07FBD2BA0BA5C58C15 /* ABIEncoding.swift */; }; 906F0233096CF30AA2ADD2032085E9EA /* HMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDDAEEE4BC31C06BAE2232AFCA5468E /* HMAC.swift */; }; + 90B32C9817DD75A68A8C8DB41716AD63 /* scalar_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4D3EFB3ECDE366218A9D0848F3C58B /* scalar_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 911E85408B3D802D7981B85D7192128F /* BatchedCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36F3DF43B9422FD5916A6C75F9C68568 /* BatchedCollection.swift */; }; - 92A31273837467750DA0525B8243B737 /* field_5x52_asm_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C96A2C2C3B9F8977AD08B6FBEDE552 /* field_5x52_asm_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 930121B3B6F0689685FCAB817B2A2588 /* PMKUIKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 92641023C5257B4110F73449FAC652E7 /* PMKUIKit.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 92F388ADEAE255E301DC4F0EAAB0B582 /* basic-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; 937080F5624E366ADA825757B45DEE90 /* race.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F31FF3FC3A98D10214EF6C7199FCB5 /* race.m */; }; 93922A572F18D47B58770CE032C624A9 /* eckey_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = E05424B44F6AFD35E237815F926FEEEB /* eckey_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 93BF74723D8898DC3E8DC67317C1B0EB /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDFC58447BAB63CE30E97C059F8345F5 /* SHA1.swift */; }; + 95E38A1D84F03F71A0A9438FEDC68B4E /* SwiftRLP-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EEE09E8394158AD1A79DE783A6B3EB44 /* SwiftRLP-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; 969296ED15F25F2DBDFA4E8DE7A3F15C /* NSNotificationCenter+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 59463535BD4D6DAD08D36EAF4421D11D /* NSNotificationCenter+AnyPromise.m */; }; - 970EE041FB9D079419CED46228DC3969 /* scratch.h in Headers */ = {isa = PBXBuildFile; fileRef = 449887D7F7932CFAA2B3FAE0BEE1594B /* scratch.h */; settings = {ATTRIBUTES = (Project, ); }; }; 97A3961670D0D6C11A7E18B5DB3FF739 /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B7939D27D85A4C92DE2CD6D6C8E4EB /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 987DCF48843E8B83BE9F0B5788175D53 /* CBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 224F4E958C4909EF47CB0A9F43F48030 /* CBC.swift */; }; 99365E9205AEA46510A70B0092872710 /* RandomBytesSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F42AC215BDD4E22070E88E9837549CD1 /* RandomBytesSequence.swift */; }; - 99FB3C1EC398E469062856C9355D98D7 /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB40084682C161CD573420C8CCBFD4F /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9ACFA841BF6C5686EDDB92A29B36FF7F /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = EA5B0A3B538B56303C1A061E2514BF07 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 9B45BA7080C2248A03F5AF03837C74C8 /* EthereumAddress-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 76C5F543BD9B25774CA35CF7FA0546B3 /* EthereumAddress-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 996E0EB81F4314EEEE429BAA35B7049C /* scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 07853D5BF50E26B878B7B1D18CF18F06 /* scrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9B305978875B77C95D3A6E509B152987 /* lax_der_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 58FEC74B279A9D31ADE339DE27E86FA9 /* lax_der_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; 9BB2691E8EC04617309A1B905F5A652B /* Rabbit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 129427E2D354B71D619F0DAC197039BD /* Rabbit.swift */; }; + 9BC64851AD30BA60F98145D5B9A46329 /* ABIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AA08906784FF9AA2B198938456276 /* ABIExtensions.swift */; }; 9C1D45EE7F4C75C150166F58C0C5827F /* secp256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D5996479C4CB892D1B062406C8C08F6 /* secp256k1.swift */; }; 9DAE14B88EE655354CACE65717FA211E /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA975F09047F404D3183C92FCA1AD829 /* Hashable.swift */; }; - 9DF5F943F4396F48FA8C2562B7E90323 /* Cimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = F106BE3FED3F7D139A061124A9FF0251 /* Cimpl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 9E042ECCFC8FB435B85BF9193486A67C /* NSTask+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = DAB40084682C161CD573420C8CCBFD4F /* NSTask+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 9E342CDC8A4486A045BAA310806AD567 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */; }; + 9E50B00B932945E8BC1F96E1B4B4E3D6 /* ecmult_gen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D010E670FE8C5A9AAC9A8464ED42B3A /* ecmult_gen.h */; settings = {ATTRIBUTES = (Project, ); }; }; 9E9ABC19900EB9A2F58E05DEDE4C9C6A /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BDFDE509786CC72B0B5EBBB87F54C14 /* MD5.swift */; }; 9EF0841FD75468EF3543A5C6A25A9398 /* CTR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A3D345B7D38F0B4BAB39F24505D5E5E /* CTR.swift */; }; - 9F89998FC4A9BDB1EB5C0FBC61596D64 /* field_10x26_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F7ED977AF2E31DEA78D850BDE6C9F601 /* field_10x26_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; 9F8C5B0AB545F419AF2F97CCD7224BB8 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81392F0749049A8C999337DDA716A157 /* Error.swift */; }; 9F975F5CF4816CD3A6CA2282F5F4E3F2 /* BlockMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E773D6D25B2A450D593D189B85B7DA /* BlockMode.swift */; }; 9FA8CF326DCA266C358B26FC42191498 /* Blowfish+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB31CE10E8BEEBFC7B50C9F8A97E10A8 /* Blowfish+Foundation.swift */; }; - 9FE815CCD081FD51B3853C75F363A89B /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AA60D2034DC22F7C907855DDB5ADAD9 /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A153DCFCF463D9DE2D043665961D775B /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB87A244E5248ADD8D124225B21323F /* PromiseKit.h */; settings = {ATTRIBUTES = (Project, ); }; }; A1636315A5B3017312CFC781DF83901E /* AEAD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05DB571F7562C6E5DAC821BF33DF2ACE /* AEAD.swift */; }; - A1B3C6A88101C2163062485C2B45F1E0 /* EthereumAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */; settings = {ATTRIBUTES = (Project, ); }; }; A1E8398E1FC2566D94EE4D94B48E909A /* BlockModeOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CBF6B2F887499D9631619E0D53008D /* BlockModeOptions.swift */; }; - A22F18E450653F384132E5C621BE7B73 /* scalar_4x64.h in Headers */ = {isa = PBXBuildFile; fileRef = E1999CB16AEF90FFCC762EC5BA3C538B /* scalar_4x64.h */; settings = {ATTRIBUTES = (Project, ); }; }; - A2677F84AB8234C395BD53A67AF18EF3 /* UIView+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E3F5E519E5ED0A4BAF423C7DBB12042 /* UIView+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; A26E92B79121B74FDE94799BF2A92C91 /* Array+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FC232D3CEB1791A116CFCB46BCCE606 /* Array+Foundation.swift */; }; A2A378FB0E28CFD130DD02F25B9420EF /* UInt32+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 857BD06ABAFBE1C5C176886E254BE8E6 /* UInt32+Extension.swift */; }; + A2BC050D8F27D13134F188077278B097 /* num_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 982E6E4B839762B67F92588D34990052 /* num_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A3042885B2B198B822EF2B2B14471FB1 /* Result-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 604F9F7AC0C04DACFC628833A3B4ED5D /* Result-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A3D4F1E4E13F094A7DD7D6F9ED14A4CB /* scalar_8x32.h in Headers */ = {isa = PBXBuildFile; fileRef = E9FDE304B6122EEAE8A1FC91742A69E6 /* scalar_8x32.h */; settings = {ATTRIBUTES = (Project, ); }; }; A419E91722005FB59C7DC3BEA7AC0733 /* PBKDF1.swift in Sources */ = {isa = PBXBuildFile; fileRef = A31357292CDC03F5F3AEA4C1065BCDBF /* PBKDF1.swift */; }; A4F8D815D07249B30E393C63694BF3D7 /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85342594A31BFFC584D4660A9041CF48 /* Codable.swift */; }; A65A2E325268ED551F8A5D89FB7E75FD /* HKDF.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFAEDF6DDF0B48C4B8E16F6F9C59A5F /* HKDF.swift */; }; + A6E876E870631B45889C95B61C4400FC /* ecmult_const_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 052A5D977253AD46619C79759D031E6B /* ecmult_const_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A7100E575D319BCBE3DACA4BDCC1AE70 /* scalar_8x32_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 81ECE7FE7C889AF9F1B739830D9A59B0 /* scalar_8x32_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; A72461C8573DCDB8310FA557C3BA1DDA /* DigestType.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14CAC03510776AA4E99EA944110DFD9 /* DigestType.swift */; }; - A780CA204C48EC1DEEA8B2C0F59FA6AB /* secp256k1_recovery.h in Headers */ = {isa = PBXBuildFile; fileRef = B88C2E2D4B6E99B918E6E13EDA4AA4A0 /* secp256k1_recovery.h */; settings = {ATTRIBUTES = (Project, ); }; }; A7D96D76C3CF2A958DEDBFD4524D7526 /* dispatch_promise.m in Sources */ = {isa = PBXBuildFile; fileRef = 247DF1F9FE8902AA1A74867E7854662F /* dispatch_promise.m */; }; A829DDB57163254C51DF6C9896A1666E /* Int+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E6BBA6411A89BD966DF62BE90EE478C /* Int+Extension.swift */; }; + A8528F036286DA3FD51B7C8DE2B7CDB7 /* util.h in Headers */ = {isa = PBXBuildFile; fileRef = 003EF4269A56F0C44E64E737009329A6 /* util.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A859C5E81008A8497D53AEC7EF050130 /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AA60D2034DC22F7C907855DDB5ADAD9 /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; A8995C0B368AF79026265F486D640985 /* Primitive Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E446483743D975168011448637ED65 /* Primitive Types.swift */; }; A91379A538F389B10BAB2CE9D406BDCE /* CompactMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C619FA5855429D15B556163471403E5 /* CompactMap.swift */; }; A94EC8DF49968D812DEDDAD218DDAE1E /* NSNotificationCenter+Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF31935E8E71BE039924EA648A315B8D /* NSNotificationCenter+Promise.swift */; }; - A9A3DCED2AEB2118A087FDC125D5D8A8 /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC6627D0179A3BE1D7BB58F2DBF51E7 /* ABIParameterTypes.swift */; }; + A96DB5D1ABF4D84D7EE9D5D3866F4421 /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = D895276EEA2D99E4EBF5B7FE4596872B /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; AA08FA2EB9DB4E98494BFDDE5D4B4936 /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2631D55D12027D3935D7B85C6A624F09 /* Bitwise Ops.swift */; }; AA4AE37CE61DB029CDA7A78DF0E65A30 /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BDFDE509786CC72B0B5EBBB87F54C14 /* MD5.swift */; }; AA77E4FCA1931096078FD288C72D7690 /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = F269536FCE8F92893C1DF08F94904EBD /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AAC2F5A133AF7913D3359545CB362B8E /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC6627D0179A3BE1D7BB58F2DBF51E7 /* ABIParameterTypes.swift */; }; AB02DBB24DBB4F98005C0C14C342F8FF /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A85805FE098BD65AFD79ABDC5A9DDF7 /* Prime Test.swift */; }; AB0CBD60909A704D3D9158BC5D661B16 /* field_5x52.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C5F41A51FDAEBAF8F849026A9B09E2A /* field_5x52.h */; settings = {ATTRIBUTES = (Project, ); }; }; AB9E1F4EDDB1BFD7F4359B0E1AEF9C78 /* Cipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62515D5BE9A59FE5C9041B4EBE9CA58 /* Cipher.swift */; }; AC932B736284B35ECAD3DB196C2C4533 /* BufferStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63FD1428729C05C5A88BE98C12254ADA /* BufferStorage.swift */; }; ACAFB6B368809FFE646FC6CE60BC1165 /* ecmult_gen.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D010E670FE8C5A9AAC9A8464ED42B3A /* ecmult_gen.h */; settings = {ATTRIBUTES = (Project, ); }; }; - ACC598D7BAEB964F6A2E8BA38307C4F6 /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A2D1D0062F350907B747E2A192E438 /* ABIDecoding.swift */; }; ADE49554E5BC26D0FC3CB250EC153F83 /* SecureBytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16973E34A2E1AB31C96F6ECF88E284D7 /* SecureBytes.swift */; }; - AE317D2940830F9B289A00565CE59FE6 /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC6627D0179A3BE1D7BB58F2DBF51E7 /* ABIParameterTypes.swift */; }; + ADEB482DA254AAFBC42C7834493022B9 /* EthereumABI-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FC1B6B1176F612793CC1F8C240ED4F5 /* EthereumABI-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; AEC703672CF0251F4AE1B807443AA2DF /* firstly.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE7344E86789EA2ACF6B000EE6E0275 /* firstly.swift */; }; AEE97FC60DDB4995F16A1796F5B56C1B /* join.m in Sources */ = {isa = PBXBuildFile; fileRef = C4D8573A6F8E2A67DD73406C5B3ECBB5 /* join.m */; }; AEF51F69F68DDFB4BD984ACD87DA0517 /* CMAC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89EE579B1A3A156C9DE84CC0E9CC7F51 /* CMAC.swift */; }; + AF90B1C4429B63D9E9E2D7BA71C63B80 /* group_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F74127A936A7C34D38E84140D1EFAC /* group_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; AFDA9E12CC7195153491C8CD1C0AAD8B /* Integer Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA46482A8E14BD7641E6F29ED4F0A6B4 /* Integer Conversion.swift */; }; AFDE5FB41EA9B22F9F7D1845806B8436 /* Cimpl.c in Sources */ = {isa = PBXBuildFile; fileRef = 442D6200CC1781151499F7FAF44C0366 /* Cimpl.c */; }; AFEBE1E855779D74D26F05919F5001AA /* UInt128.swift in Sources */ = {isa = PBXBuildFile; fileRef = F60D6D403033B0F37C22533C4A05A1E4 /* UInt128.swift */; }; AFF838D30AE798EA2B0FE11A1ED0729E /* PBKDF1.swift in Sources */ = {isa = PBXBuildFile; fileRef = A31357292CDC03F5F3AEA4C1065BCDBF /* PBKDF1.swift */; }; B075220C6A1ACDF3E6ECA9447125C827 /* Cryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F2F682F960F536C585085773DF5BBA1 /* Cryptor.swift */; }; + B157BA21212B394F61AB6283EE656B0D /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A2D1D0062F350907B747E2A192E438 /* ABIDecoding.swift */; }; B1CE9BDAFCAEDA7D99F7545490D1D518 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0A59FDACCE16F10DF39EA55249CA72D /* String+Extension.swift */; }; - B30C88B383282F3BA5CEFF72ADCD6975 /* ABIExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E4AA08906784FF9AA2B198938456276 /* ABIExtensions.swift */; }; - B3978E88BD6400B77CF85D9788D4F094 /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B7939D27D85A4C92DE2CD6D6C8E4EB /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; B43A930051FDC74CE6667856407BD5CF /* Exponentiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4289C87C5EC42792CDDDCFC5592AADF7 /* Exponentiation.swift */; }; - B4471EDA97A5344990BA50D90F24AF31 /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21FCC5A27F315ACD9DBDF025F826D31F /* ABI.swift */; }; - B4551C11886444FD0ECFCE0F05367412 /* PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48BA6005A2D0AC9C0B7C4A47958A6F80 /* PromiseKit-dummy.m */; }; - B50565BC4DBFAF865B10BA46420F7625 /* scrypt-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DAB3CD9F51BF3B4399B8EFC798B3F215 /* scrypt-macOS-dummy.m */; }; + B4551C11886444FD0ECFCE0F05367412 /* PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 710AC65C4B223E829ED4375071A20A4B /* PromiseKit-dummy.m */; }; + B459770F6D8C06F6407DD9F863789E63 /* secp256k1.h in Headers */ = {isa = PBXBuildFile; fileRef = D318DFC773B02CFC92B543471C937BA7 /* secp256k1.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B4A0FDBAAF0122D250CB5DE25297FD8B /* ABIDecoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A2D1D0062F350907B747E2A192E438 /* ABIDecoding.swift */; }; + B50565BC4DBFAF865B10BA46420F7625 /* scrypt-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 417827171F7329CB9A60952C4724D7CA /* scrypt-macOS-dummy.m */; }; B52E20B7BAF9DFF4ACF992979FAA904D /* UInt8+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD5252D2AAE2CE2F1FFDA208DD0EFB4C /* UInt8+Extension.swift */; }; - B591BC023D1E6A16FCA94930AABFD4E3 /* scrypt-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2533EAF35B54AB44227FBC0A9BA7D19E /* scrypt-iOS-dummy.m */; }; - B640565E1593B250390597C2651078A4 /* BigInt-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF8798C22F31053E2D6EAF35C011146D /* BigInt-macOS-dummy.m */; }; - B6699C206D4772B76BEAF1722CB04572 /* Pods-web3swift-macOS_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 522015696E45158812DD4C5CF37CD544 /* Pods-web3swift-macOS_Tests-dummy.m */; }; + B591BC023D1E6A16FCA94930AABFD4E3 /* scrypt-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B89257C4F705CF119D8638E268E65E /* scrypt-iOS-dummy.m */; }; + B5D7A26D0B0598AB3F160AAF17DE949A /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21FCC5A27F315ACD9DBDF025F826D31F /* ABI.swift */; }; + B640565E1593B250390597C2651078A4 /* BigInt-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 816CED29D01C20C94514563C21AC3763 /* BigInt-macOS-dummy.m */; }; B716300FB849152C5C4C3DC9C14C8E8D /* Authenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E53BAD514C4F4E022EEBCEB1ABC3943 /* Authenticator.swift */; }; B73725553EA7209B295AFAAF5F1641C9 /* scalar_8x32_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 81ECE7FE7C889AF9F1B739830D9A59B0 /* scalar_8x32_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - B747E0DC81EB6CFCD9751A67CC0C6D17 /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */; }; B8F37FA0A973FDDC27C6425371AEEAD6 /* ecmult_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4C0B3D9EC3E926E106CA2DE8CDEAF9 /* ecmult_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; B9273317460CC1FE679BEB887B22502C /* ecmult_const.h in Headers */ = {isa = PBXBuildFile; fileRef = 05D37539C41BE79893FEDECCB70FC25B /* ecmult_const.h */; settings = {ATTRIBUTES = (Project, ); }; }; B95242B48A9EBE0FD2ED1CBD13BCF4E7 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = B621DCE8D325B673C6F300B7C2CD478B /* Promise.swift */; }; - BA33E96D5FF50CFFA5727208AC91DF2B /* SipHash-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A44AEA30AD48DB0294CA791DF2D0996B /* SipHash-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B955645F6EE6DB2D8D4F86F2465D6F32 /* scratch_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9C2CC8E90A38FD011723EB814A5A52 /* scratch_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + B9F6546BE8EA558E31A1E43AF37EAB83 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = EA5B0A3B538B56303C1A061E2514BF07 /* hash.h */; settings = {ATTRIBUTES = (Project, ); }; }; BAD670F268A8F2AB9BB2BD41BA18BEFA /* Padding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3654C41FDB74088592DA713158476E5B /* Padding.swift */; }; BB71E3B83F7833D6D6D7FDEAEA0BD96B /* CipherModeWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1D1692A2F154E2828E569943ED540D4 /* CipherModeWorker.swift */; }; BC9A423C1774D10E28F894E40D5AE2A3 /* Scrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1C65F271D54976AEAF5B1CB4522A471 /* Scrypt.swift */; }; + BCD0F7C3FAC2C35AF21AF6BEB42F4C8A /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21FCC5A27F315ACD9DBDF025F826D31F /* ABI.swift */; }; BCE563F1B7FA756C138FC28179851EC7 /* NSTask+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FFFD5E940B31BAEC3CCFD05B093B6F8 /* NSTask+AnyPromise.m */; }; - BE1CE42FE75F14BC5B71AED3DC543BCF /* NSNotificationCenter+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = D895276EEA2D99E4EBF5B7FE4596872B /* NSNotificationCenter+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; BF3AD846ADBFAF021EE70996A7ED071A /* secp256k1.c in Sources */ = {isa = PBXBuildFile; fileRef = AD85FC46DA6BEAA980010B0C5F2BEED3 /* secp256k1.c */; }; BF3DECFBE86EB35CFAC5BAE1C0268391 /* UIViewController+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 05CC03039B7AACA3DE3D601125B19CC6 /* UIViewController+AnyPromise.m */; }; C003185B61E62CF4BD4690EDBD0719A3 /* Blowfish+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB31CE10E8BEEBFC7B50C9F8A97E10A8 /* Blowfish+Foundation.swift */; }; @@ -363,13 +367,15 @@ C0951D3A5CDA6E27EDC2A65A700C8D8D /* Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BECCA6149031B2659A0EECDCC2E4A5 /* Cryptors.swift */; }; C0F8B164DDA6157937A300C207D56E4E /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B1DC98FA2ABF0645707ED4C6FF5D77 /* Subtraction.swift */; }; C13DF5C0C3793C734EF3847DE3DFE9A0 /* BufferStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63FD1428729C05C5A88BE98C12254ADA /* BufferStorage.swift */; }; + C14B99FFC98C0A425C680FE136F1D1D8 /* libsecp256k1-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 12EC94EA370709920BAE52B23A048E1A /* libsecp256k1-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; C1D9D7ECEE62A04544DFA4A2889BCC7D /* Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70E24C26EF4EF9C8244E7F94F175FD51 /* Configuration.swift */; }; C510E3B26A4F4876F89A59D5D2F22006 /* Collection+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67F74D8CA41DCC5236159301ED92764C /* Collection+Extension.swift */; }; C540A907CA97EA4FB79818D21D2E7CD0 /* Salsa.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB74063F2F7DC76E97D34EC40D093C52 /* Salsa.swift */; }; + C641D8B5081A582E0AFF1078B59C6DF1 /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EB87A244E5248ADD8D124225B21323F /* PromiseKit.h */; settings = {ATTRIBUTES = (Project, ); }; }; C6896E99AC63CF7E9506A6E8CA124CD5 /* PKCS5.swift in Sources */ = {isa = PBXBuildFile; fileRef = F964C89C691E6FE6350F48A4A3E1DD52 /* PKCS5.swift */; }; C70A86EC15752B0731CD015CEF45CAAF /* PBKDF2.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BBEB708E926639930327B2FC6F3759D /* PBKDF2.swift */; }; C83FF7FC178BF33DD5052001F05A83BF /* Updatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DE68FEECDD098908A9003BDA40307F /* Updatable.swift */; }; - C89964A06EC88B3B556310F199344D68 /* Pods-web3swift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E91F337EA3979DB5DD84C325A340270 /* Pods-web3swift-macOS-dummy.m */; }; + C89964A06EC88B3B556310F199344D68 /* Pods-web3swift-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CCD178AF0C0283D14572A07109AABF34 /* Pods-web3swift-macOS-dummy.m */; }; C969C4CB640BF795B01F3648075A446D /* Bit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92C1E2F71DB75395E28DC3213425381D /* Bit.swift */; }; C9B648C3CD7850DC94E49F5F5329CA81 /* Salsa.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB74063F2F7DC76E97D34EC40D093C52 /* Salsa.swift */; }; CA9B0594A947364945D728CD48CE2675 /* SwiftRLP.h in Headers */ = {isa = PBXBuildFile; fileRef = B8EBC720E3207E6F08965D7549AAFEC6 /* SwiftRLP.h */; settings = {ATTRIBUTES = (Project, ); }; }; @@ -377,27 +383,24 @@ CBAB02308405D4C1CB4271EC4AB971F6 /* Words and Bits.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6E2E2ED41464CEB00832B492D67ECB /* Words and Bits.swift */; }; CC44CC395434DAA9F2F7DA1D8E1C341A /* StreamEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 575A44CBD254AB2012072A25C3D25D19 /* StreamEncryptor.swift */; }; CD1400BD40761FCBE46B17F6B8AA0AE9 /* HMAC+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAF14DF7DD65D242909C4D06F8C00DEF /* HMAC+Foundation.swift */; }; - CD6EC5B134FE5E926C6F6BC0BCAA6826 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 948894E3D7054F9BEAA31B5D6061F696 /* PMKFoundation.h */; settings = {ATTRIBUTES = (Project, ); }; }; + CE15D3C4822F0B1D8A0C774B3FEE3973 /* ABIParsing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */; }; CE2BCA099CEA37688059295108D416AD /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = C04C575F1277CF14F506F691F9C669FC /* Random.swift */; }; - CE6059517A03418C389CF50D78287474 /* EthereumABI-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = BC2EE2AAFC0C186078B992C06F762E8D /* EthereumABI-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - CF08F59B4689BEF43A5B7F883C330BBB /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */; }; + CEAE3126068D61D6D1DEE7A701376557 /* ABITypeParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */; }; CFBF7084F0841CB8777A37BC16092662 /* after.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB5F00D821CDC9BDA7F7709F07DD0F3 /* after.m */; }; + D0277DDDF21D96ACB1EA2C35C2455BDF /* scratch.h in Headers */ = {isa = PBXBuildFile; fileRef = 449887D7F7932CFAA2B3FAE0BEE1594B /* scratch.h */; settings = {ATTRIBUTES = (Project, ); }; }; D10BCDD795487B1471ADAF3F0D4485CA /* lax_der_privatekey_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 15BED946B8A96EDBF82439D38353B748 /* lax_der_privatekey_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; D1F0182968E66E044F80A9822BE772F0 /* Hashable.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA975F09047F404D3183C92FCA1AD829 /* Hashable.swift */; }; D29E48A6FDC719FD2FF024625C37CA22 /* BlockCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4992855757033544670BD38D4484C08 /* BlockCipher.swift */; }; D2C9540655CD82F8A12305D2B953BD71 /* NoPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8172257020A0ACF61B9FA6264236BB6 /* NoPadding.swift */; }; - D32E984FBE218628DC804D3F92B394BF /* EthereumAddress-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38C29EC87775E098CCEE6CEB4ABA65AA /* EthereumAddress-iOS-dummy.m */; }; - D3B166774A35F98D4C599A9B4DCBDC82 /* SwiftRLP-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 73A68F048F801AD8527F07F7706E57CE /* SwiftRLP-iOS-dummy.m */; }; - D42A1D2FC1FD4BC6485683430F314F8D /* Pods-web3swift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8C19543EF3AA4D9801DBE55E22E211 /* Pods-web3swift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D3B166774A35F98D4C599A9B4DCBDC82 /* SwiftRLP-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EBAA5566E801EA55675E774C73EC9B68 /* SwiftRLP-iOS-dummy.m */; }; + D42A1D2FC1FD4BC6485683430F314F8D /* Pods-web3swift-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D8C2202C63BDA7C0F7AF6C89B6273FD /* Pods-web3swift-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; D486D63B958DFDD8C755799433969946 /* hang.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79B85C952F225CDFB5B272237402E77E /* hang.swift */; }; D4C0E6966E5FED70544A97ACC237CF3A /* Digest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 721ECA637BED3AE2394AA1573B89D998 /* Digest.swift */; }; - D4FBEF46E2616F942B65FF779B374513 /* BigInt-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F0A15233EFEAA840C94D98DFD9C1F14 /* BigInt-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - D528114C056635E14284458D9163DE3A /* group_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 49F74127A936A7C34D38E84140D1EFAC /* group_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; D57E19C3E86448FD0CA3B9742DB49497 /* StreamEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 575A44CBD254AB2012072A25C3D25D19 /* StreamEncryptor.swift */; }; + D5C3C8E572CE88A1170DBA61CD43828B /* PromiseKit.root-CorePromise-Foundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A08DB7A40A2EAB27F94BB45DF634A4AC /* PromiseKit.root-CorePromise-Foundation-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; D5F3CB86000211CEE2280DE68F875D8B /* basic-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; D6BDAA0C8CA8843CE436AA3573C378F9 /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EB1CF4FDC03241B81C3C3B6F58B9E0 /* Square Root.swift */; }; - D6DCA066BC93D939AC99A4E197574317 /* secp256k1_swift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E3FCE1E29EDFA06494CDD00767685E3 /* secp256k1_swift-iOS-dummy.m */; }; - D7346C912787D714E05528CDDB4A75F8 /* SwiftRLP-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1250F72B02037FC0CC2220F528B17381 /* SwiftRLP-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + D6DCA066BC93D939AC99A4E197574317 /* secp256k1_swift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9450E7D1C947B8B26E2581CEE561EE22 /* secp256k1_swift-iOS-dummy.m */; }; D7705513171AE49C798D5A002BEC0737 /* scratch.h in Headers */ = {isa = PBXBuildFile; fileRef = 449887D7F7932CFAA2B3FAE0BEE1594B /* scratch.h */; settings = {ATTRIBUTES = (Project, ); }; }; D7875CD7BA041CED180D37E0448C09A8 /* Blowfish.swift in Sources */ = {isa = PBXBuildFile; fileRef = F063BD5FB8772F058E36A1292962E899 /* Blowfish.swift */; }; D7AA60A9860ED2E7DD7440AC9D799A04 /* NoPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8172257020A0ACF61B9FA6264236BB6 /* NoPadding.swift */; }; @@ -405,9 +408,10 @@ D81D753CE65D4B1E0F26F57606BD0F6C /* Bitwise Ops.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2631D55D12027D3935D7B85C6A624F09 /* Bitwise Ops.swift */; }; D9BA126F50DCB7B25D32447C2E8931CC /* field_5x52_int128_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FB6255E4560252B9DC0BE760F34C261 /* field_5x52_int128_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; DA1588018CD8315CFCBB2E0806B753E5 /* Array+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FC232D3CEB1791A116CFCB46BCCE606 /* Array+Foundation.swift */; }; + DA1BCCCA7C14C2EBC82C5FB68B56D506 /* field_10x26.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DCAB923DFB091E9F4A71F5FD29FEB40 /* field_10x26.h */; settings = {ATTRIBUTES = (Project, ); }; }; DA1E098DCF3DEE1C5D699424486C1D64 /* SHA3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C1637249D7E9C69FBC55792F4BFF580 /* SHA3.swift */; }; + DA4D5FDFBCF015FFBE6F1AC4611F1A78 /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B4899E422658B96ADF84B5239C418D /* ABIElements.swift */; }; DAA014164E03E57A7D043C270B6C9B84 /* PKCS7.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C5181B2E5F94EAFEF5F04D83E0FFD13 /* PKCS7.swift */; }; - DCA7BBA544AC372B023678542AB72A6D /* scrypt-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 55609C780EA603377D9F33E7661A79BB /* scrypt-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; DD67FFA8EE4F3833E14B823CEE55424B /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = B621DCE8D325B673C6F300B7C2CD478B /* Promise.swift */; }; DD7EF0CDE3C0223DD3933632CDB2AB01 /* Utils+Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F98F9737D714C11C13F01403ECACC354 /* Utils+Foundation.swift */; }; DDAAEE587CECD365E4372D6AEF67D713 /* lax_der_privatekey_parsing.c in Sources */ = {isa = PBXBuildFile; fileRef = 60243E0B2E1CDFC9B6DF789487982447 /* lax_der_privatekey_parsing.c */; }; @@ -416,83 +420,84 @@ DE86F4DBFBAE2D9EADB44907B3B7FC1D /* SHA3.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C1637249D7E9C69FBC55792F4BFF580 /* SHA3.swift */; }; DE9F01F9CE4B8C74DB084D584C1F4DF7 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81392F0749049A8C999337DDA716A157 /* Error.swift */; }; DED6A3731F280B7A5C4BA0088245421D /* String+FoundationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2742B99A93E16E813DA0B71800AAA56 /* String+FoundationExtension.swift */; }; - DF3C881F6AA58663EA27A37DDC93CBD1 /* SipHash-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 48FCAFD34D22FB4A18FEF12007E2FAB3 /* SipHash-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - DFB15CA333EE077FC25900A712E89DB7 /* util.h in Headers */ = {isa = PBXBuildFile; fileRef = 003EF4269A56F0C44E64E737009329A6 /* util.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DF094246BD7D1C3F0B90908FE27CE355 /* field_5x52.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C5F41A51FDAEBAF8F849026A9B09E2A /* field_5x52.h */; settings = {ATTRIBUTES = (Project, ); }; }; E15BFF7A7883A5BFB699464499718E52 /* BlockEncryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F9EE37EACAF96F7344C1F0AEA46F02C /* BlockEncryptor.swift */; }; E1BD1671D6E0A0FDAC9298373486DA9F /* Square Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EB1CF4FDC03241B81C3C3B6F58B9E0 /* Square Root.swift */; }; - E1DA6C9BC2295C7CF04AD192B8FE26FF /* scalar_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4D3EFB3ECDE366218A9D0848F3C58B /* scalar_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E1BE5D29622CD818FC3CE0D0E9D944E3 /* num.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D1B636300E29159DFA920C5BA2E5F7C /* num.h */; settings = {ATTRIBUTES = (Project, ); }; }; E211E262D4BD3E0165706646B9DBAD9C /* Scrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1C65F271D54976AEAF5B1CB4522A471 /* Scrypt.swift */; }; E2304F8E1E94478D68A8EC526EDCCBAD /* scalar_4x64.h in Headers */ = {isa = PBXBuildFile; fileRef = E1999CB16AEF90FFCC762EC5BA3C538B /* scalar_4x64.h */; settings = {ATTRIBUTES = (Project, ); }; }; E254A91C69969B33ED1BF9BDE5B19AED /* Data Conversion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B8BA477868467E169FF27E9193A10DA /* Data Conversion.swift */; }; - E316F68C4FD62BB0A294D29DB03DCB5D /* scalar_low.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA2CC618DEF4A5E27ADED64FC6F96A5 /* scalar_low.h */; settings = {ATTRIBUTES = (Project, ); }; }; E350B1B350751D65ED5A630756C5DDAF /* ECB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F1D20DF17340D045A1FDC2D1D64449D /* ECB.swift */; }; E38ACED69C24647A7A07B2B72C7580BD /* BlockDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E248D955FFD067941A82DF6B7B3C4F /* BlockDecryptor.swift */; }; - E3D91DEF848307121405F35618B723BA /* ABIElements.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2B4899E422658B96ADF84B5239C418D /* ABIElements.swift */; }; E4FB02298751B056940AB39261020DAB /* CTR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A3D345B7D38F0B4BAB39F24505D5E5E /* CTR.swift */; }; E59A5E45ED8B25E70C9C6A6E89C566D4 /* scalar_low.h in Headers */ = {isa = PBXBuildFile; fileRef = ABA2CC618DEF4A5E27ADED64FC6F96A5 /* scalar_low.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E5EFEA69608F27C359D3B7989D25F0B1 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */; }; E667D403FE161578DA4BD7A748C01FE0 /* when.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E0D3EDB8E94AA59C54E4808C60A2744 /* when.m */; }; E6950B7C92641175616A7FE09FA2574F /* Checksum.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43C25934B3D3377624DF16153BF76578 /* Checksum.swift */; }; E6E4C025FE5F1391E96A65CF5F594591 /* Catchable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96C4685C831E862AD0F75DC78A3A5B61 /* Catchable.swift */; }; - E70AA4690673CA6F6D246FD4F786AE99 /* scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = 07853D5BF50E26B878B7B1D18CF18F06 /* scrypt.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E7DEA0B8E0F9EAF68841EDC4B8AC3396 /* field_5x52_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = ADB4E2DA064200DDCD42C634CBC39977 /* field_5x52_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E73B7A279183289119158D0098CE5593 /* NSURLSession+AnyPromise.h in Headers */ = {isa = PBXBuildFile; fileRef = F269536FCE8F92893C1DF08F94904EBD /* NSURLSession+AnyPromise.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E8E53A24F88E4B1F7320170A34F532C7 /* hash_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A1687163A14D55D2EF896A97CD937491 /* hash_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + E96683BDB351B577E8F4C46E4E7A99A6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A5C7F3160C1A282D95FFBC31C59404D /* UIKit.framework */; }; E96D904E355EFA92932B4B71E59472E4 /* BlockMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E773D6D25B2A450D593D189B85B7DA /* BlockMode.swift */; }; - EB4F4E8A7A76E8F00B6B6B9D5D93C6BE /* EthereumABI-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C742D7E4D064B53F3E8BD2061CEB4650 /* EthereumABI-macOS-dummy.m */; }; EB52C8F7723FCC94649C4768B67E2E3A /* SHA1.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDFC58447BAB63CE30E97C059F8345F5 /* SHA1.swift */; }; EB9345AB32E8C1BCE5C88C239CFAF2B9 /* AEAD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05DB571F7562C6E5DAC821BF33DF2ACE /* AEAD.swift */; }; EBC1181767AADF30189982641F9B9648 /* Prime Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A85805FE098BD65AFD79ABDC5A9DDF7 /* Prime Test.swift */; }; EBD3735323AB89C906B5E1C536976080 /* BlockDecryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E248D955FFD067941A82DF6B7B3C4F /* BlockDecryptor.swift */; }; EC0634AA758562515F6A6C370F9C7102 /* lax_der_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 58FEC74B279A9D31ADE339DE27E86FA9 /* lax_der_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EC534D19303041971EDE9C1C79A0F5FF /* ABI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21FCC5A27F315ACD9DBDF025F826D31F /* ABI.swift */; }; - ECAAA1869ED698C502004DE2B539728F /* basic-config.h in Headers */ = {isa = PBXBuildFile; fileRef = 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */; settings = {ATTRIBUTES = (Project, ); }; }; ECF940C778D08964A4CC5F1090E5B694 /* num_gmp_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A69680CF78C97C6DA250B325FFD04251 /* num_gmp_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; EDEB77EE161E91BE126DB5BECD0D2F88 /* AES.Cryptors.swift in Sources */ = {isa = PBXBuildFile; fileRef = B453F34A70203AF07F27C5AE1B2A0518 /* AES.Cryptors.swift */; }; EE783493F1B7530C3742E03C554493DA /* num_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 982E6E4B839762B67F92588D34990052 /* num_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - EEDA1D167622551D8F61394C9E16FDC5 /* Result-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 37A3BB2B9627AD42F4EC73AE040C9A18 /* Result-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; EF2912DE621D3B57FB6A277CBF39B316 /* GCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B830B448B480E1AE7466CE0AB7565D1 /* GCM.swift */; }; EF56A1A9A97666C4D03AA9AAF5A37918 /* Strideable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34A205CA261F59DB1AC7C1BE4E2ABE19 /* Strideable.swift */; }; + EF62E2EFC77C073FE4E28108723ACF4B /* BigInt-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F6C76BA5D1065824F88B06602E1A04 /* BigInt-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + EFB12B5682D23EBB212EC96E839A72A2 /* ABIParameterTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EC6627D0179A3BE1D7BB58F2DBF51E7 /* ABIParameterTypes.swift */; }; EFDC04F64EB4766D33AC8058E12B4561 /* GCD.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB02248C062005D2F2620C9F81EC5ED4 /* GCD.swift */; }; F0444E1F4E7C762ECC68CF056B05412E /* when.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E0D3EDB8E94AA59C54E4808C60A2744 /* when.m */; }; + F0DFE753734F032747272B65DBEEF3A8 /* field_10x26_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = F7ED977AF2E31DEA78D850BDE6C9F601 /* field_10x26_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; F1DD83612B8154D1465CF398FCFA9596 /* CCM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31BA61BBC2E9A900CDFD9106099E71AF /* CCM.swift */; }; F281004328C1EE7335B9F8B4DF6D8F0B /* race.swift in Sources */ = {isa = PBXBuildFile; fileRef = C799FC61BB50110B0EF9812635A7CF8F /* race.swift */; }; + F283953424AF900B7DDCD8D69382CC31 /* secp256k1_ecdh.h in Headers */ = {isa = PBXBuildFile; fileRef = 516F61020B364118837B9099CD918F5F /* secp256k1_ecdh.h */; settings = {ATTRIBUTES = (Project, ); }; }; F2976AA313F35FAE9B9112630BAEF66D /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = F7E0FE543A2A814147E52BD4424892FD /* fwd.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F2CEA0F86BECA15D8730D3D53D9EAF69 /* SipHash-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 20C577019086BC2EE2D24C2E5BF910AF /* SipHash-iOS-dummy.m */; }; + F2B6BA61DB14E235D4EEFFF61BE42C74 /* EthereumAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F2BA57EDD0CBD8A486E937BF6075005E /* lax_der_privatekey_parsing.h in Headers */ = {isa = PBXBuildFile; fileRef = 15BED946B8A96EDBF82439D38353B748 /* lax_der_privatekey_parsing.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F2CEA0F86BECA15D8730D3D53D9EAF69 /* SipHash-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1775FE4529A63B3ACF1AF8049A86B5B5 /* SipHash-iOS-dummy.m */; }; + F3490F456CCC074812E7A772E3BE2F89 /* EthereumAddress.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */; }; F3B4A2958AB11045072673A69A78A808 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBE693F0F5E15CCA4AE9D51B9A369B70 /* Box.swift */; }; F48FDD8548C612FB765A5F4D3F2AAEB2 /* PCBC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0CB4379D0092F51F5C1232B3CD03D3 /* PCBC.swift */; }; F58374064F4B7EFE824BF746EABBEE37 /* secp256k1.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D5996479C4CB892D1B062406C8C08F6 /* secp256k1.swift */; }; - F5AE13A73A33CAF4BA119DDEBCAC5809 /* SwiftRLP-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9E675BBBC75B01E6961483170B6E7F /* SwiftRLP-macOS-dummy.m */; }; + F5AE13A73A33CAF4BA119DDEBCAC5809 /* SwiftRLP-macOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CDB465170BB966F97819E263D12E34D0 /* SwiftRLP-macOS-dummy.m */; }; + F6752D4792009A24408BE5E316FDDDE5 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = F7E0FE543A2A814147E52BD4424892FD /* fwd.h */; settings = {ATTRIBUTES = (Project, ); }; }; F6B78FA78EDE2C42ECDEE022019AB812 /* lax_der_privatekey_parsing.c in Sources */ = {isa = PBXBuildFile; fileRef = 60243E0B2E1CDFC9B6DF789487982447 /* lax_der_privatekey_parsing.c */; }; F6C04F880164DA1647FDF6654CD65CBE /* Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85342594A31BFFC584D4660A9041CF48 /* Codable.swift */; }; - F6D7738BDDDF311DBDB1B103A5A1F6E6 /* scalar_4x64_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CE3A28090BEEF1B09E865F4962D871 /* scalar_4x64_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; - F6DB885F4AA84A99F9B5778AA1E2D3DA /* hash_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A1687163A14D55D2EF896A97CD937491 /* hash_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; F6EEBE907D9BF3B0332ED86D67236441 /* BigInt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1782185CE59A4E4F74A5C0258C3B5F61 /* BigInt.swift */; }; - F78A144D256C3A6F8F6CCB64E35E869F /* scrypt-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 417BA17C9527B36A6953928718163ACE /* scrypt-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F720A1684F0AACCAFF9859F9C8078049 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 948894E3D7054F9BEAA31B5D6061F696 /* PMKFoundation.h */; settings = {ATTRIBUTES = (Project, ); }; }; F854EACBF11549213B26B4748FBB94A0 /* Subtraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B1DC98FA2ABF0645707ED4C6FF5D77 /* Subtraction.swift */; }; - F8977F910FD88CA3560E0435ACA41270 /* field_5x52.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C5F41A51FDAEBAF8F849026A9B09E2A /* field_5x52.h */; settings = {ATTRIBUTES = (Project, ); }; }; F95445AB786CF29CEA99E52C88BFE706 /* AES.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E6FCC003B1158AFE68C8101E9DC9B0 /* AES.swift */; }; - F9A83224C63AF5F18AED311461D71668 /* BigInt-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A105001ACFD1F5004F2225CB06D4CCA /* BigInt-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F9DD21DBA56A782D3D51A7414954A9E2 /* scalar.h in Headers */ = {isa = PBXBuildFile; fileRef = 2716312EADA930757B04015685EFD479 /* scalar.h */; settings = {ATTRIBUTES = (Project, ); }; }; FA47C2FD4BE0AEE4BBB8F078CEDED890 /* Cipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = D62515D5BE9A59FE5C9041B4EBE9CA58 /* Cipher.swift */; }; FB3B4D902E0078517C1A8D1A64E0D405 /* PMKFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 948894E3D7054F9BEAA31B5D6061F696 /* PMKFoundation.h */; settings = {ATTRIBUTES = (Project, ); }; }; - FB5385DF7643AC5570E694BBA6406E0B /* scalar_low_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A051E774D4D49F8D0B94D9E529E3A524 /* scalar_low_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; FB5F656078445F49C1D464089236D551 /* NSNotificationCenter+AnyPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 59463535BD4D6DAD08D36EAF4421D11D /* NSNotificationCenter+AnyPromise.m */; }; - FC4AD96F8C8D695E021F598BEAB3A13D /* EthereumAddress-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 59AB171D72BF347C5F7A067C2AAB5384 /* EthereumAddress-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FBA0C0B9F810F412F1B19B633DF77D78 /* BigInt-macOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A664C0C78E9A17B67C1E2444F370C841 /* BigInt-macOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; FC76FBD9E6420F2FD85F7F5EC55B9A31 /* secp256k1.h in Headers */ = {isa = PBXBuildFile; fileRef = D318DFC773B02CFC92B543471C937BA7 /* secp256k1.h */; settings = {ATTRIBUTES = (Project, ); }; }; FCA65EE46FA16DBEA0AD94E3C1C2FD03 /* Guarantee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EFC88D3858F1B2D4952BAA697C360D3 /* Guarantee.swift */; }; + FCB573EB81729BFA19963E69E2A91CA4 /* field_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 5300C71B6A3AB50A1D7ED70A41FAAD6B /* field_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; FD6E4E6D2515323B98F8499CAF7D8486 /* ZeroPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6E02047F0F6A6150C26B56EEF63F55B /* ZeroPadding.swift */; }; - FE52A2BA42E76A122211A8115915233D /* Pods-web3swift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D8F688145BCFE1FB8B76299CC261A05E /* Pods-web3swift-iOS-dummy.m */; }; - FEBCBEDE2597673C7D802896774CDCBD /* Result-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A844BDD60081AA12674BC4FC33E5560 /* Result-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FDCFBEFC7824A92FB550C46D4F6B0141 /* ecmult_gen_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = B9A05629BB0205300B694B527AD16E56 /* ecmult_gen_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FDE6F49BA9C3731D172E46EA428D8F51 /* ecmult_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = FA4C0B3D9EC3E926E106CA2DE8CDEAF9 /* ecmult_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FE1AE77DFA62EC3B659F1A98D2367EC7 /* EthereumAddress-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 502350FD0523CAD681AB6D24DFFBE55E /* EthereumAddress-iOS-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FE52A2BA42E76A122211A8115915233D /* Pods-web3swift-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 201CB380345E9D668D690C12DA30C425 /* Pods-web3swift-iOS-dummy.m */; }; FF7A4D23C449D4BB4A93095BB9F4ECA5 /* when.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4426237EBEE47CAC169D6291F77423 /* when.swift */; }; FF83256DE909E2F86AEBBF4E51F42EF0 /* Collection+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67F74D8CA41DCC5236159301ED92764C /* Collection+Extension.swift */; }; + FFCA65A5E63D601537B9642D26E4B00E /* main_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = A3B7939D27D85A4C92DE2CD6D6C8E4EB /* main_impl.h */; settings = {ATTRIBUTES = (Project, ); }; }; FFD1323B3E415476F73D432694CC4D35 /* Rabbit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 129427E2D354B71D619F0DAC197039BD /* Rabbit.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 06FAFF995DCDF3CCF5C19865E9FCA57F /* PBXContainerItemProxy */ = { + 0737B238CD911BAE733386FD638A15C4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = AF9F48E6961507C0E2FD7A3CDBC652DA; - remoteInfo = "BigInt-iOS"; + remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; + remoteInfo = "CryptoSwift-macOS"; }; 099BB689D5DBD5D5DEBA336FBD217742 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -501,26 +506,47 @@ remoteGlobalIDString = 60BB8021A6290DE4F66E9D4A96906F3C; remoteInfo = "Result-macOS"; }; + 0A0C837AFCE36F92B4F82CAB661E4CC7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = EE65EFBDF686C56EA74D41CCE0304FCC; + remoteInfo = "scrypt-macOS"; + }; + 0B5B137822F6E32014FAEB9D19B42719 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 02DC76A9AFBA2BA6CA9EBA39CCD34BCC; + remoteInfo = "PromiseKit.root-CorePromise-Foundation"; + }; 1074B809BD71CC2DC821BC5E173A4740 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = F8C504FC3CE2FB81EF2C3E4175B28B3D; + remoteGlobalIDString = 54A555F757645624A18AC783E60AA5FF; remoteInfo = "EthereumAddress-iOS"; }; 12BDC3CC8385F7A17B4C9A4084570897 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = FFBF3D20256EEEEE218C227988266104; + remoteGlobalIDString = BC7EB6A396C8F584F40578BB73297054; remoteInfo = "EthereumABI-iOS"; }; - 1E5017C3A1512E67B0318DD1DACDE515 /* PBXContainerItemProxy */ = { + 155B59A55F5C62D2DEAA3ECC5A3C5818 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 023FD8884DE6975FECF83E672E5A51B6; - remoteInfo = "Pods-web3swift-macOS"; + remoteGlobalIDString = F25097D79C7232475816DB85533AC607; + remoteInfo = "secp256k1_swift-macOS"; + }; + 202775A74F5C90739C89BB1069E30899 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = FC8EBDB08226B38D7EA8E5DA8C50B149; + remoteInfo = "EthereumAddress-macOS"; }; 20A317B02DEAB0C5E12252BAD3678AC3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -529,12 +555,26 @@ remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; remoteInfo = "CryptoSwift-iOS"; }; - 23B4CA009D06E1EB2F03415680002335 /* PBXContainerItemProxy */ = { + 244D1DAFE6DC34C336F538725918CBF2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 9646F4C6B5DB5298F5EEE5871120A244; - remoteInfo = "BigInt-macOS"; + remoteGlobalIDString = 16689698E943DBC08E5169468314C018; + remoteInfo = "Result-iOS"; + }; + 2578D9E3E5F578BBD12A1383306E148B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; + remoteInfo = "CryptoSwift-iOS"; + }; + 25F0C8FEDB385B9EBC7B168D589001EB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3B79F6DB09B597AAE9D3EB939DA463D8; + remoteInfo = "SipHash-iOS"; }; 283B81AF6A42B35D635E192D621E2B56 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -550,19 +590,26 @@ remoteGlobalIDString = 4FCBE56BC5E931FDC43C642250037C1F; remoteInfo = "SipHash-macOS"; }; - 2D8C658A18F2B96B45403A04ECD943E9 /* PBXContainerItemProxy */ = { + 2AC6F8C923B851332C51CA80A620859B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E03BC878947EE75B154F4C52126FA465; + remoteInfo = "SwiftRLP-macOS"; + }; + 30FE81765DC202183BFE7476D4AFEBE5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 1084E340C76D167B42F96381D5AC59FB; + remoteGlobalIDString = FC8EBDB08226B38D7EA8E5DA8C50B149; remoteInfo = "EthereumAddress-macOS"; }; - 366CCE30759EB3C0FF8E45BE9572B007 /* PBXContainerItemProxy */ = { + 3691A47BEB66CE2F0A296A6DDD062D61 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 56C190CBC3444CE65376067572B13693; - remoteInfo = "Pods-web3swift-iOS"; + remoteGlobalIDString = 39C6DF22D4F83A78CB7F52D86381D937; + remoteInfo = "secp256k1_swift-iOS"; }; 36A6BC9A8529E6996209859ED7E7041A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -578,6 +625,20 @@ remoteGlobalIDString = 4FCBE56BC5E931FDC43C642250037C1F; remoteInfo = "SipHash-macOS"; }; + 3DD990539DD329F11028057AC099349C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; + remoteInfo = "CryptoSwift-macOS"; + }; + 3F7440A6C80B47AD5D485865659447A9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF9F48E6961507C0E2FD7A3CDBC652DA; + remoteInfo = "BigInt-iOS"; + }; 42C05260B28DAAAD5E44B471A57BDE2A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -585,6 +646,13 @@ remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; remoteInfo = "CryptoSwift-macOS"; }; + 45009523CD4B5E54F0CD7913E4168D8E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3B79F6DB09B597AAE9D3EB939DA463D8; + remoteInfo = "SipHash-iOS"; + }; 48C230599D2897ADA99AF94AE1966B79 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -596,28 +664,28 @@ isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 1084E340C76D167B42F96381D5AC59FB; + remoteGlobalIDString = FC8EBDB08226B38D7EA8E5DA8C50B149; remoteInfo = "EthereumAddress-macOS"; }; - 59F60AFE805CEBB2EDEC5D68F84B1576 /* PBXContainerItemProxy */ = { + 56C42F89547AE725E8DAADB5B92C1A02 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; remoteInfo = "CryptoSwift-macOS"; }; - 5E5A5367425FAE2AC8C07569D7CBE881 /* PBXContainerItemProxy */ = { + 5B0A2A984B718061682C5507079892A3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; - remoteInfo = "CryptoSwift-iOS"; + remoteGlobalIDString = 54A555F757645624A18AC783E60AA5FF; + remoteInfo = "EthereumAddress-iOS"; }; 61558A075BFFFBA7882CAEE8C5732ECE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 75EC00B8FD54D720BB772CA16EEAE742; + remoteGlobalIDString = 27805A6608FECCB809074EEC2F0F69FA; remoteInfo = "EthereumABI-macOS"; }; 629DA96E2410B6F480F103C731020B15 /* PBXContainerItemProxy */ = { @@ -627,12 +695,19 @@ remoteGlobalIDString = F25097D79C7232475816DB85533AC607; remoteInfo = "secp256k1_swift-macOS"; }; - 6AE3006AF993F15800127DD3F057F155 /* PBXContainerItemProxy */ = { + 6AB6BF4A7B32A19FFA68D59064857A60 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; - remoteInfo = "CryptoSwift-iOS"; + remoteGlobalIDString = 3B79F6DB09B597AAE9D3EB939DA463D8; + remoteInfo = "SipHash-iOS"; + }; + 6C7065F7102B1E48D8C6731EA99BFE24 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9646F4C6B5DB5298F5EEE5871120A244; + remoteInfo = "BigInt-macOS"; }; 70F9AB5B3A118321E51F635B2BEE3CED /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -648,6 +723,27 @@ remoteGlobalIDString = 9646F4C6B5DB5298F5EEE5871120A244; remoteInfo = "BigInt-macOS"; }; + 72FC4FB6861B5AFF615AF568693BB119 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; + remoteInfo = "CryptoSwift-iOS"; + }; + 7E9FF801D021932FE6CD5A50FC215166 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 064630A81A32C3F755213FAB5B3FAAAB; + remoteInfo = "SwiftRLP-iOS"; + }; + 85200095E2D745B96544DA58C9AEC3C0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 023FD8884DE6975FECF83E672E5A51B6; + remoteInfo = "Pods-web3swift-macOS"; + }; 9619E33BB76CA82AF5BCFD855D8DE72E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -655,6 +751,27 @@ remoteGlobalIDString = EE65EFBDF686C56EA74D41CCE0304FCC; remoteInfo = "scrypt-macOS"; }; + 9CDAB75F4A9C647D639794937292B603 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BC7EB6A396C8F584F40578BB73297054; + remoteInfo = "EthereumABI-iOS"; + }; + 9D9F070B9DF3E8EA98FC948BCE0C760B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = E615C0628D54019CCEE5C0CC80B55529; + remoteInfo = "CryptoSwift-iOS"; + }; + A5672221F501011F82F44F330229D404 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 54A555F757645624A18AC783E60AA5FF; + remoteInfo = "EthereumAddress-iOS"; + }; A782764E5DFF6FDC6717BF4453214525 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -683,6 +800,20 @@ remoteGlobalIDString = AF9F48E6961507C0E2FD7A3CDBC652DA; remoteInfo = "BigInt-iOS"; }; + B5AFF58C85C6EB2FD5A844723E700066 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = AF9F48E6961507C0E2FD7A3CDBC652DA; + remoteInfo = "BigInt-iOS"; + }; + B5DDBB6CA085DFEC8F30E3E72C5ED8DE /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 27805A6608FECCB809074EEC2F0F69FA; + remoteInfo = "EthereumABI-macOS"; + }; BBE7A89B2AC6FEAE944585350A21A6F6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -690,6 +821,20 @@ remoteGlobalIDString = 16689698E943DBC08E5169468314C018; remoteInfo = "Result-iOS"; }; + BF270686C220EDC32A76493A3B47D60F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 60BB8021A6290DE4F66E9D4A96906F3C; + remoteInfo = "Result-macOS"; + }; + C167EFA5FDD76187BB7E92339890F161 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9646F4C6B5DB5298F5EEE5871120A244; + remoteInfo = "BigInt-macOS"; + }; C2A6BB71B66A804F107BDE387EED9DFB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -697,6 +842,13 @@ remoteGlobalIDString = E03BC878947EE75B154F4C52126FA465; remoteInfo = "SwiftRLP-macOS"; }; + C8AE2741F71559B40B306C3F8880165F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4FCBE56BC5E931FDC43C642250037C1F; + remoteInfo = "SipHash-macOS"; + }; D23A20FA7224632C3A5FE8EA34DEF1D4 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -704,19 +856,19 @@ remoteGlobalIDString = EC4FD142A8187DC97F5C77E345493DC4; remoteInfo = PromiseKit; }; - DCA19D3862551FBDC00AAF6455703513 /* PBXContainerItemProxy */ = { + D554FE806CB38967D36C5530C7B90D2E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = F8C504FC3CE2FB81EF2C3E4175B28B3D; - remoteInfo = "EthereumAddress-iOS"; + remoteGlobalIDString = 8B46DCE922AD4DB52AB389148AB898AB; + remoteInfo = "scrypt-iOS"; }; - E0E74766A66548F2C349A91FC003EF0A /* PBXContainerItemProxy */ = { + DD3C1DA360A6106B2C1F7BE05D0FD474 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; - remoteInfo = "CryptoSwift-macOS"; + remoteGlobalIDString = 4FCBE56BC5E931FDC43C642250037C1F; + remoteInfo = "SipHash-macOS"; }; E3D60F25AD4AFCD3E199C418A6BEC4CB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -725,6 +877,13 @@ remoteGlobalIDString = 39C6DF22D4F83A78CB7F52D86381D937; remoteInfo = "secp256k1_swift-iOS"; }; + E623A89A73AE86174BDD01A08BB48DC0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 56C190CBC3444CE65376067572B13693; + remoteInfo = "Pods-web3swift-iOS"; + }; EDCBD08F51F8B9B91035148948A48489 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -732,6 +891,20 @@ remoteGlobalIDString = 78DC154308FD9CFC54ADA13FD1897A6B; remoteInfo = "CryptoSwift-macOS"; }; + EF8F4758498A5C1E32C262CDDCDA786A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = EC4FD142A8187DC97F5C77E345493DC4; + remoteInfo = PromiseKit; + }; + FD82D3DF711EDD37E31B330FC94EA442 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4FCBE56BC5E931FDC43C642250037C1F; + remoteInfo = "SipHash-macOS"; + }; FE86C0598E860121877FB385FC2747CE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; @@ -744,365 +917,378 @@ /* Begin PBXFileReference section */ 003EF4269A56F0C44E64E737009329A6 /* util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = util.h; path = Classes/secp256k1/src/util.h; sourceTree = ""; }; 00E773D6D25B2A450D593D189B85B7DA /* BlockMode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockMode.swift; path = Sources/CryptoSwift/BlockMode/BlockMode.swift; sourceTree = ""; }; - 01B9E8C5A331C30CF0ACEF7187948418 /* SipHash-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SipHash-iOS-prefix.pch"; sourceTree = ""; }; + 039C19A96EE402775DDB921C14D07D95 /* secp256k1_swift-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1_swift-macOS-prefix.pch"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS-prefix.pch"; sourceTree = ""; }; 03C5B3B2079547713108CA0A75C2D683 /* Addition.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Addition.swift; path = sources/Addition.swift; sourceTree = ""; }; - 042CC2D185140E7D725D22562A3E307F /* Pods-web3swift-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS.debug.xcconfig"; sourceTree = ""; }; - 04464806E7EED788DFE4F8D62793DD29 /* PromiseKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-umbrella.h"; sourceTree = ""; }; - 04B39BEAD1520A1D6783A85DE2C51340 /* BigInt-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BigInt-macOS-prefix.pch"; path = "../BigInt-macOS/BigInt-macOS-prefix.pch"; sourceTree = ""; }; 052A5D977253AD46619C79759D031E6B /* ecmult_const_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_const_impl.h; path = Classes/secp256k1/src/ecmult_const_impl.h; sourceTree = ""; }; - 0536186C77B05CB18765BFD4670AC3D1 /* Result-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Result-macOS-dummy.m"; path = "../Result-macOS/Result-macOS-dummy.m"; sourceTree = ""; }; 05CC03039B7AACA3DE3D601125B19CC6 /* UIViewController+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIViewController+AnyPromise.m"; sourceTree = ""; }; 05D37539C41BE79893FEDECCB70FC25B /* ecmult_const.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_const.h; path = Classes/secp256k1/src/ecmult_const.h; sourceTree = ""; }; 05DB571F7562C6E5DAC821BF33DF2ACE /* AEAD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AEAD.swift; path = Sources/CryptoSwift/AEAD/AEAD.swift; sourceTree = ""; }; + 06AC0C18C20BEB0CFF4386CE35E5CFC9 /* Pods-web3swift-iOS_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-iOS_Tests-acknowledgements.markdown"; sourceTree = ""; }; 07853D5BF50E26B878B7B1D18CF18F06 /* scrypt.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scrypt.h; path = scrypt/scrypt.h; sourceTree = ""; }; 0875934C7BD4393C0A91DFA3CF1FBBED /* libResult-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libResult-iOS.a"; path = "libResult-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 08A99F6D5C3E452229D15E3E8C1660F3 /* BigInt-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "BigInt-macOS.xcconfig"; path = "../BigInt-macOS/BigInt-macOS.xcconfig"; sourceTree = ""; }; 0930D7CD22CBEC2C752C14A123807624 /* Floating Point Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Floating Point Conversion.swift"; path = "sources/Floating Point Conversion.swift"; sourceTree = ""; }; - 0A518C6FBE9C3B3FBF40D4CDCE3BA5A7 /* PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-prefix.pch"; sourceTree = ""; }; + 09E6F0E17B524D5203BB82F0927DED7C /* Pods-web3swift-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-iOS-acknowledgements.markdown"; sourceTree = ""; }; + 0A5C7F3160C1A282D95FFBC31C59404D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; 0A85805FE098BD65AFD79ABDC5A9DDF7 /* Prime Test.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Prime Test.swift"; path = "sources/Prime Test.swift"; sourceTree = ""; }; - 0C79BC89B6EB9504D07FA8AC80365541 /* Result-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Result-iOS-prefix.pch"; sourceTree = ""; }; - 0D88C9D56C3885598E20D9718F3B8F16 /* Pods-web3swift-macOS_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS_Tests.release.xcconfig"; sourceTree = ""; }; - 0DA70B96E002212A3A39FC0943499DF6 /* Result-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Result-macOS-prefix.pch"; path = "../Result-macOS/Result-macOS-prefix.pch"; sourceTree = ""; }; + 0B3A8A1265A6932800FDF40A5E65FEC7 /* Pods-web3swift-macOS_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-macOS_Tests-dummy.m"; sourceTree = ""; }; + 0C78140B0839244D489752A02DC0913B /* SipHash-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SipHash-iOS-umbrella.h"; path = "../../Headers/Public/SipHash/SipHash-iOS-umbrella.h"; sourceTree = ""; }; + 0C7ECBFABE9667C08C3E0CAA44F61507 /* SwiftRLP-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftRLP-iOS.xcconfig"; sourceTree = ""; }; + 0DB8332926278F5C9345150A4FAD4C2C /* SipHash-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SipHash-iOS-prefix.pch"; sourceTree = ""; }; 0DCAB923DFB091E9F4A71F5FD29FEB40 /* field_10x26.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_10x26.h; path = Classes/secp256k1/src/field_10x26.h; sourceTree = ""; }; - 0E7AC8F7B30BB74533D51C9515BE9258 /* SwiftRLP-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SwiftRLP-macOS.modulemap"; path = "../SwiftRLP-macOS/SwiftRLP-macOS.modulemap"; sourceTree = ""; }; + 0E5B3140CA2A969D2F458E286A483C3F /* secp256k1_swift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1_swift-iOS-umbrella.h"; path = "../../Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h"; sourceTree = ""; }; + 0FB89A928D980618BA68DFAAA708ABE3 /* CryptoSwift-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-iOS-prefix.pch"; sourceTree = ""; }; 0FC232D3CEB1791A116CFCB46BCCE606 /* Array+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Array+Foundation.swift"; sourceTree = ""; }; 0FFAEDF6DDF0B48C4B8E16F6F9C59A5F /* HKDF.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HKDF.swift; path = Sources/CryptoSwift/HKDF.swift; sourceTree = ""; }; 11C198E371333D0B4E1F4A5B168C23C7 /* libPods-web3swift-macOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-web3swift-macOS_Tests.a"; path = "libPods-web3swift-macOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1250F72B02037FC0CC2220F528B17381 /* SwiftRLP-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftRLP-iOS-umbrella.h"; sourceTree = ""; }; 129427E2D354B71D619F0DAC197039BD /* Rabbit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Rabbit.swift; path = Sources/CryptoSwift/Rabbit.swift; sourceTree = ""; }; 12EC94EA370709920BAE52B23A048E1A /* libsecp256k1-config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "libsecp256k1-config.h"; path = "Classes/libsecp256k1-config.h"; sourceTree = ""; }; - 1341B693AC58D9D488B5E6F8B568097B /* CryptoSwift-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-iOS-prefix.pch"; sourceTree = ""; }; + 151AB966E2464DDE568760C553BC5E0B /* PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PromiseKit.xcconfig; sourceTree = ""; }; + 158416E3558983FE0049CF2D90BA56BD /* scrypt-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "scrypt-iOS-umbrella.h"; path = "../../Headers/Public/scrypt/scrypt-iOS-umbrella.h"; sourceTree = ""; }; 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "basic-config.h"; path = "Classes/secp256k1/src/basic-config.h"; sourceTree = ""; }; 15BED946B8A96EDBF82439D38353B748 /* lax_der_privatekey_parsing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lax_der_privatekey_parsing.h; path = Classes/secp256k1/contrib/lax_der_privatekey_parsing.h; sourceTree = ""; }; 16973E34A2E1AB31C96F6ECF88E284D7 /* SecureBytes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SecureBytes.swift; path = Sources/CryptoSwift/SecureBytes.swift; sourceTree = ""; }; + 1775FE4529A63B3ACF1AF8049A86B5B5 /* SipHash-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SipHash-iOS-dummy.m"; sourceTree = ""; }; 1782185CE59A4E4F74A5C0258C3B5F61 /* BigInt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BigInt.swift; path = sources/BigInt.swift; sourceTree = ""; }; + 181506C85788407EF50AD45149AC2E91 /* Result-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Result-macOS-dummy.m"; path = "../Result-macOS/Result-macOS-dummy.m"; sourceTree = ""; }; + 1938EA02A3971FFC506F4AE3E29121A6 /* Pods-web3swift-iOS_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-iOS_Tests-umbrella.h"; sourceTree = ""; }; 1A0E65E61932B728FD97FB08D42B3EF6 /* libBigInt-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libBigInt-macOS.a"; path = "libBigInt-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 1B8BA477868467E169FF27E9193A10DA /* Data Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data Conversion.swift"; path = "sources/Data Conversion.swift"; sourceTree = ""; }; 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdsa_impl.h; path = Classes/secp256k1/src/ecdsa_impl.h; sourceTree = ""; }; - 1C8F00AC871FE0EC2FBD9A40F62753CD /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; + 1C9BF049B1327890EF1791EE9A669873 /* EthereumABI-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumABI-iOS.modulemap"; path = "../../Headers/Public/EthereumABI/EthereumABI-iOS.modulemap"; sourceTree = ""; }; 1E0CB4379D0092F51F5C1232B3CD03D3 /* PCBC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PCBC.swift; path = Sources/CryptoSwift/BlockMode/PCBC.swift; sourceTree = ""; }; + 1E3533F5E7BCF44674C622F4B65BF374 /* secp256k1_swift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "secp256k1_swift-macOS-dummy.m"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS-dummy.m"; sourceTree = ""; }; 1E4426237EBEE47CAC169D6291F77423 /* when.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = when.swift; path = Sources/when.swift; sourceTree = ""; }; 1F2F682F960F536C585085773DF5BBA1 /* Cryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cryptor.swift; path = Sources/CryptoSwift/Cryptor.swift; sourceTree = ""; }; - 20C577019086BC2EE2D24C2E5BF910AF /* SipHash-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SipHash-iOS-dummy.m"; sourceTree = ""; }; + 1F6E33E00A0A6BD8A217AA65F5C1D901 /* SipHash-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SipHash-macOS-prefix.pch"; path = "../SipHash-macOS/SipHash-macOS-prefix.pch"; sourceTree = ""; }; + 201CB380345E9D668D690C12DA30C425 /* Pods-web3swift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-iOS-dummy.m"; sourceTree = ""; }; 20F31FF3FC3A98D10214EF6C7199FCB5 /* race.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = race.m; path = Sources/race.m; sourceTree = ""; }; - 21BC35B1C593381A32229DF8C9804F62 /* EthereumAddress-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumAddress-macOS.modulemap"; path = "../EthereumAddress-macOS/EthereumAddress-macOS.modulemap"; sourceTree = ""; }; 21FCC5A27F315ACD9DBDF025F826D31F /* ABI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABI.swift; path = EthereumABI/Classes/ABI.swift; sourceTree = ""; }; 224F4E958C4909EF47CB0A9F43F48030 /* CBC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CBC.swift; path = Sources/CryptoSwift/BlockMode/CBC.swift; sourceTree = ""; }; - 22C3F518991BE51FC595F8F3EF89345B /* EthereumABI-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumABI-macOS-prefix.pch"; path = "../EthereumABI-macOS/EthereumABI-macOS-prefix.pch"; sourceTree = ""; }; + 23BB48B62BD11AE739C695D5E07DF23B /* Pods-web3swift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-macOS-umbrella.h"; sourceTree = ""; }; 247DF1F9FE8902AA1A74867E7854662F /* dispatch_promise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = dispatch_promise.m; path = Sources/dispatch_promise.m; sourceTree = ""; }; - 24B5C2F89100EAE084E4AF83DDE6303D /* Pods-web3swift-iOS_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS_Tests.debug.xcconfig"; sourceTree = ""; }; - 2533EAF35B54AB44227FBC0A9BA7D19E /* scrypt-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "scrypt-iOS-dummy.m"; sourceTree = ""; }; 258EB69CA13649BFEBC389916A418DAD /* OFB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OFB.swift; path = Sources/CryptoSwift/BlockMode/OFB.swift; sourceTree = ""; }; - 25F72E78DF48560F5D210E57844ACDED /* Pods-web3swift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-macOS-umbrella.h"; sourceTree = ""; }; + 25A15390BB4A5738B4061292E3D72D43 /* scrypt-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "scrypt-macOS-prefix.pch"; path = "../scrypt-macOS/scrypt-macOS-prefix.pch"; sourceTree = ""; }; 2631D55D12027D3935D7B85C6A624F09 /* Bitwise Ops.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bitwise Ops.swift"; path = "sources/Bitwise Ops.swift"; sourceTree = ""; }; 2716312EADA930757B04015685EFD479 /* scalar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar.h; path = Classes/secp256k1/src/scalar.h; sourceTree = ""; }; - 279857EBC2D837FCAB656991E73C8C39 /* Result-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Result-iOS-dummy.m"; sourceTree = ""; }; 27D0F7DCFEE54028674461B7456DB4EB /* libEthereumAddress-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libEthereumAddress-iOS.a"; path = "libEthereumAddress-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 27DE68FEECDD098908A9003BDA40307F /* Updatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Updatable.swift; path = Sources/CryptoSwift/Updatable.swift; sourceTree = ""; }; + 292D5B486A33EC84948DFFBEBBB0994D /* BigInt-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "BigInt-iOS.xcconfig"; sourceTree = ""; }; + 29C2B20C9A04EF2CBA9D49CF5F5A209B /* secp256k1_swift-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "secp256k1_swift-iOS-prefix.pch"; sourceTree = ""; }; 2A23509A1B4B9BA0141EB958C32816D4 /* libPods-web3swift-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-web3swift-iOS.a"; path = "libPods-web3swift-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 2A57E22BE5970C0F858EB10A32A3019D /* Multiplication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Multiplication.swift; path = sources/Multiplication.swift; sourceTree = ""; }; - 2A844BDD60081AA12674BC4FC33E5560 /* Result-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Result-iOS-umbrella.h"; sourceTree = ""; }; - 2AD338DD23B43013308A65379BAEC16C /* BigInt-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "BigInt-iOS.xcconfig"; sourceTree = ""; }; - 2C1E2451F697C193D067734C4AF47482 /* EthereumABI-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "EthereumABI-iOS.modulemap"; sourceTree = ""; }; + 2B9A068D7995C83D3F75D4CD25D2735E /* Pods-web3swift-iOS_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-iOS_Tests.modulemap"; sourceTree = ""; }; + 2C06CEB32F04CBF303CC2562A16F7241 /* Pods-web3swift-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS.release.xcconfig"; sourceTree = ""; }; 2C5F41A51FDAEBAF8F849026A9B09E2A /* field_5x52.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52.h; path = Classes/secp256k1/src/field_5x52.h; sourceTree = ""; }; 2D6E2E2ED41464CEB00832B492D67ECB /* Words and Bits.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Words and Bits.swift"; path = "sources/Words and Bits.swift"; sourceTree = ""; }; + 2D7A992083CBD4D193A725E017F44EB9 /* Result-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Result-macOS.modulemap"; path = "../../Headers/Public/Result/Result-macOS.modulemap"; sourceTree = ""; }; + 2F5F058DBD6EA05A860EB5A2481950F9 /* Pods-web3swift-iOS_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-iOS_Tests-acknowledgements.plist"; sourceTree = ""; }; 2F751DF027B3EC6771E69D0DF744E2F1 /* libSipHash-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSipHash-iOS.a"; path = "libSipHash-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 303781526174E2DFA273950F9C1AEDBC /* CryptoSwift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CryptoSwift-iOS-umbrella.h"; sourceTree = ""; }; + 30FDF14BD303D5A006DF5E2AFC3C5689 /* Pods-web3swift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-iOS.modulemap"; sourceTree = ""; }; 31BA61BBC2E9A900CDFD9106099E71AF /* CCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CCM.swift; path = Sources/CryptoSwift/BlockMode/CCM.swift; sourceTree = ""; }; 32E6FCC003B1158AFE68C8101E9DC9B0 /* AES.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AES.swift; path = Sources/CryptoSwift/AES.swift; sourceTree = ""; }; - 330B8D8B0B8ACFFDF2B9292154D71642 /* secp256k1_swift-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "secp256k1_swift-macOS.xcconfig"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig"; sourceTree = ""; }; 34A205CA261F59DB1AC7C1BE4E2ABE19 /* Strideable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Strideable.swift; path = sources/Strideable.swift; sourceTree = ""; }; 3649CFBA1E54D6AD5C50879B03ED6866 /* CFB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CFB.swift; path = Sources/CryptoSwift/BlockMode/CFB.swift; sourceTree = ""; }; 3654C41FDB74088592DA713158476E5B /* Padding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Padding.swift; path = Sources/CryptoSwift/Padding.swift; sourceTree = ""; }; 36F3DF43B9422FD5916A6C75F9C68568 /* BatchedCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BatchedCollection.swift; path = Sources/CryptoSwift/BatchedCollection.swift; sourceTree = ""; }; - 37A3BB2B9627AD42F4EC73AE040C9A18 /* Result-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Result-macOS-umbrella.h"; path = "../Result-macOS/Result-macOS-umbrella.h"; sourceTree = ""; }; + 37285A75B12306326B0EF6AD23148A66 /* Pods-web3swift-iOS_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-iOS_Tests-resources.sh"; sourceTree = ""; }; 37A42E23E411D520ADBF58299104A5E4 /* libSwiftRLP-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSwiftRLP-macOS.a"; path = "libSwiftRLP-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 38C29EC87775E098CCEE6CEB4ABA65AA /* EthereumAddress-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EthereumAddress-iOS-dummy.m"; sourceTree = ""; }; 38E248D955FFD067941A82DF6B7B3C4F /* BlockDecryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockDecryptor.swift; path = Sources/CryptoSwift/BlockDecryptor.swift; sourceTree = ""; }; - 398E3F38AA4E4F1F69F6BFA75A49E0C1 /* SipHash-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "SipHash-iOS.modulemap"; sourceTree = ""; }; - 3B9103BCEE6F57F21DC2CDA536BA8D0F /* CryptoSwift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CryptoSwift-macOS-dummy.m"; path = "../CryptoSwift-macOS/CryptoSwift-macOS-dummy.m"; sourceTree = ""; }; - 3BA0B14650AEA1E6C77147E96770CB09 /* scrypt-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "scrypt-macOS.modulemap"; path = "../scrypt-macOS/scrypt-macOS.modulemap"; sourceTree = ""; }; 3BDFDE509786CC72B0B5EBBB87F54C14 /* MD5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MD5.swift; path = Sources/CryptoSwift/MD5.swift; sourceTree = ""; }; + 3C18FE09DB747D4F64CDC4EBF07A6AF0 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; + 3C1C69DE46F5ACC0602FAF8FB907D949 /* PromiseKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PromiseKit-umbrella.h"; path = "../../Headers/Public/PromiseKit/PromiseKit-umbrella.h"; sourceTree = ""; }; + 3C515870A748CB470E9FBA7186297FFC /* Pods-web3swift-macOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-macOS-acknowledgements.markdown"; sourceTree = ""; }; + 3C8069D7270ED24EB137F43DEF548AA4 /* scrypt-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "scrypt-macOS.modulemap"; path = "../../Headers/Public/scrypt/scrypt-macOS.modulemap"; sourceTree = ""; }; 3C93F4B7E331943729BE3CFC4F439C2A /* ecmult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult.h; path = Classes/secp256k1/src/ecmult.h; sourceTree = ""; }; - 3DBE2043CF545B45F21A7018D7A70CBD /* PromiseKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = PromiseKit.modulemap; sourceTree = ""; }; - 3E1A2664214C7FF4C93A67058FDACDE9 /* SwiftRLP-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SwiftRLP-macOS-umbrella.h"; path = "../SwiftRLP-macOS/SwiftRLP-macOS-umbrella.h"; sourceTree = ""; }; - 3E91F337EA3979DB5DD84C325A340270 /* Pods-web3swift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-macOS-dummy.m"; sourceTree = ""; }; + 3D37A86FCD5D0735EBF9DA4224B06C53 /* Pods-web3swift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-macOS.modulemap"; sourceTree = ""; }; + 3D8C2202C63BDA7C0F7AF6C89B6273FD /* Pods-web3swift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-iOS-umbrella.h"; sourceTree = ""; }; 3EB87A244E5248ADD8D124225B21323F /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = Sources/PromiseKit.h; sourceTree = ""; }; 3EF69CEB8B2C8F6223E5A84FF9855D71 /* Generics.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Generics.swift; path = Sources/CryptoSwift/Generics.swift; sourceTree = ""; }; - 3F1CF8D01D9020575F785235F3DA02E3 /* PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PromiseKit.xcconfig; sourceTree = ""; }; 3F4EAABE2F37A5C4CBF734D74EA94EBB /* UIView+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIView+Promise.swift"; path = "Extensions/UIKit/Sources/UIView+Promise.swift"; sourceTree = ""; }; + 3F6E29D91BDBFD5F158502CC7B97A250 /* PromiseKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = PromiseKit.modulemap; path = ../../Headers/Public/PromiseKit/PromiseKit.modulemap; sourceTree = ""; }; 3F90DB66AA0BD6E09A8253873368008F /* AnyError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyError.swift; path = Result/AnyError.swift; sourceTree = ""; }; 3F9EE37EACAF96F7344C1F0AEA46F02C /* BlockEncryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockEncryptor.swift; path = Sources/CryptoSwift/BlockEncryptor.swift; sourceTree = ""; }; - 417BA17C9527B36A6953928718163ACE /* scrypt-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "scrypt-iOS-umbrella.h"; sourceTree = ""; }; - 420A1793DC6527296BC586472865C8C0 /* scrypt-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "scrypt-iOS.xcconfig"; sourceTree = ""; }; + 417827171F7329CB9A60952C4724D7CA /* scrypt-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "scrypt-macOS-dummy.m"; path = "../scrypt-macOS/scrypt-macOS-dummy.m"; sourceTree = ""; }; 4249BBDEF2DD259919D48F146E985928 /* libBigInt-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libBigInt-iOS.a"; path = "libBigInt-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 4289C87C5EC42792CDDDCFC5592AADF7 /* Exponentiation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Exponentiation.swift; path = sources/Exponentiation.swift; sourceTree = ""; }; 43C25934B3D3377624DF16153BF76578 /* Checksum.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Checksum.swift; path = Sources/CryptoSwift/Checksum.swift; sourceTree = ""; }; 44157DE064955C1C2DF424094F971C2C /* libPods-web3swift-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-web3swift-macOS.a"; path = "libPods-web3swift-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 442D6200CC1781151499F7FAF44C0366 /* Cimpl.c */ = {isa = PBXFileReference; includeInIndex = 1; name = Cimpl.c; path = scrypt/Cimpl.c; sourceTree = ""; }; 449887D7F7932CFAA2B3FAE0BEE1594B /* scratch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch.h; path = Classes/secp256k1/src/scratch.h; sourceTree = ""; }; - 452B760316F8326FC21782A105163581 /* PromiseKit.root-CorePromise-Foundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PromiseKit.root-CorePromise-Foundation-dummy.m"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-dummy.m"; sourceTree = ""; }; + 45A786BAB1EBC0AC21E3491CEEBCA128 /* EthereumABI-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumABI-iOS-umbrella.h"; path = "../../Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h"; sourceTree = ""; }; 45F5F772F0EEFC0C3E42DAF65DB4121F /* PKCS7Padding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS7Padding.swift; path = Sources/CryptoSwift/PKCS/PKCS7Padding.swift; sourceTree = ""; }; + 4620827BC2A4A3BD942D913A099130AD /* SwiftRLP-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SwiftRLP-macOS-prefix.pch"; path = "../SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; sourceTree = ""; }; 4624EFF8C97C1CBAF2910297112CF9E8 /* lax_der_parsing.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lax_der_parsing.c; path = Classes/secp256k1/contrib/lax_der_parsing.c; sourceTree = ""; }; 4638850DD91EB5F2EFCF18E99D4D87FA /* SipHasher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SipHasher.swift; path = SipHash/SipHasher.swift; sourceTree = ""; }; 4813C1A0F259481060973E85D757C6F8 /* libEthereumAddress-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libEthereumAddress-macOS.a"; path = "libEthereumAddress-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 48BA6005A2D0AC9C0B7C4A47958A6F80 /* PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PromiseKit-dummy.m"; sourceTree = ""; }; - 48DE6A16D72E33E779AE2257CA5D34BC /* EthereumABI-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EthereumABI-iOS-dummy.m"; sourceTree = ""; }; - 48FCAFD34D22FB4A18FEF12007E2FAB3 /* SipHash-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SipHash-iOS-umbrella.h"; sourceTree = ""; }; + 499284C2F8453A839CEDEDBC47E42B14 /* SwiftRLP-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftRLP-iOS-prefix.pch"; sourceTree = ""; }; 49C5823B0C264F4AC2DF38C68F097FEA /* NSURLSession+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSURLSession+Promise.swift"; path = "Extensions/Foundation/Sources/NSURLSession+Promise.swift"; sourceTree = ""; }; 49F74127A936A7C34D38E84140D1EFAC /* group_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = group_impl.h; path = Classes/secp256k1/src/group_impl.h; sourceTree = ""; }; - 4A2E0AD738D348DDA03396C623D814CD /* Pods-web3swift-macOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-macOS-acknowledgements.plist"; sourceTree = ""; }; - 4AA4C4E3B71B38DD9AC53FDE78CAE9EA /* PromiseKit.root-CorePromise-Foundation.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "PromiseKit.root-CorePromise-Foundation.xcconfig"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig"; sourceTree = ""; }; - 4B737AB9139E0187239D966FFC143FB3 /* secp256k1_swift-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1_swift-macOS-prefix.pch"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS-prefix.pch"; sourceTree = ""; }; + 4A62A996E150BEC15618C743082DB6A6 /* Result-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Result-iOS-dummy.m"; sourceTree = ""; }; + 4B27BF530A63ACAF9407720A162114CA /* Result-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Result-iOS.xcconfig"; sourceTree = ""; }; 4C1637249D7E9C69FBC55792F4BFF580 /* SHA3.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA3.swift; path = Sources/CryptoSwift/SHA3.swift; sourceTree = ""; }; + 4D019DB5C502C0B2F56DC85B925D7B7E /* Pods-web3swift-macOS_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-macOS_Tests-frameworks.sh"; sourceTree = ""; }; + 4D1BB5E5DC1FC41AA80C491CB8F7F0B1 /* SwiftRLP-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SwiftRLP-macOS.modulemap"; path = "../../Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap"; sourceTree = ""; }; 4D5996479C4CB892D1B062406C8C08F6 /* secp256k1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = secp256k1.swift; path = Classes/secp256k1.swift; sourceTree = ""; }; 4FFFD5E940B31BAEC3CCFD05B093B6F8 /* NSTask+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSTask+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSTask+AnyPromise.m"; sourceTree = ""; }; + 502350FD0523CAD681AB6D24DFFBE55E /* EthereumAddress-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumAddress-iOS-umbrella.h"; path = "../../Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h"; sourceTree = ""; }; + 50832FC4B2337F53A6F628D514DA730A /* Pods-web3swift-macOS_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS_Tests.release.xcconfig"; sourceTree = ""; }; 516F61020B364118837B9099CD918F5F /* secp256k1_ecdh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = secp256k1_ecdh.h; path = Classes/secp256k1/include/secp256k1_ecdh.h; sourceTree = ""; }; - 522015696E45158812DD4C5CF37CD544 /* Pods-web3swift-macOS_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-macOS_Tests-dummy.m"; sourceTree = ""; }; - 522579B02AF58D183F2AC531E3F33572 /* EthereumABI-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EthereumABI-iOS.xcconfig"; sourceTree = ""; }; 5300C71B6A3AB50A1D7ED70A41FAAD6B /* field_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_impl.h; path = Classes/secp256k1/src/field_impl.h; sourceTree = ""; }; - 53A9CE7F7031C40517F85796D6BDEB9C /* Result-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Result-macOS.modulemap"; path = "../Result-macOS/Result-macOS.modulemap"; sourceTree = ""; }; 5430F65435F42C41489D6A5D36494E0B /* Array+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Array+Extension.swift"; path = "Sources/CryptoSwift/Array+Extension.swift"; sourceTree = ""; }; - 54DEB815C6A515714B4A838D414C3241 /* Pods-web3swift-macOS_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-macOS_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 55609C780EA603377D9F33E7661A79BB /* scrypt-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "scrypt-macOS-umbrella.h"; path = "../scrypt-macOS/scrypt-macOS-umbrella.h"; sourceTree = ""; }; + 549BC77FB563C5F7078EEF621568360D /* Pods-web3swift-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS.debug.xcconfig"; sourceTree = ""; }; + 553C1445D10FA04E682FE1674D6AF9EB /* Pods-web3swift-macOS_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-macOS_Tests-umbrella.h"; sourceTree = ""; }; 55D3724AA7B8C2CF221E72306FBDCBB5 /* libSwiftRLP-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSwiftRLP-iOS.a"; path = "libSwiftRLP-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 55D66ED5651595B335B313C540A13D8E /* SwiftRLP-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "SwiftRLP-iOS.modulemap"; sourceTree = ""; }; 575A44CBD254AB2012072A25C3D25D19 /* StreamEncryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StreamEncryptor.swift; path = Sources/CryptoSwift/StreamEncryptor.swift; sourceTree = ""; }; 582D7324492EFDB22783F0B7B2FA6859 /* Thenable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Thenable.swift; path = Sources/Thenable.swift; sourceTree = ""; }; + 58A1ADCBFB29DAD5737DCA6E9AE7CA5F /* EthereumAddress-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumAddress-iOS-prefix.pch"; sourceTree = ""; }; 58FEC74B279A9D31ADE339DE27E86FA9 /* lax_der_parsing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = lax_der_parsing.h; path = Classes/secp256k1/contrib/lax_der_parsing.h; sourceTree = ""; }; 59463535BD4D6DAD08D36EAF4421D11D /* NSNotificationCenter+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSNotificationCenter+AnyPromise.m"; sourceTree = ""; }; - 5992F89681D6639D6E83FBDCE269A688 /* SipHash-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SipHash-macOS.xcconfig"; path = "../SipHash-macOS/SipHash-macOS.xcconfig"; sourceTree = ""; }; - 59AB171D72BF347C5F7A067C2AAB5384 /* EthereumAddress-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumAddress-macOS-umbrella.h"; path = "../EthereumAddress-macOS/EthereumAddress-macOS-umbrella.h"; sourceTree = ""; }; + 59CA1CA71842D0F9F9DC0144EC286A7E /* EthereumAddress-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EthereumAddress-macOS-dummy.m"; path = "../EthereumAddress-macOS/EthereumAddress-macOS-dummy.m"; sourceTree = ""; }; 5AEA4495CD1CD23847803E6F2009266F /* libResult-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libResult-macOS.a"; path = "libResult-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 5B830B448B480E1AE7466CE0AB7565D1 /* GCM.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GCM.swift; path = Sources/CryptoSwift/BlockMode/GCM.swift; sourceTree = ""; }; 5BBEB708E926639930327B2FC6F3759D /* PBKDF2.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PBKDF2.swift; path = Sources/CryptoSwift/PKCS/PBKDF2.swift; sourceTree = ""; }; - 5DC3FD3167A8763A6C85B62EFDA429D2 /* secp256k1_swift-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "secp256k1_swift-iOS-prefix.pch"; sourceTree = ""; }; + 5D207FB930AAAC6DA0CA7AAB0EBA40EE /* Pods-web3swift-macOS_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-macOS_Tests-resources.sh"; sourceTree = ""; }; + 5E2462063FC148C85C6D00F08680239E /* Pods-web3swift-macOS_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-macOS_Tests-acknowledgements.markdown"; sourceTree = ""; }; 5E9C2CC8E90A38FD011723EB814A5A52 /* scratch_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scratch_impl.h; path = Classes/secp256k1/src/scratch_impl.h; sourceTree = ""; }; + 5F0C3C498292778DE2DA40E00F391475 /* CryptoSwift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "CryptoSwift-macOS.modulemap"; path = "../../Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap"; sourceTree = ""; }; 60243E0B2E1CDFC9B6DF789487982447 /* lax_der_privatekey_parsing.c */ = {isa = PBXFileReference; includeInIndex = 1; name = lax_der_privatekey_parsing.c; path = Classes/secp256k1/contrib/lax_der_privatekey_parsing.c; sourceTree = ""; }; + 604F9F7AC0C04DACFC628833A3B4ED5D /* Result-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Result-iOS-umbrella.h"; path = "../../Headers/Public/Result/Result-iOS-umbrella.h"; sourceTree = ""; }; 61858AD8F2BC3FA5B6CE10752824FA45 /* libEthereumABI-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libEthereumABI-macOS.a"; path = "libEthereumABI-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 6314619E8FCD5D07FBD2BA0BA5C58C15 /* ABIEncoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIEncoding.swift; path = EthereumABI/Classes/ABIEncoding.swift; sourceTree = ""; }; - 6351DFCD3C033CA154E8C9D3D8D38EFE /* CryptoSwift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "CryptoSwift-iOS.modulemap"; sourceTree = ""; }; + 63AB8B307E0ECB2EE3B92B2DF18D8F04 /* Result-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Result-macOS-prefix.pch"; path = "../Result-macOS/Result-macOS-prefix.pch"; sourceTree = ""; }; + 63E8E6C2713484D5B4AD0653183EE4F0 /* Result-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Result-macOS-umbrella.h"; path = "../../Headers/Public/Result/Result-macOS-umbrella.h"; sourceTree = ""; }; 63FD1428729C05C5A88BE98C12254ADA /* BufferStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BufferStorage.swift; path = scrypt/scrypt/BufferStorage.swift; sourceTree = ""; }; 640D7C6CD155FDD858979BF3184F5A49 /* libPromiseKit.root-CorePromise-Foundation.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPromiseKit.root-CorePromise-Foundation.a"; path = "libPromiseKit.root-CorePromise-Foundation.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 64748EC305E00E02356EB0F312458ADE /* CryptoSwift-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CryptoSwift-macOS-prefix.pch"; path = "../CryptoSwift-macOS/CryptoSwift-macOS-prefix.pch"; sourceTree = ""; }; 64CF8CD6E98A2DF32A9CBCF71E6AEFAB /* libsecp256k1_swift-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libsecp256k1_swift-iOS.a"; path = "libsecp256k1_swift-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 673FFC4D2B959AB8AEC35D646A85CDCD /* Pods-web3swift-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS.release.xcconfig"; sourceTree = ""; }; + 66AED7B1284F110412341823D0393172 /* secp256k1_swift-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "secp256k1_swift-iOS.xcconfig"; sourceTree = ""; }; 67F74D8CA41DCC5236159301ED92764C /* Collection+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Collection+Extension.swift"; path = "Sources/CryptoSwift/Collection+Extension.swift"; sourceTree = ""; }; 68D5DF1B1384D6392013199F71BACD06 /* String Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String Conversion.swift"; path = "sources/String Conversion.swift"; sourceTree = ""; }; - 6907C77858F6612BF4232E34D8D30C3F /* CryptoSwift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CryptoSwift-iOS-dummy.m"; sourceTree = ""; }; - 6A105001ACFD1F5004F2225CB06D4CCA /* BigInt-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BigInt-iOS-umbrella.h"; sourceTree = ""; }; - 6BB6440618D1B0E87AE5AA65F64B69DD /* Result-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Result-iOS.modulemap"; sourceTree = ""; }; + 6AA0EA9B40029BD24FAFF9341FD807C5 /* BigInt-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BigInt-iOS-prefix.pch"; sourceTree = ""; }; + 6B43693C134C90A32C6A63727F4D6363 /* SwiftRLP-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftRLP-macOS.xcconfig"; path = "../SwiftRLP-macOS/SwiftRLP-macOS.xcconfig"; sourceTree = ""; }; 6C619FA5855429D15B556163471403E5 /* CompactMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CompactMap.swift; path = Sources/CryptoSwift/CompactMap.swift; sourceTree = ""; }; 6D010E670FE8C5A9AAC9A8464ED42B3A /* ecmult_gen.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_gen.h; path = Classes/secp256k1/src/ecmult_gen.h; sourceTree = ""; }; 6D1B636300E29159DFA920C5BA2E5F7C /* num.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num.h; path = Classes/secp256k1/src/num.h; sourceTree = ""; }; - 6D4A716592C208D7429CE19B82094FA8 /* Pods-web3swift-iOS_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-iOS_Tests-acknowledgements.plist"; sourceTree = ""; }; + 6D76E01714111860B1A58E945BFEDC3A /* Pods-web3swift-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS.release.xcconfig"; sourceTree = ""; }; 6DE5DD5643C155A18A460273094ACDA1 /* Comparable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Comparable.swift; path = sources/Comparable.swift; sourceTree = ""; }; 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecdsa.h; path = Classes/secp256k1/src/ecdsa.h; sourceTree = ""; }; 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = eckey.h; path = Classes/secp256k1/src/eckey.h; sourceTree = ""; }; 6E4AA08906784FF9AA2B198938456276 /* ABIExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIExtensions.swift; path = EthereumABI/Classes/ABIExtensions.swift; sourceTree = ""; }; 6E53BAD514C4F4E022EEBCEB1ABC3943 /* Authenticator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Authenticator.swift; path = Sources/CryptoSwift/Authenticator.swift; sourceTree = ""; }; 6E6BBA6411A89BD966DF62BE90EE478C /* Int+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Int+Extension.swift"; path = "Sources/CryptoSwift/Int+Extension.swift"; sourceTree = ""; }; - 6EABC2B68783D8B14904AB78123DF869 /* EthereumAddress-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumAddress-macOS-prefix.pch"; path = "../EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; sourceTree = ""; }; 6EC6627D0179A3BE1D7BB58F2DBF51E7 /* ABIParameterTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIParameterTypes.swift; path = EthereumABI/Classes/ABIParameterTypes.swift; sourceTree = ""; }; 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EthereumABI.h; path = EthereumABI/EthereumABI.h; sourceTree = ""; }; - 6F0A15233EFEAA840C94D98DFD9C1F14 /* BigInt-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BigInt-macOS-umbrella.h"; path = "../BigInt-macOS/BigInt-macOS-umbrella.h"; sourceTree = ""; }; 6F1D20DF17340D045A1FDC2D1D64449D /* ECB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ECB.swift; path = Sources/CryptoSwift/BlockMode/ECB.swift; sourceTree = ""; }; 6F4B350BCCE6D995C937B1D56E4F9022 /* Shifts.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Shifts.swift; path = sources/Shifts.swift; sourceTree = ""; }; 6FE7344E86789EA2ACF6B000EE6E0275 /* firstly.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = firstly.swift; path = Sources/firstly.swift; sourceTree = ""; }; + 7019F3D58D3915C5DB778C7F37D6284D /* PromiseKit.root-CorePromise-Foundation.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "PromiseKit.root-CorePromise-Foundation.xcconfig"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig"; sourceTree = ""; }; 70E24C26EF4EF9C8244E7F94F175FD51 /* Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Configuration.swift; path = Sources/Configuration.swift; sourceTree = ""; }; + 70EED16C19046B0B9BE7B13BAC95A87B /* SipHash-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SipHash-macOS-umbrella.h"; path = "../../Headers/Public/SipHash/SipHash-macOS-umbrella.h"; sourceTree = ""; }; + 710AC65C4B223E829ED4375071A20A4B /* PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PromiseKit-dummy.m"; sourceTree = ""; }; 71C4ACD478692712EEF2FF8BB7F4A160 /* AnyPromise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AnyPromise.swift; path = Sources/AnyPromise.swift; sourceTree = ""; }; + 71E2A7910D7AF85D22133C192905F177 /* BigInt-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BigInt-macOS-prefix.pch"; path = "../BigInt-macOS/BigInt-macOS-prefix.pch"; sourceTree = ""; }; 721ECA637BED3AE2394AA1573B89D998 /* Digest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Digest.swift; path = Sources/CryptoSwift/Digest.swift; sourceTree = ""; }; - 73A68F048F801AD8527F07F7706E57CE /* SwiftRLP-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftRLP-iOS-dummy.m"; sourceTree = ""; }; - 753E3CD3CF2AA32CDB11305D429F3C96 /* Pods-web3swift-iOS_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-iOS_Tests-acknowledgements.markdown"; sourceTree = ""; }; - 7579B6CD74CBC80D0509F34F78A83B1D /* CryptoSwift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "CryptoSwift-macOS.modulemap"; path = "../CryptoSwift-macOS/CryptoSwift-macOS.modulemap"; sourceTree = ""; }; + 72220B6001A2BD888AB52C2A47D550E8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 72A7F9C67E48E1411F3B058763643F52 /* secp256k1_swift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "secp256k1_swift-macOS.modulemap"; path = "../../Headers/Public/secp256k1_swift/secp256k1_swift-macOS.modulemap"; sourceTree = ""; }; + 73BC5EDC47ED684DB1EC14EBA4F53640 /* BigInt-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "BigInt-macOS.modulemap"; path = "../../Headers/Public/BigInt/BigInt-macOS.modulemap"; sourceTree = ""; }; 75D8491537B933BEB0BB26FA5415C295 /* afterlife.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = afterlife.swift; path = Extensions/Foundation/Sources/afterlife.swift; sourceTree = ""; }; - 76C5F543BD9B25774CA35CF7FA0546B3 /* EthereumAddress-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumAddress-iOS-umbrella.h"; sourceTree = ""; }; 76F047FAB60C9A09C857EC109DAC9FC4 /* num_gmp.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num_gmp.h; path = Classes/secp256k1/src/num_gmp.h; sourceTree = ""; }; 79B85C952F225CDFB5B272237402E77E /* hang.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = hang.swift; path = Sources/hang.swift; sourceTree = ""; }; - 79E925BEAA0533C58B6D9871B886DD8A /* Pods-web3swift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-iOS.modulemap"; sourceTree = ""; }; + 7A198ACD2DAA718861BD16E72748D147 /* scrypt-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "scrypt-iOS.modulemap"; path = "../../Headers/Public/scrypt/scrypt-iOS.modulemap"; sourceTree = ""; }; 7C5AAAD0BEA7AB575EE1203992B86F82 /* StreamDecryptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = StreamDecryptor.swift; path = Sources/CryptoSwift/StreamDecryptor.swift; sourceTree = ""; }; - 7C70A16BA860E5B4A9A806F25EE3F472 /* CryptoSwift-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "CryptoSwift-macOS.xcconfig"; path = "../CryptoSwift-macOS/CryptoSwift-macOS.xcconfig"; sourceTree = ""; }; + 7C83AC33C26F743EA9D7563722721066 /* CryptoSwift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CryptoSwift-macOS-umbrella.h"; path = "../../Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h"; sourceTree = ""; }; 7DCC7CDEAA23666C0D7F819861149F89 /* Rabbit+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Rabbit+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Rabbit+Foundation.swift"; sourceTree = ""; }; + 7E0C9A26C84B6D3262E7774E3CFFEA6D /* CryptoSwift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CryptoSwift-macOS-dummy.m"; path = "../CryptoSwift-macOS/CryptoSwift-macOS-dummy.m"; sourceTree = ""; }; 7E5CE0F5663064C7672E5299F1B3B7DF /* UInt16+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt16+Extension.swift"; path = "Sources/CryptoSwift/UInt16+Extension.swift"; sourceTree = ""; }; - 7E74F31CDCAA43E3665CAB99746882DD /* BigInt-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BigInt-iOS-dummy.m"; sourceTree = ""; }; - 7E8C19543EF3AA4D9801DBE55E22E211 /* Pods-web3swift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-web3swift-iOS-umbrella.h"; sourceTree = ""; }; 7FB5F00D821CDC9BDA7F7709F07DD0F3 /* after.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = after.m; path = Sources/after.m; sourceTree = ""; }; + 7FC1B6B1176F612793CC1F8C240ED4F5 /* EthereumABI-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumABI-macOS-umbrella.h"; path = "../../Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h"; sourceTree = ""; }; 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Extensions.swift; path = EthereumAddress/Classes/Extensions.swift; sourceTree = ""; }; 81392F0749049A8C999337DDA716A157 /* Error.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Error.swift; path = Sources/Error.swift; sourceTree = ""; }; + 816CED29D01C20C94514563C21AC3763 /* BigInt-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BigInt-macOS-dummy.m"; path = "../BigInt-macOS/BigInt-macOS-dummy.m"; sourceTree = ""; }; 81ECE7FE7C889AF9F1B739830D9A59B0 /* scalar_8x32_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_8x32_impl.h; path = Classes/secp256k1/src/scalar_8x32_impl.h; sourceTree = ""; }; - 82CF9E45F65C5A3FF604607C66EAC29D /* EthereumAddress-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "EthereumAddress-macOS.xcconfig"; path = "../EthereumAddress-macOS/EthereumAddress-macOS.xcconfig"; sourceTree = ""; }; + 838E20D48ECBA3CCA073FF52AA6BD234 /* Pods-web3swift-iOS_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS_Tests.debug.xcconfig"; sourceTree = ""; }; 840549A6DE0F91C91EE1712E3C57D6ED /* SHA2.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA2.swift; path = Sources/CryptoSwift/SHA2.swift; sourceTree = ""; }; 85342594A31BFFC584D4660A9041CF48 /* Codable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Codable.swift; path = sources/Codable.swift; sourceTree = ""; }; 857BD06ABAFBE1C5C176886E254BE8E6 /* UInt32+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt32+Extension.swift"; path = "Sources/CryptoSwift/UInt32+Extension.swift"; sourceTree = ""; }; 85CA122AC057DBDA1FC65BCB8FC33684 /* ResultProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResultProtocol.swift; path = Result/ResultProtocol.swift; sourceTree = ""; }; - 8600E5A6A0625E96185A2CB9DE5C8AF8 /* PromiseKit.root-CorePromise-Foundation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "PromiseKit.root-CorePromise-Foundation.modulemap"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.modulemap"; sourceTree = ""; }; + 8694D87EAC35605010892313429D6622 /* Pods-web3swift-iOS_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-iOS_Tests-frameworks.sh"; sourceTree = ""; }; 86A87591096A3CD9071AD2D94874973C /* RandomUInt64.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RandomUInt64.swift; path = SipHash/RandomUInt64.swift; sourceTree = ""; }; 86CE3A28090BEEF1B09E865F4962D871 /* scalar_4x64_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_4x64_impl.h; path = Classes/secp256k1/src/scalar_4x64_impl.h; sourceTree = ""; }; 874DB4C8A2FF4D5197C42063F7939C9A /* Result.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Result.swift; path = Result/Result.swift; sourceTree = ""; }; - 89525730C7E22C66FB7ADAB11E2073A0 /* CryptoSwift-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "CryptoSwift-iOS.xcconfig"; sourceTree = ""; }; + 88B89257C4F705CF119D8638E268E65E /* scrypt-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "scrypt-iOS-dummy.m"; sourceTree = ""; }; 89BECCA6149031B2659A0EECDCC2E4A5 /* Cryptors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cryptors.swift; path = Sources/CryptoSwift/Cryptors.swift; sourceTree = ""; }; 89EE579B1A3A156C9DE84CC0E9CC7F51 /* CMAC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CMAC.swift; path = Sources/CryptoSwift/CMAC.swift; sourceTree = ""; }; 8A3D345B7D38F0B4BAB39F24505D5E5E /* CTR.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CTR.swift; path = Sources/CryptoSwift/BlockMode/CTR.swift; sourceTree = ""; }; 8AA60D2034DC22F7C907855DDB5ADAD9 /* main_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = main_impl.h; path = Classes/secp256k1/src/modules/ecdh/main_impl.h; sourceTree = ""; }; - 8B56F6A20A0CF698ECA0EDF6CF4CDD74 /* Pods-web3swift-iOS_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-iOS_Tests-dummy.m"; sourceTree = ""; }; + 8B09D00EA28B49D089629C1B3671E2D4 /* EthereumAddress-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EthereumAddress-iOS.xcconfig"; sourceTree = ""; }; + 8BE513BBB1E501AC239B2E5FCFEEB1C7 /* EthereumABI-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EthereumABI-iOS-dummy.m"; sourceTree = ""; }; 8C42ABDF3D43E8CFBE45DFA6DF97E084 /* Process+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Process+Promise.swift"; path = "Extensions/Foundation/Sources/Process+Promise.swift"; sourceTree = ""; }; 8C5181B2E5F94EAFEF5F04D83E0FFD13 /* PKCS7.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS7.swift; path = Sources/CryptoSwift/PKCS/PKCS7.swift; sourceTree = ""; }; + 8D1457D56859B3489B05547CE8ED69C6 /* CryptoSwift-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "CryptoSwift-iOS.xcconfig"; sourceTree = ""; }; + 8DB920805B0BCCB1D1D3A6508C722E73 /* secp256k1_swift-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "secp256k1_swift-macOS.xcconfig"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig"; sourceTree = ""; }; 8E0D3EDB8E94AA59C54E4808C60A2744 /* when.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = when.m; path = Sources/when.m; sourceTree = ""; }; 8E3F5E519E5ED0A4BAF423C7DBB12042 /* UIView+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+AnyPromise.h"; path = "Extensions/UIKit/Sources/UIView+AnyPromise.h"; sourceTree = ""; }; 8E664638E84199C40F931B3593272F8D /* NSObject+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSObject+Promise.swift"; path = "Extensions/Foundation/Sources/NSObject+Promise.swift"; sourceTree = ""; }; - 90B410829D6E70A45A22CC62F187A11B /* Pods-web3swift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-macOS.modulemap"; sourceTree = ""; }; - 91BAFA9B3EE9063DDE5057E56DC627DC /* BigInt-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "BigInt-iOS.modulemap"; sourceTree = ""; }; + 9141557151A6042910B007BFD2C08337 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 92641023C5257B4110F73449FAC652E7 /* PMKUIKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PMKUIKit.h; path = Extensions/UIKit/Sources/PMKUIKit.h; sourceTree = ""; }; 92C1E2F71DB75395E28DC3213425381D /* Bit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Bit.swift; path = Sources/CryptoSwift/Bit.swift; sourceTree = ""; }; - 92CB38F782D33EF495F861851E047FA9 /* SipHash-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SipHash-iOS.xcconfig"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 93EB1CF4FDC03241B81C3C3B6F58B9E0 /* Square Root.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Square Root.swift"; path = "sources/Square Root.swift"; sourceTree = ""; }; + 9450E7D1C947B8B26E2581CEE561EE22 /* secp256k1_swift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "secp256k1_swift-iOS-dummy.m"; sourceTree = ""; }; 948894E3D7054F9BEAA31B5D6061F696 /* PMKFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PMKFoundation.h; path = Extensions/Foundation/Sources/PMKFoundation.h; sourceTree = ""; }; - 95C397E16B314F921F7784F00C8F183B /* Pods-web3swift-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-iOS-acknowledgements.plist"; sourceTree = ""; }; + 952751793FE823F69C417971D443D0DA /* Pods-web3swift-macOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-macOS-resources.sh"; sourceTree = ""; }; + 95BC3095349C08EEC619752DCE4111F5 /* EthereumABI-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumABI-iOS-prefix.pch"; sourceTree = ""; }; + 95F6C76BA5D1065824F88B06602E1A04 /* BigInt-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BigInt-iOS-umbrella.h"; path = "../../Headers/Public/BigInt/BigInt-iOS-umbrella.h"; sourceTree = ""; }; 96C4685C831E862AD0F75DC78A3A5B61 /* Catchable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Catchable.swift; path = Sources/Catchable.swift; sourceTree = ""; }; - 972E60F406627ED35849A8F617B3ECBD /* BigInt-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BigInt-iOS-prefix.pch"; sourceTree = ""; }; - 9760F737EE5BDAD80F6E6DDA26EE421C /* secp256k1_swift-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "secp256k1_swift-macOS.modulemap"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS.modulemap"; sourceTree = ""; }; - 98229C7D8E3906BD4C8DCD833704588C /* EthereumABI-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumABI-iOS-umbrella.h"; sourceTree = ""; }; 982E6E4B839762B67F92588D34990052 /* num_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num_impl.h; path = Classes/secp256k1/src/num_impl.h; sourceTree = ""; }; 9883FCDA0DBDA6DCA8C5923AB1B3F45A /* CBCMAC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CBCMAC.swift; path = Sources/CryptoSwift/CBCMAC.swift; sourceTree = ""; }; - 9B0A389595178AEDBFBB0B44514CEBD3 /* SipHash-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SipHash-macOS.modulemap"; path = "../SipHash-macOS/SipHash-macOS.modulemap"; sourceTree = ""; }; 9BF71F803FD375964F60D0271834711E /* AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AnyPromise.h; path = Sources/AnyPromise.h; sourceTree = ""; }; - 9C056AE54C5A5C44A47093DCBA233F46 /* EthereumABI-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumABI-iOS-prefix.pch"; sourceTree = ""; }; - 9D6306B3BC57BAEB50815C5FBBFC8CB4 /* SwiftRLP-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftRLP-iOS.xcconfig"; sourceTree = ""; }; - 9E3FCE1E29EDFA06494CDD00767685E3 /* secp256k1_swift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "secp256k1_swift-iOS-dummy.m"; sourceTree = ""; }; 9E7C36E885EBC6AB812D67E4B28A9CE4 /* libPromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libPromiseKit.a; path = libPromiseKit.a; sourceTree = BUILT_PRODUCTS_DIR; }; 9EFC88D3858F1B2D4952BAA697C360D3 /* Guarantee.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Guarantee.swift; path = Sources/Guarantee.swift; sourceTree = ""; }; + 9F6259B57E3A3E8491825840F9F99A14 /* PromiseKit.root-CorePromise-Foundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PromiseKit.root-CorePromise-Foundation-dummy.m"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-dummy.m"; sourceTree = ""; }; 9FB6255E4560252B9DC0BE760F34C261 /* field_5x52_int128_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52_int128_impl.h; path = Classes/secp256k1/src/field_5x52_int128_impl.h; sourceTree = ""; }; A051E774D4D49F8D0B94D9E529E3A524 /* scalar_low_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_low_impl.h; path = Classes/secp256k1/src/scalar_low_impl.h; sourceTree = ""; }; + A08DB7A40A2EAB27F94BB45DF634A4AC /* PromiseKit.root-CorePromise-Foundation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PromiseKit.root-CorePromise-Foundation-umbrella.h"; path = "../../Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h"; sourceTree = ""; }; A1687163A14D55D2EF896A97CD937491 /* hash_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash_impl.h; path = Classes/secp256k1/src/hash_impl.h; sourceTree = ""; }; A1C101B8D6CF3BE7D5E588469BA4647B /* libscrypt-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libscrypt-macOS.a"; path = "libscrypt-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; A31357292CDC03F5F3AEA4C1065BCDBF /* PBKDF1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PBKDF1.swift; path = Sources/CryptoSwift/PKCS/PBKDF1.swift; sourceTree = ""; }; - A330934D98A54C2602C42AF53B6E728E /* secp256k1_swift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "secp256k1_swift-iOS.modulemap"; sourceTree = ""; }; A3B7939D27D85A4C92DE2CD6D6C8E4EB /* main_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = main_impl.h; path = Classes/secp256k1/src/modules/recovery/main_impl.h; sourceTree = ""; }; - A44AEA30AD48DB0294CA791DF2D0996B /* SipHash-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SipHash-macOS-umbrella.h"; path = "../SipHash-macOS/SipHash-macOS-umbrella.h"; sourceTree = ""; }; - A5D9B32B104EA0A137D78B89D4D19D40 /* Pods-web3swift-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS.release.xcconfig"; sourceTree = ""; }; - A66575F75BF4F824ED46DE58E80DBCF7 /* PromiseKit.root-CorePromise-Foundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PromiseKit.root-CorePromise-Foundation-prefix.pch"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; sourceTree = ""; }; + A4A8CBB024D845255D126D06D107F563 /* Result-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Result-iOS.modulemap"; path = "../../Headers/Public/Result/Result-iOS.modulemap"; sourceTree = ""; }; + A4DE673E5AA2F431951809819265C70A /* SipHash-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SipHash-macOS.xcconfig"; path = "../SipHash-macOS/SipHash-macOS.xcconfig"; sourceTree = ""; }; + A579E83A5736485F7298EBD0C70306E8 /* EthereumABI-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumABI-macOS.modulemap"; path = "../../Headers/Public/EthereumABI/EthereumABI-macOS.modulemap"; sourceTree = ""; }; + A664C0C78E9A17B67C1E2444F370C841 /* BigInt-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "BigInt-macOS-umbrella.h"; path = "../../Headers/Public/BigInt/BigInt-macOS-umbrella.h"; sourceTree = ""; }; A69680CF78C97C6DA250B325FFD04251 /* num_gmp_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = num_gmp_impl.h; path = Classes/secp256k1/src/num_gmp_impl.h; sourceTree = ""; }; A6F7930650FD31ED4C95EAB12B5DA36F /* libCryptoSwift-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libCryptoSwift-iOS.a"; path = "libCryptoSwift-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; A7E446483743D975168011448637ED65 /* Primitive Types.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Primitive Types.swift"; path = "SipHash/Primitive Types.swift"; sourceTree = ""; }; + A8E46FB728C72889788B6CF61184C08D /* CryptoSwift-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "CryptoSwift-macOS.xcconfig"; path = "../CryptoSwift-macOS/CryptoSwift-macOS.xcconfig"; sourceTree = ""; }; + AA7356C2674F39C3CFCD800D07CE9C91 /* Result-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Result-iOS-prefix.pch"; sourceTree = ""; }; AB81B5AF636ED4D537F9A819FC7EB086 /* libSipHash-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libSipHash-macOS.a"; path = "libSipHash-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - AB8B8D38C22598577C2C6551CEC1D7D0 /* EthereumAddress-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EthereumAddress-iOS-prefix.pch"; sourceTree = ""; }; ABA2CC618DEF4A5E27ADED64FC6F96A5 /* scalar_low.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_low.h; path = Classes/secp256k1/src/scalar_low.h; sourceTree = ""; }; AC8ABBCB10448DB88C79398E3A2D4417 /* libPods-web3swift-iOS_Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-web3swift-iOS_Tests.a"; path = "libPods-web3swift-iOS_Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + ACA03FF281F5ED3E11C4521A6732967E /* EthereumABI-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumABI-macOS-prefix.pch"; path = "../EthereumABI-macOS/EthereumABI-macOS-prefix.pch"; sourceTree = ""; }; AD5252D2AAE2CE2F1FFDA208DD0EFB4C /* UInt8+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt8+Extension.swift"; path = "Sources/CryptoSwift/UInt8+Extension.swift"; sourceTree = ""; }; AD85FC46DA6BEAA980010B0C5F2BEED3 /* secp256k1.c */ = {isa = PBXFileReference; includeInIndex = 1; name = secp256k1.c; path = Classes/secp256k1/src/secp256k1.c; sourceTree = ""; }; ADB4E2DA064200DDCD42C634CBC39977 /* field_5x52_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52_impl.h; path = Classes/secp256k1/src/field_5x52_impl.h; sourceTree = ""; }; + ADDD8977E2AE58D356A3834CF279DCDC /* BigInt-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BigInt-iOS-dummy.m"; sourceTree = ""; }; + AE1E6845CACAD540AFF7134021F7F905 /* PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PromiseKit-prefix.pch"; sourceTree = ""; }; + AF2BFA66D8E08420367813AD2F6BE5D3 /* Pods-web3swift-macOS_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-macOS_Tests-acknowledgements.plist"; sourceTree = ""; }; + AFA11E6CA87C50B0BDC7B160EBC0C434 /* Result-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Result-macOS.xcconfig"; path = "../Result-macOS/Result-macOS.xcconfig"; sourceTree = ""; }; AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EthereumAddress.swift; path = EthereumAddress/Classes/EthereumAddress.swift; sourceTree = ""; }; + B00A4C2F6671AA26BA20E62BA67C9C50 /* SipHash-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SipHash-macOS.modulemap"; path = "../../Headers/Public/SipHash/SipHash-macOS.modulemap"; sourceTree = ""; }; + B12A75E0FD8B52123CBAE9EEB4A42F3B /* Pods-web3swift-iOS_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS_Tests.release.xcconfig"; sourceTree = ""; }; B2AE7121F5348D2FDCD4FD763A42FB0C /* NSURLSession+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSession+AnyPromise.m"; path = "Extensions/Foundation/Sources/NSURLSession+AnyPromise.m"; sourceTree = ""; }; B2B4899E422658B96ADF84B5239C418D /* ABIElements.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIElements.swift; path = EthereumABI/Classes/ABIElements.swift; sourceTree = ""; }; - B36AB396275697EEE1A5B13BA8A38FE3 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; B43B308FB300789356930844D6B81CF8 /* libsecp256k1_swift-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libsecp256k1_swift-macOS.a"; path = "libsecp256k1_swift-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; B453F34A70203AF07F27C5AE1B2A0518 /* AES.Cryptors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AES.Cryptors.swift; path = Sources/CryptoSwift/AES.Cryptors.swift; sourceTree = ""; }; B468DE556C27A7C396C7B5ECC7DCF12E /* Operators.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Operators.swift; path = Sources/CryptoSwift/Operators.swift; sourceTree = ""; }; - B48543DD38BB8E1AB0953C926DBA6C3F /* EthereumABI-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "EthereumABI-macOS.xcconfig"; path = "../EthereumABI-macOS/EthereumABI-macOS.xcconfig"; sourceTree = ""; }; - B4F5205894DF6FD73EF8CFA7609DA7D9 /* EthereumAddress-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EthereumAddress-macOS-dummy.m"; path = "../EthereumAddress-macOS/EthereumAddress-macOS-dummy.m"; sourceTree = ""; }; - B581065FDD5347ECD262D51E19274EB6 /* SipHash-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SipHash-macOS-prefix.pch"; path = "../SipHash-macOS/SipHash-macOS-prefix.pch"; sourceTree = ""; }; B5A15DC755B12D8CCABB5B073B63856F /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Sources/CryptoSwift/Utils.swift; sourceTree = ""; }; + B5A9A265E46161E8B4B8ADA8683083E0 /* CryptoSwift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "CryptoSwift-iOS.modulemap"; path = "../../Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap"; sourceTree = ""; }; B5CBF6B2F887499D9631619E0D53008D /* BlockModeOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockModeOptions.swift; path = Sources/CryptoSwift/BlockMode/BlockModeOptions.swift; sourceTree = ""; }; B621DCE8D325B673C6F300B7C2CD478B /* Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Promise.swift; path = Sources/Promise.swift; sourceTree = ""; }; - B6A0DADFE9809AB925F51CF651528B31 /* secp256k1_swift-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "secp256k1_swift-iOS.xcconfig"; sourceTree = ""; }; - B7762E4245191B27674EB7EB82DCFFF1 /* Pods-web3swift-macOS_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS_Tests.debug.xcconfig"; sourceTree = ""; }; + B6C5B58BCA3B0F50FAC855B070978522 /* scrypt-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "scrypt-macOS.xcconfig"; path = "../scrypt-macOS/scrypt-macOS.xcconfig"; sourceTree = ""; }; + B6E1DDA919C9EDFC58774D377885148C /* EthereumAddress-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumAddress-macOS-prefix.pch"; path = "../EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; sourceTree = ""; }; + B7DD102BC02F706460BD77A53962C987 /* CryptoSwift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "CryptoSwift-iOS-dummy.m"; sourceTree = ""; }; B8172257020A0ACF61B9FA6264236BB6 /* NoPadding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NoPadding.swift; path = Sources/CryptoSwift/NoPadding.swift; sourceTree = ""; }; B88C2E2D4B6E99B918E6E13EDA4AA4A0 /* secp256k1_recovery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = secp256k1_recovery.h; path = Classes/secp256k1/include/secp256k1_recovery.h; sourceTree = ""; }; + B8AFA7DEC96C0138ADA2A695B42BDD77 /* SwiftRLP-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SwiftRLP-iOS.modulemap"; path = "../../Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap"; sourceTree = ""; }; B8EBC720E3207E6F08965D7549AAFEC6 /* SwiftRLP.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SwiftRLP.h; path = SwiftRLP/SwiftRLP.h; sourceTree = ""; }; B99B34DE805578131F4C0D5BFE276614 /* SipHashable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SipHashable.swift; path = SipHash/SipHashable.swift; sourceTree = ""; }; B9A05629BB0205300B694B527AD16E56 /* ecmult_gen_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_gen_impl.h; path = Classes/secp256k1/src/ecmult_gen_impl.h; sourceTree = ""; }; - B9D41263F9CA47F4367384A4B93B0DDA /* SwiftRLP-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SwiftRLP-macOS-prefix.pch"; path = "../SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; sourceTree = ""; }; + B9A8CC8DB81A8576E0CDA6232DA9B65C /* EthereumAddress-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumAddress-macOS-umbrella.h"; path = "../../Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h"; sourceTree = ""; }; BA94DDC1F5525609A6FBA3EB53F09037 /* UInt64+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UInt64+Extension.swift"; path = "Sources/CryptoSwift/UInt64+Extension.swift"; sourceTree = ""; }; + BB85F1319C99D294237399591C9F0FC2 /* CryptoSwift-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CryptoSwift-macOS-prefix.pch"; path = "../CryptoSwift-macOS/CryptoSwift-macOS-prefix.pch"; sourceTree = ""; }; BBE693F0F5E15CCA4AE9D51B9A369B70 /* Box.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Box.swift; path = Sources/Box.swift; sourceTree = ""; }; - BC2EE2AAFC0C186078B992C06F762E8D /* EthereumABI-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EthereumABI-macOS-umbrella.h"; path = "../EthereumABI-macOS/EthereumABI-macOS-umbrella.h"; sourceTree = ""; }; + BD52DB52712C6BD52F9C756343011D36 /* SipHash-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "SipHash-iOS.modulemap"; path = "../../Headers/Public/SipHash/SipHash-iOS.modulemap"; sourceTree = ""; }; BDD6E2BFD8131F124DFD131BA3C6D90E /* Data+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Extension.swift"; path = "Sources/CryptoSwift/Foundation/Data+Extension.swift"; sourceTree = ""; }; - BF0D275DC3AF207D0A444A28CB773AA5 /* SipHash-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SipHash-macOS-dummy.m"; path = "../SipHash-macOS/SipHash-macOS-dummy.m"; sourceTree = ""; }; + BF4AECB94DC3BA1862359A2958924A32 /* scrypt-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "scrypt-macOS-umbrella.h"; path = "../../Headers/Public/scrypt/scrypt-macOS-umbrella.h"; sourceTree = ""; }; BF7E9A738647C81A92D68BCF6E734C6B /* libscrypt-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libscrypt-iOS.a"; path = "libscrypt-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C04A3FB24C874F21628C4E7EA8B9693B /* scrypt-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "scrypt-macOS.xcconfig"; path = "../scrypt-macOS/scrypt-macOS.xcconfig"; sourceTree = ""; }; C04C575F1277CF14F506F691F9C669FC /* Random.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Random.swift; path = sources/Random.swift; sourceTree = ""; }; C0A59FDACCE16F10DF39EA55249CA72D /* String+Extension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+Extension.swift"; path = "Sources/CryptoSwift/String+Extension.swift"; sourceTree = ""; }; - C0E00E27FCA499ADCF69CE2096BEF87F /* EthereumAddress-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EthereumAddress-iOS.xcconfig"; sourceTree = ""; }; C14CAC03510776AA4E99EA944110DFD9 /* DigestType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DigestType.swift; path = Sources/CryptoSwift/DigestType.swift; sourceTree = ""; }; C174EE4F0CE9A869F2E898CFF8A36484 /* Poly1305.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Poly1305.swift; path = Sources/CryptoSwift/Poly1305.swift; sourceTree = ""; }; + C25A231A9C942A2334AE3430ED146FF4 /* SipHash-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SipHash-macOS-dummy.m"; path = "../SipHash-macOS/SipHash-macOS-dummy.m"; sourceTree = ""; }; C279D46376D66FBA43CD88224B12208B /* UIViewPropertyAnimator+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIViewPropertyAnimator+Promise.swift"; path = "Extensions/UIKit/Sources/UIViewPropertyAnimator+Promise.swift"; sourceTree = ""; }; C2AB0FA3FFAC3EBB0D9CACE786196AC1 /* BigUInt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BigUInt.swift; path = sources/BigUInt.swift; sourceTree = ""; }; C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EthereumAddress.h; path = EthereumAddress/EthereumAddress.h; sourceTree = ""; }; C4D8573A6F8E2A67DD73406C5B3ECBB5 /* join.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = join.m; path = Sources/join.m; sourceTree = ""; }; C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABITypeParser.swift; path = EthereumABI/Classes/ABITypeParser.swift; sourceTree = ""; }; - C742D7E4D064B53F3E8BD2061CEB4650 /* EthereumABI-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EthereumABI-macOS-dummy.m"; path = "../EthereumABI-macOS/EthereumABI-macOS-dummy.m"; sourceTree = ""; }; + C7251BB6432BCBE2F945FCDC857DD01A /* BigInt-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "BigInt-iOS.modulemap"; path = "../../Headers/Public/BigInt/BigInt-iOS.modulemap"; sourceTree = ""; }; + C7945B901D104B12E76F7FC10461A3D5 /* BigInt-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "BigInt-macOS.xcconfig"; path = "../BigInt-macOS/BigInt-macOS.xcconfig"; sourceTree = ""; }; C799FC61BB50110B0EF9812635A7CF8F /* race.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = race.swift; path = Sources/race.swift; sourceTree = ""; }; + C7E7D85D04AEF994D90632F66E660A6B /* Pods-web3swift-macOS_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-web3swift-macOS_Tests.modulemap"; sourceTree = ""; }; + C8B3233C12879C6534A856047197CECC /* CryptoSwift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CryptoSwift-iOS-umbrella.h"; path = "../../Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h"; sourceTree = ""; }; C9A9A0105BAE9E5BEE9ADD4B17A58DD8 /* Deprecations.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Deprecations.swift; path = Sources/Deprecations.swift; sourceTree = ""; }; - CC444A933C805567A3F012F3CEE72D08 /* secp256k1_swift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "secp256k1_swift-macOS-dummy.m"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS-dummy.m"; sourceTree = ""; }; + CAEC94D8F0FC43E808BA5F9ADB61CD96 /* Pods-web3swift-iOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-iOS-acknowledgements.plist"; sourceTree = ""; }; + CC96A475BB681DC7C3922414EA22A450 /* secp256k1_swift-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "secp256k1_swift-iOS.modulemap"; path = "../../Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap"; sourceTree = ""; }; + CCD178AF0C0283D14572A07109AABF34 /* Pods-web3swift-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-macOS-dummy.m"; sourceTree = ""; }; + CDB465170BB966F97819E263D12E34D0 /* SwiftRLP-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SwiftRLP-macOS-dummy.m"; path = "../SwiftRLP-macOS/SwiftRLP-macOS-dummy.m"; sourceTree = ""; }; CDFC58447BAB63CE30E97C059F8345F5 /* SHA1.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SHA1.swift; path = Sources/CryptoSwift/SHA1.swift; sourceTree = ""; }; CF31935E8E71BE039924EA648A315B8D /* NSNotificationCenter+Promise.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSNotificationCenter+Promise.swift"; path = "Extensions/Foundation/Sources/NSNotificationCenter+Promise.swift"; sourceTree = ""; }; - CF8798C22F31053E2D6EAF35C011146D /* BigInt-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "BigInt-macOS-dummy.m"; path = "../BigInt-macOS/BigInt-macOS-dummy.m"; sourceTree = ""; }; - CFAF7D663AA6B1D79BC3ED1927EEE23C /* EthereumABI-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumABI-macOS.modulemap"; path = "../EthereumABI-macOS/EthereumABI-macOS.modulemap"; sourceTree = ""; }; - D1EDEFFF233BE2D7F100C45B95D49336 /* secp256k1_swift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1_swift-macOS-umbrella.h"; path = "../secp256k1_swift-macOS/secp256k1_swift-macOS-umbrella.h"; sourceTree = ""; }; - D1FD34D2C5C93A170139E5994B7F5D8D /* Result-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Result-macOS.xcconfig"; path = "../Result-macOS/Result-macOS.xcconfig"; sourceTree = ""; }; + CFF935D0FA27DF791E8FDBB6D5D68CB2 /* Pods-web3swift-macOS_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-macOS_Tests.debug.xcconfig"; sourceTree = ""; }; D2742B99A93E16E813DA0B71800AAA56 /* String+FoundationExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+FoundationExtension.swift"; path = "Sources/CryptoSwift/Foundation/String+FoundationExtension.swift"; sourceTree = ""; }; + D2B1BF97D7528737FF5CBBA5C7BB4C70 /* secp256k1_swift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "secp256k1_swift-macOS-umbrella.h"; path = "../../Headers/Public/secp256k1_swift/secp256k1_swift-macOS-umbrella.h"; sourceTree = ""; }; D318DFC773B02CFC92B543471C937BA7 /* secp256k1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = secp256k1.h; path = Classes/secp256k1/include/secp256k1.h; sourceTree = ""; }; - D357F7F273D21A9292686CC024C470A2 /* EthereumAddress-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "EthereumAddress-iOS.modulemap"; sourceTree = ""; }; D4C96A2C2C3B9F8977AD08B6FBEDE552 /* field_5x52_asm_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_5x52_asm_impl.h; path = Classes/secp256k1/src/field_5x52_asm_impl.h; sourceTree = ""; }; D62515D5BE9A59FE5C9041B4EBE9CA58 /* Cipher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Cipher.swift; path = Sources/CryptoSwift/Cipher.swift; sourceTree = ""; }; D6E02047F0F6A6150C26B56EEF63F55B /* ZeroPadding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZeroPadding.swift; path = Sources/CryptoSwift/ZeroPadding.swift; sourceTree = ""; }; + D7E339890E763B90E704D311B22ABF38 /* EthereumAddress-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumAddress-iOS.modulemap"; path = "../../Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap"; sourceTree = ""; }; D895276EEA2D99E4EBF5B7FE4596872B /* NSNotificationCenter+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSNotificationCenter+AnyPromise.h"; sourceTree = ""; }; - D8EC3860FD1A1DA54C00A1498D1F1D9E /* CryptoSwift-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CryptoSwift-macOS-umbrella.h"; path = "../CryptoSwift-macOS/CryptoSwift-macOS-umbrella.h"; sourceTree = ""; }; - D8F688145BCFE1FB8B76299CC261A05E /* Pods-web3swift-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-iOS-dummy.m"; sourceTree = ""; }; + D96A0A368BE15EEEB27A3F77B5F74533 /* Pods-web3swift-iOS_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-web3swift-iOS_Tests-dummy.m"; sourceTree = ""; }; D9883A143C0F77B2C2AF7E05BF805F25 /* AES+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "AES+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/AES+Foundation.swift"; sourceTree = ""; }; D9B1DC98FA2ABF0645707ED4C6FF5D77 /* Subtraction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Subtraction.swift; path = sources/Subtraction.swift; sourceTree = ""; }; D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIParsing.swift; path = EthereumABI/Classes/ABIParsing.swift; sourceTree = ""; }; - DA0CDB938B1F875D679C20362C887E17 /* PromiseKit.root-CorePromise-Foundation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PromiseKit.root-CorePromise-Foundation-umbrella.h"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-umbrella.h"; sourceTree = ""; }; - DA900039B5D199745C785144030E7BF9 /* Pods-web3swift-macOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-macOS-acknowledgements.markdown"; sourceTree = ""; }; - DAB3CD9F51BF3B4399B8EFC798B3F215 /* scrypt-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "scrypt-macOS-dummy.m"; path = "../scrypt-macOS/scrypt-macOS-dummy.m"; sourceTree = ""; }; DAB40084682C161CD573420C8CCBFD4F /* NSTask+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSTask+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSTask+AnyPromise.h"; sourceTree = ""; }; - DCCD9B75F811575B41254E2EACE6F115 /* Pods-web3swift-macOS_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-macOS_Tests-acknowledgements.plist"; sourceTree = ""; }; + DC5A3935C9286BCD73BE84B59555BAAF /* EthereumABI-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "EthereumABI-macOS.xcconfig"; path = "../EthereumABI-macOS/EthereumABI-macOS.xcconfig"; sourceTree = ""; }; DD5583797A4DF2B5636D036CDD472CD0 /* hang.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = hang.m; path = Sources/hang.m; sourceTree = ""; }; + DD61FCA6B92DBB61BD0CE0268DBAA790 /* Pods-web3swift-iOS-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-web3swift-iOS-resources.sh"; sourceTree = ""; }; + DE0948C74C9B59B1B0795D45CD959AC2 /* EthereumABI-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EthereumABI-macOS-dummy.m"; path = "../EthereumABI-macOS/EthereumABI-macOS-dummy.m"; sourceTree = ""; }; DE9BBD4AE4B529B25E9E4FE7C8493181 /* after.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = after.swift; path = Sources/after.swift; sourceTree = ""; }; + DE9F29B3A81741F09C62DDDDBACA9A17 /* EthereumAddress-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EthereumAddress-iOS-dummy.m"; sourceTree = ""; }; DF72EE1FD04A0B49CB495E9980F6B8A9 /* AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AnyPromise.m; path = Sources/AnyPromise.m; sourceTree = ""; }; E05424B44F6AFD35E237815F926FEEEB /* eckey_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = eckey_impl.h; path = Classes/secp256k1/src/eckey_impl.h; sourceTree = ""; }; E1999CB16AEF90FFCC762EC5BA3C538B /* scalar_4x64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_4x64.h; path = Classes/secp256k1/src/scalar_4x64.h; sourceTree = ""; }; E1D1692A2F154E2828E569943ED540D4 /* CipherModeWorker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CipherModeWorker.swift; path = Sources/CryptoSwift/BlockMode/CipherModeWorker.swift; sourceTree = ""; }; + E288A05D71D9B3234891B4B3FC6F24D6 /* EthereumAddress-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "EthereumAddress-macOS.xcconfig"; path = "../EthereumAddress-macOS/EthereumAddress-macOS.xcconfig"; sourceTree = ""; }; E301EA386C90D10BDC9671660BE64E94 /* libCryptoSwift-macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libCryptoSwift-macOS.a"; path = "libCryptoSwift-macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E3ADB0156604A4FD7CD47B25248088C2 /* Pods-web3swift-iOS_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-web3swift-iOS_Tests.release.xcconfig"; sourceTree = ""; }; + E47B1C019B050603C3C7822A13D29ADA /* EthereumAddress-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "EthereumAddress-macOS.modulemap"; path = "../../Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap"; sourceTree = ""; }; E4992855757033544670BD38D4484C08 /* BlockCipher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockCipher.swift; path = Sources/CryptoSwift/BlockCipher.swift; sourceTree = ""; }; - E4D925299799CBB413016810B41EB65C /* SwiftRLP-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftRLP-iOS-prefix.pch"; sourceTree = ""; }; + E6251CD3609D0F5F96F459E0B9699CC1 /* Pods-web3swift-macOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-web3swift-macOS-acknowledgements.plist"; sourceTree = ""; }; E692601913F2AB7B6FE40D658E90C7B5 /* libEthereumABI-iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libEthereumABI-iOS.a"; path = "libEthereumABI-iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; E7A2D1D0062F350907B747E2A192E438 /* ABIDecoding.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ABIDecoding.swift; path = EthereumABI/Classes/ABIDecoding.swift; sourceTree = ""; }; + E8C02178623EA24595E251627CE2F4A5 /* SwiftRLP-macOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SwiftRLP-macOS-umbrella.h"; path = "../../Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h"; sourceTree = ""; }; E94EF5B041036E702BC404B7118A8F9E /* UIViewController+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+AnyPromise.h"; path = "Extensions/UIKit/Sources/UIViewController+AnyPromise.h"; sourceTree = ""; }; E9FDE304B6122EEAE8A1FC91742A69E6 /* scalar_8x32.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_8x32.h; path = Classes/secp256k1/src/scalar_8x32.h; sourceTree = ""; }; EA46482A8E14BD7641E6F29ED4F0A6B4 /* Integer Conversion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Integer Conversion.swift"; path = "sources/Integer Conversion.swift"; sourceTree = ""; }; EA5B0A3B538B56303C1A061E2514BF07 /* hash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = hash.h; path = Classes/secp256k1/src/hash.h; sourceTree = ""; }; EA975F09047F404D3183C92FCA1AD829 /* Hashable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Hashable.swift; path = sources/Hashable.swift; sourceTree = ""; }; - EABECB99AFE1BF549F3CEE90FBD45E98 /* BigInt-macOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "BigInt-macOS.modulemap"; path = "../BigInt-macOS/BigInt-macOS.modulemap"; sourceTree = ""; }; EB02248C062005D2F2620C9F81EC5ED4 /* GCD.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = GCD.swift; path = sources/GCD.swift; sourceTree = ""; }; EB74063F2F7DC76E97D34EC40D093C52 /* Salsa.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Salsa.swift; path = scrypt/scrypt/Salsa.swift; sourceTree = ""; }; - EB9D182FF8C8E692497E5FB1362B72E9 /* scrypt-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "scrypt-iOS.modulemap"; sourceTree = ""; }; - ED9E675BBBC75B01E6961483170B6E7F /* SwiftRLP-macOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "SwiftRLP-macOS-dummy.m"; path = "../SwiftRLP-macOS/SwiftRLP-macOS-dummy.m"; sourceTree = ""; }; + EBAA5566E801EA55675E774C73EC9B68 /* SwiftRLP-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftRLP-iOS-dummy.m"; sourceTree = ""; }; + EC18156DBCA6BE2E1B8992FB811060C5 /* scrypt-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "scrypt-iOS.xcconfig"; sourceTree = ""; }; EDB10140BE59AEE481C7E08EDC79971D /* Division.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Division.swift; path = sources/Division.swift; sourceTree = ""; }; - EDD86700A4552C712FAC348BB69DACD9 /* secp256k1_swift-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "secp256k1_swift-iOS-umbrella.h"; sourceTree = ""; }; EE9322C93C8E91E65E7CE9C01CB02F70 /* UIView+AnyPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+AnyPromise.m"; path = "Extensions/UIKit/Sources/UIView+AnyPromise.m"; sourceTree = ""; }; - EF8327584F2BDEC27C9163F51CDEFB9E /* SwiftRLP-macOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftRLP-macOS.xcconfig"; path = "../SwiftRLP-macOS/SwiftRLP-macOS.xcconfig"; sourceTree = ""; }; + EEE09E8394158AD1A79DE783A6B3EB44 /* SwiftRLP-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "SwiftRLP-iOS-umbrella.h"; path = "../../Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h"; sourceTree = ""; }; + EF2AD0B2B563AAB85CFA8FB51B097740 /* PromiseKit.root-CorePromise-Foundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PromiseKit.root-CorePromise-Foundation-prefix.pch"; path = "../PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; sourceTree = ""; }; F063BD5FB8772F058E36A1292962E899 /* Blowfish.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Blowfish.swift; path = Sources/CryptoSwift/Blowfish.swift; sourceTree = ""; }; F0EE85F786503354B347C059417EBAD2 /* CustomStringConvertible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomStringConvertible.swift; path = Sources/CustomStringConvertible.swift; sourceTree = ""; }; + F0F26E25773CB525159D46C5B6D1B376 /* SipHash-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SipHash-iOS.xcconfig"; sourceTree = ""; }; F106BE3FED3F7D139A061124A9FF0251 /* Cimpl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Cimpl.h; path = scrypt/Cimpl.h; sourceTree = ""; }; F1C65F271D54976AEAF5B1CB4522A471 /* Scrypt.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Scrypt.swift; path = scrypt/scrypt/Scrypt.swift; sourceTree = ""; }; F20EF6148A6A9322390DD71721B5343D /* NoError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NoError.swift; path = Result/NoError.swift; sourceTree = ""; }; F265D345562C600DE93E2D4EA31ED76D /* Resolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Resolver.swift; path = Sources/Resolver.swift; sourceTree = ""; }; F269536FCE8F92893C1DF08F94904EBD /* NSURLSession+AnyPromise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSession+AnyPromise.h"; path = "Extensions/Foundation/Sources/NSURLSession+AnyPromise.h"; sourceTree = ""; }; + F2DA5C5A9F445A5325759C8C2073207E /* PromiseKit.root-CorePromise-Foundation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "PromiseKit.root-CorePromise-Foundation.modulemap"; path = "../../Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap"; sourceTree = ""; }; F3BCAAFEDF865BD7F6D1C36246EEE02A /* field.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field.h; path = Classes/secp256k1/src/field.h; sourceTree = ""; }; F42AC215BDD4E22070E88E9837549CD1 /* RandomBytesSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RandomBytesSequence.swift; path = Sources/CryptoSwift/RandomBytesSequence.swift; sourceTree = ""; }; - F45D1FF9B0F3BEACB34D069C6F3561F8 /* Pods-web3swift-iOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-web3swift-iOS-acknowledgements.markdown"; sourceTree = ""; }; - F4E5D057A0E9ADAC720AAE1F3B6FD669 /* scrypt-macOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "scrypt-macOS-prefix.pch"; path = "../scrypt-macOS/scrypt-macOS-prefix.pch"; sourceTree = ""; }; F60D6D403033B0F37C22533C4A05A1E4 /* UInt128.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UInt128.swift; path = Sources/CryptoSwift/UInt128.swift; sourceTree = ""; }; F62C08D51F07D8799AD6CB646A710F41 /* ChaCha20.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChaCha20.swift; path = Sources/CryptoSwift/ChaCha20.swift; sourceTree = ""; }; F6575BB4E0B2AD0E5B88C62A5EDA6FCB /* group.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = group.h; path = Classes/secp256k1/src/group.h; sourceTree = ""; }; F6B67028CCAE6818C78DBC12D8329550 /* RLP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RLP.swift; path = Classes/RLP.swift; sourceTree = ""; }; + F6DE552AC7B11C5490C2908E09505064 /* scrypt-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "scrypt-iOS-prefix.pch"; sourceTree = ""; }; F7E0FE543A2A814147E52BD4424892FD /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = Sources/fwd.h; sourceTree = ""; }; F7ED977AF2E31DEA78D850BDE6C9F601 /* field_10x26_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = field_10x26_impl.h; path = Classes/secp256k1/src/field_10x26_impl.h; sourceTree = ""; }; - F7F56C5F9833A0AB26CC47460A928E34 /* Result-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Result-iOS.xcconfig"; sourceTree = ""; }; F8C27B7CBA5225481973EDA23AF49981 /* AEADChaCha20Poly1305.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AEADChaCha20Poly1305.swift; path = Sources/CryptoSwift/AEAD/AEADChaCha20Poly1305.swift; sourceTree = ""; }; + F8ED5F0BBB8BFF1D7DBBB3AA0BE5EA7E /* EthereumABI-iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "EthereumABI-iOS.xcconfig"; sourceTree = ""; }; F964C89C691E6FE6350F48A4A3E1DD52 /* PKCS5.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PKCS5.swift; path = Sources/CryptoSwift/PKCS/PKCS5.swift; sourceTree = ""; }; - F98943C5BB435ED0A98F417086E89DFE /* scrypt-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "scrypt-iOS-prefix.pch"; sourceTree = ""; }; F98F9737D714C11C13F01403ECACC354 /* Utils+Foundation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Utils+Foundation.swift"; path = "Sources/CryptoSwift/Foundation/Utils+Foundation.swift"; sourceTree = ""; }; FA4C0B3D9EC3E926E106CA2DE8CDEAF9 /* ecmult_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ecmult_impl.h; path = Classes/secp256k1/src/ecmult_impl.h; sourceTree = ""; }; FA4D3EFB3ECDE366218A9D0848F3C58B /* scalar_impl.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scalar_impl.h; path = Classes/secp256k1/src/scalar_impl.h; sourceTree = ""; }; @@ -1120,157 +1306,160 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 0CB8E604AAFC039274BE7F9019820464 /* Frameworks */ = { + 1600C6BC8C1AD78A95A84E5114873FBD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 1600C6BC8C1AD78A95A84E5114873FBD /* Frameworks */ = { + 215FF64BB8F688F84B3231B77569E5C2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 201C2E8B1BBF4EA2C2E855CAD443F07A /* Frameworks */ = { + 25FCBA5B2FFAFF4A3E1CB4180AA265B0 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 215FF64BB8F688F84B3231B77569E5C2 /* Frameworks */ = { + 30C84D375526C86BF24F081A4EF0CA55 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 224FCBB2C53DEF01AF13F9CFC741739D /* Frameworks */ = { + 3B7AC4EF9C63E5F22954D8AF93D04330 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 23806D0BC0F52E8AC5EE2B81034FD7D3 /* Frameworks */ = { + 435144EBFB416082687F21AE9FE91D96 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 25FCBA5B2FFAFF4A3E1CB4180AA265B0 /* Frameworks */ = { + 49DDA0C2610D394C727D7031E3440CCF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 30C84D375526C86BF24F081A4EF0CA55 /* Frameworks */ = { + 4C7C00241A0319C18F0BD1840D2AC575 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 3B7AC4EF9C63E5F22954D8AF93D04330 /* Frameworks */ = { + 51EBA92B0E39FC245B79672267EB6685 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 6BB6DA0290C8E8CDA20898B8A1BAC089 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 435144EBFB416082687F21AE9FE91D96 /* Frameworks */ = { + 5740D976E52AA2EB97C2A9F753E1C740 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 49DDA0C2610D394C727D7031E3440CCF /* Frameworks */ = { + 6F6453F76274AE713CC0D3CD28EB9C36 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 5740D976E52AA2EB97C2A9F753E1C740 /* Frameworks */ = { + 81851D7060BC66A8EED44FD76B350669 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 6F6453F76274AE713CC0D3CD28EB9C36 /* Frameworks */ = { + 872D6A3DAA3AC36B6C52474F6BF4CA6D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 739BFA7B674F25403C43C426637796E0 /* Frameworks */ = { + 8A852453AAC819ADB163A9F4FA02ABF9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 803328A4C9D919A350F04AB5D9FBBC0A /* Frameworks */ = { + AA5AD738D86FEC4EA3CC0FE9FAF12A53 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 872D6A3DAA3AC36B6C52474F6BF4CA6D /* Frameworks */ = { + AC5A4F42824C1F9DC39C2D962FA6E967 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 8A852453AAC819ADB163A9F4FA02ABF9 /* Frameworks */ = { + B28615186FF9D90001D66217490F939C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 9FA0F642AE177D3FA07814A41F264B1A /* Frameworks */ = { + C7C2C89852420D7FE3894F0E2A82B98D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - AC5A4F42824C1F9DC39C2D962FA6E967 /* Frameworks */ = { + D2A4B152651F01134ED378054CE50C8D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C057B63C1468DF9D9FB55C472186B940 /* Frameworks */ = { + E5CAE3ADD0C2C43E056DC1018C2CD34E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - D2A4B152651F01134ED378054CE50C8D /* Frameworks */ = { + F3D19D58AA787766BBBD7801570222E2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - F3D19D58AA787766BBBD7801570222E2 /* Frameworks */ = { + F626FEC9545EED5621432105CBB5B89F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4756C27FD4C1AC3E8B0106C92C5D5C3E /* Foundation.framework in Frameworks */, + E96683BDB351B577E8F4C46E4E7A99A6 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1284,77 +1473,75 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0016905C45F8F01C6D080425028330F0 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - AAB417525B4AA28CC55EECA7CFDAB251 /* Pods-web3swift-iOS */, - 088CBEDD2E17F09CAC27FDABD9102BD4 /* Pods-web3swift-iOS_Tests */, - 6FE5839A998F9D581E5060F0675BF53C /* Pods-web3swift-macOS */, - 074B5AF920A574FC168DA49C8D334690 /* Pods-web3swift-macOS_Tests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; 04D344FA994D64D74F3957A5E07D7003 /* SwiftRLP */ = { isa = PBXGroup; children = ( F6B67028CCAE6818C78DBC12D8329550 /* RLP.swift */, B8EBC720E3207E6F08965D7549AAFEC6 /* SwiftRLP.h */, - 9F0ACAD8B1C23047839392A42456AF61 /* Support Files */, + 5709097A76C50A5C26AF5C27726756F5 /* Support Files */, ); name = SwiftRLP; path = SwiftRLP; sourceTree = ""; }; - 074B5AF920A574FC168DA49C8D334690 /* Pods-web3swift-macOS_Tests */ = { + 1BA893BB24AE0640C83A4E43734D905A /* Pods-web3swift-iOS */ = { isa = PBXGroup; children = ( - 54DEB815C6A515714B4A838D414C3241 /* Pods-web3swift-macOS_Tests-acknowledgements.markdown */, - DCCD9B75F811575B41254E2EACE6F115 /* Pods-web3swift-macOS_Tests-acknowledgements.plist */, - 522015696E45158812DD4C5CF37CD544 /* Pods-web3swift-macOS_Tests-dummy.m */, - B7762E4245191B27674EB7EB82DCFFF1 /* Pods-web3swift-macOS_Tests.debug.xcconfig */, - 0D88C9D56C3885598E20D9718F3B8F16 /* Pods-web3swift-macOS_Tests.release.xcconfig */, + 30FDF14BD303D5A006DF5E2AFC3C5689 /* Pods-web3swift-iOS.modulemap */, + 09E6F0E17B524D5203BB82F0927DED7C /* Pods-web3swift-iOS-acknowledgements.markdown */, + CAEC94D8F0FC43E808BA5F9ADB61CD96 /* Pods-web3swift-iOS-acknowledgements.plist */, + 201CB380345E9D668D690C12DA30C425 /* Pods-web3swift-iOS-dummy.m */, + DD61FCA6B92DBB61BD0CE0268DBAA790 /* Pods-web3swift-iOS-resources.sh */, + 3D8C2202C63BDA7C0F7AF6C89B6273FD /* Pods-web3swift-iOS-umbrella.h */, + 549BC77FB563C5F7078EEF621568360D /* Pods-web3swift-iOS.debug.xcconfig */, + 6D76E01714111860B1A58E945BFEDC3A /* Pods-web3swift-iOS.release.xcconfig */, ); - name = "Pods-web3swift-macOS_Tests"; - path = "Target Support Files/Pods-web3swift-macOS_Tests"; + name = "Pods-web3swift-iOS"; + path = "Target Support Files/Pods-web3swift-iOS"; sourceTree = ""; }; - 088CBEDD2E17F09CAC27FDABD9102BD4 /* Pods-web3swift-iOS_Tests */ = { + 215612CDDB6F3883846CBDFDDF0900D9 /* Pods-web3swift-iOS_Tests */ = { isa = PBXGroup; children = ( - 753E3CD3CF2AA32CDB11305D429F3C96 /* Pods-web3swift-iOS_Tests-acknowledgements.markdown */, - 6D4A716592C208D7429CE19B82094FA8 /* Pods-web3swift-iOS_Tests-acknowledgements.plist */, - 8B56F6A20A0CF698ECA0EDF6CF4CDD74 /* Pods-web3swift-iOS_Tests-dummy.m */, - 24B5C2F89100EAE084E4AF83DDE6303D /* Pods-web3swift-iOS_Tests.debug.xcconfig */, - E3ADB0156604A4FD7CD47B25248088C2 /* Pods-web3swift-iOS_Tests.release.xcconfig */, + 2B9A068D7995C83D3F75D4CD25D2735E /* Pods-web3swift-iOS_Tests.modulemap */, + 06AC0C18C20BEB0CFF4386CE35E5CFC9 /* Pods-web3swift-iOS_Tests-acknowledgements.markdown */, + 2F5F058DBD6EA05A860EB5A2481950F9 /* Pods-web3swift-iOS_Tests-acknowledgements.plist */, + D96A0A368BE15EEEB27A3F77B5F74533 /* Pods-web3swift-iOS_Tests-dummy.m */, + 8694D87EAC35605010892313429D6622 /* Pods-web3swift-iOS_Tests-frameworks.sh */, + 37285A75B12306326B0EF6AD23148A66 /* Pods-web3swift-iOS_Tests-resources.sh */, + 1938EA02A3971FFC506F4AE3E29121A6 /* Pods-web3swift-iOS_Tests-umbrella.h */, + 838E20D48ECBA3CCA073FF52AA6BD234 /* Pods-web3swift-iOS_Tests.debug.xcconfig */, + B12A75E0FD8B52123CBAE9EEB4A42F3B /* Pods-web3swift-iOS_Tests.release.xcconfig */, ); name = "Pods-web3swift-iOS_Tests"; path = "Target Support Files/Pods-web3swift-iOS_Tests"; sourceTree = ""; }; - 0BFEFDA3C060A520AC31181B2B963F58 /* Support Files */ = { + 25062AE53C6E266C95EA1E671D464DF4 /* Support Files */ = { isa = PBXGroup; children = ( - 6BB6440618D1B0E87AE5AA65F64B69DD /* Result-iOS.modulemap */, - F7F56C5F9833A0AB26CC47460A928E34 /* Result-iOS.xcconfig */, - 279857EBC2D837FCAB656991E73C8C39 /* Result-iOS-dummy.m */, - 0C79BC89B6EB9504D07FA8AC80365541 /* Result-iOS-prefix.pch */, - 2A844BDD60081AA12674BC4FC33E5560 /* Result-iOS-umbrella.h */, - 53A9CE7F7031C40517F85796D6BDEB9C /* Result-macOS.modulemap */, - D1FD34D2C5C93A170139E5994B7F5D8D /* Result-macOS.xcconfig */, - 0536186C77B05CB18765BFD4670AC3D1 /* Result-macOS-dummy.m */, - 0DA70B96E002212A3A39FC0943499DF6 /* Result-macOS-prefix.pch */, - 37A3BB2B9627AD42F4EC73AE040C9A18 /* Result-macOS-umbrella.h */, + C7251BB6432BCBE2F945FCDC857DD01A /* BigInt-iOS.modulemap */, + 292D5B486A33EC84948DFFBEBBB0994D /* BigInt-iOS.xcconfig */, + ADDD8977E2AE58D356A3834CF279DCDC /* BigInt-iOS-dummy.m */, + 6AA0EA9B40029BD24FAFF9341FD807C5 /* BigInt-iOS-prefix.pch */, + 95F6C76BA5D1065824F88B06602E1A04 /* BigInt-iOS-umbrella.h */, + 73BC5EDC47ED684DB1EC14EBA4F53640 /* BigInt-macOS.modulemap */, + C7945B901D104B12E76F7FC10461A3D5 /* BigInt-macOS.xcconfig */, + 816CED29D01C20C94514563C21AC3763 /* BigInt-macOS-dummy.m */, + 71E2A7910D7AF85D22133C192905F177 /* BigInt-macOS-prefix.pch */, + A664C0C78E9A17B67C1E2444F370C841 /* BigInt-macOS-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/Result-iOS"; + path = "../Target Support Files/BigInt-iOS"; sourceTree = ""; }; - 0F8D2E47FE03D3B91B51069F7C273AF4 /* Frameworks */ = { + 2C7F6DCC691B3F7BE3BAD651EA1797D4 /* iOS */ = { isa = PBXGroup; children = ( + 72220B6001A2BD888AB52C2A47D550E8 /* Foundation.framework */, + 0A5C7F3160C1A282D95FFBC31C59404D /* UIKit.framework */, ); - name = Frameworks; + name = iOS; sourceTree = ""; }; 34FAF2B4032D60B58F23F807B4871923 /* SipHash */ = { @@ -1364,28 +1551,28 @@ 86A87591096A3CD9071AD2D94874973C /* RandomUInt64.swift */, B99B34DE805578131F4C0D5BFE276614 /* SipHashable.swift */, 4638850DD91EB5F2EFCF18E99D4D87FA /* SipHasher.swift */, - AEAD5D9B473E4A71E8CFAE0F15721DB9 /* Support Files */, + 67CDBFAC249CCAAA023F234CD7BB657D /* Support Files */, ); name = SipHash; path = SipHash; sourceTree = ""; }; - 3827F60DF0B6BE43D84C824208816056 /* Support Files */ = { + 3B126B16AD4D13797C53E5933F97BC7A /* Support Files */ = { isa = PBXGroup; children = ( - EB9D182FF8C8E692497E5FB1362B72E9 /* scrypt-iOS.modulemap */, - 420A1793DC6527296BC586472865C8C0 /* scrypt-iOS.xcconfig */, - 2533EAF35B54AB44227FBC0A9BA7D19E /* scrypt-iOS-dummy.m */, - F98943C5BB435ED0A98F417086E89DFE /* scrypt-iOS-prefix.pch */, - 417BA17C9527B36A6953928718163ACE /* scrypt-iOS-umbrella.h */, - 3BA0B14650AEA1E6C77147E96770CB09 /* scrypt-macOS.modulemap */, - C04A3FB24C874F21628C4E7EA8B9693B /* scrypt-macOS.xcconfig */, - DAB3CD9F51BF3B4399B8EFC798B3F215 /* scrypt-macOS-dummy.m */, - F4E5D057A0E9ADAC720AAE1F3B6FD669 /* scrypt-macOS-prefix.pch */, - 55609C780EA603377D9F33E7661A79BB /* scrypt-macOS-umbrella.h */, + 1C9BF049B1327890EF1791EE9A669873 /* EthereumABI-iOS.modulemap */, + F8ED5F0BBB8BFF1D7DBBB3AA0BE5EA7E /* EthereumABI-iOS.xcconfig */, + 8BE513BBB1E501AC239B2E5FCFEEB1C7 /* EthereumABI-iOS-dummy.m */, + 95BC3095349C08EEC619752DCE4111F5 /* EthereumABI-iOS-prefix.pch */, + 45A786BAB1EBC0AC21E3491CEEBCA128 /* EthereumABI-iOS-umbrella.h */, + A579E83A5736485F7298EBD0C70306E8 /* EthereumABI-macOS.modulemap */, + DC5A3935C9286BCD73BE84B59555BAAF /* EthereumABI-macOS.xcconfig */, + DE0948C74C9B59B1B0795D45CD959AC2 /* EthereumABI-macOS-dummy.m */, + ACA03FF281F5ED3E11C4521A6732967E /* EthereumABI-macOS-prefix.pch */, + 7FC1B6B1176F612793CC1F8C240ED4F5 /* EthereumABI-macOS-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/scrypt-iOS"; + path = "../Target Support Files/EthereumABI-iOS"; sourceTree = ""; }; 3EC5D1EA5568F6BB631C6A9AD5B40F86 /* Products */ = { @@ -1419,36 +1606,36 @@ name = Products; sourceTree = ""; }; + 40D2E0B107F8F6A1CEA6445C26509300 /* Support Files */ = { + isa = PBXGroup; + children = ( + CC96A475BB681DC7C3922414EA22A450 /* secp256k1_swift-iOS.modulemap */, + 66AED7B1284F110412341823D0393172 /* secp256k1_swift-iOS.xcconfig */, + 9450E7D1C947B8B26E2581CEE561EE22 /* secp256k1_swift-iOS-dummy.m */, + 29C2B20C9A04EF2CBA9D49CF5F5A209B /* secp256k1_swift-iOS-prefix.pch */, + 0E5B3140CA2A969D2F458E286A483C3F /* secp256k1_swift-iOS-umbrella.h */, + 72A7F9C67E48E1411F3B058763643F52 /* secp256k1_swift-macOS.modulemap */, + 8DB920805B0BCCB1D1D3A6508C722E73 /* secp256k1_swift-macOS.xcconfig */, + 1E3533F5E7BCF44674C622F4B65BF374 /* secp256k1_swift-macOS-dummy.m */, + 039C19A96EE402775DDB921C14D07D95 /* secp256k1_swift-macOS-prefix.pch */, + D2B1BF97D7528737FF5CBBA5C7BB4C70 /* secp256k1_swift-macOS-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/secp256k1_swift-iOS"; + sourceTree = ""; + }; 455CF9C0C54FD8B35634D81F5E38ED46 /* PromiseKit */ = { isa = PBXGroup; children = ( B028E45757F11470855CBBF5A23509C8 /* CorePromise */, C584BCF64FE7C44F77E0DC8BBCA5046B /* Foundation */, - 8D7C724EEC47F84DA9BED20E20279645 /* Support Files */, + 847477F36C3812C18EE3A763FB21AB3F /* Support Files */, C9D721D47F8E2604C59F3C672BD6200D /* UIKit */, ); name = PromiseKit; path = PromiseKit; sourceTree = ""; }; - 467AC48A0B5ED526FE4CBC40660B4813 /* Support Files */ = { - isa = PBXGroup; - children = ( - 2C1E2451F697C193D067734C4AF47482 /* EthereumABI-iOS.modulemap */, - 522579B02AF58D183F2AC531E3F33572 /* EthereumABI-iOS.xcconfig */, - 48DE6A16D72E33E779AE2257CA5D34BC /* EthereumABI-iOS-dummy.m */, - 9C056AE54C5A5C44A47093DCBA233F46 /* EthereumABI-iOS-prefix.pch */, - 98229C7D8E3906BD4C8DCD833704588C /* EthereumABI-iOS-umbrella.h */, - CFAF7D663AA6B1D79BC3ED1927EEE23C /* EthereumABI-macOS.modulemap */, - B48543DD38BB8E1AB0953C926DBA6C3F /* EthereumABI-macOS.xcconfig */, - C742D7E4D064B53F3E8BD2061CEB4650 /* EthereumABI-macOS-dummy.m */, - 22C3F518991BE51FC595F8F3EF89345B /* EthereumABI-macOS-prefix.pch */, - BC2EE2AAFC0C186078B992C06F762E8D /* EthereumABI-macOS-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/EthereumABI-iOS"; - sourceTree = ""; - }; 4952837D3F6017272786DEA472A72078 /* scrypt */ = { isa = PBXGroup; children = ( @@ -1458,7 +1645,7 @@ EB74063F2F7DC76E97D34EC40D093C52 /* Salsa.swift */, 07853D5BF50E26B878B7B1D18CF18F06 /* scrypt.h */, F1C65F271D54976AEAF5B1CB4522A471 /* Scrypt.swift */, - 3827F60DF0B6BE43D84C824208816056 /* Support Files */, + E8C15CE92E9A555E542BC27EB899DE21 /* Support Files */, ); name = scrypt; path = scrypt; @@ -1470,28 +1657,36 @@ C4AD5698CEACE94C1CAD1C0317E14905 /* EthereumAddress.h */, AFAA80681A91BDC50EFC4294353BC5BA /* EthereumAddress.swift */, 80ACF3AED1948ECBBAF9BEFFC3482423 /* Extensions.swift */, - 922AFC21F176C35CEE509B534B859943 /* Support Files */, + 97CF81B1CA0F75FF4468F7D8A0390F70 /* Support Files */, ); name = EthereumAddress; path = EthereumAddress; sourceTree = ""; }; - 563C4EF4DEB4F8DA641EF40144826E4B /* Support Files */ = { + 5404095ADA34F55D5FBAC826D65B1DA0 /* OS X */ = { + isa = PBXGroup; + children = ( + 9141557151A6042910B007BFD2C08337 /* Foundation.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + 5709097A76C50A5C26AF5C27726756F5 /* Support Files */ = { isa = PBXGroup; children = ( - A330934D98A54C2602C42AF53B6E728E /* secp256k1_swift-iOS.modulemap */, - B6A0DADFE9809AB925F51CF651528B31 /* secp256k1_swift-iOS.xcconfig */, - 9E3FCE1E29EDFA06494CDD00767685E3 /* secp256k1_swift-iOS-dummy.m */, - 5DC3FD3167A8763A6C85B62EFDA429D2 /* secp256k1_swift-iOS-prefix.pch */, - EDD86700A4552C712FAC348BB69DACD9 /* secp256k1_swift-iOS-umbrella.h */, - 9760F737EE5BDAD80F6E6DDA26EE421C /* secp256k1_swift-macOS.modulemap */, - 330B8D8B0B8ACFFDF2B9292154D71642 /* secp256k1_swift-macOS.xcconfig */, - CC444A933C805567A3F012F3CEE72D08 /* secp256k1_swift-macOS-dummy.m */, - 4B737AB9139E0187239D966FFC143FB3 /* secp256k1_swift-macOS-prefix.pch */, - D1EDEFFF233BE2D7F100C45B95D49336 /* secp256k1_swift-macOS-umbrella.h */, + B8AFA7DEC96C0138ADA2A695B42BDD77 /* SwiftRLP-iOS.modulemap */, + 0C7ECBFABE9667C08C3E0CAA44F61507 /* SwiftRLP-iOS.xcconfig */, + EBAA5566E801EA55675E774C73EC9B68 /* SwiftRLP-iOS-dummy.m */, + 499284C2F8453A839CEDEDBC47E42B14 /* SwiftRLP-iOS-prefix.pch */, + EEE09E8394158AD1A79DE783A6B3EB44 /* SwiftRLP-iOS-umbrella.h */, + 4D1BB5E5DC1FC41AA80C491CB8F7F0B1 /* SwiftRLP-macOS.modulemap */, + 6B43693C134C90A32C6A63727F4D6363 /* SwiftRLP-macOS.xcconfig */, + CDB465170BB966F97819E263D12E34D0 /* SwiftRLP-macOS-dummy.m */, + 4620827BC2A4A3BD942D913A099130AD /* SwiftRLP-macOS-prefix.pch */, + E8C02178623EA24595E251627CE2F4A5 /* SwiftRLP-macOS-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/secp256k1_swift-iOS"; + path = "../Target Support Files/SwiftRLP-iOS"; sourceTree = ""; }; 667472FEE28006D1990700DD108F738A /* BigInt */ = { @@ -1519,36 +1714,67 @@ 68D5DF1B1384D6392013199F71BACD06 /* String Conversion.swift */, D9B1DC98FA2ABF0645707ED4C6FF5D77 /* Subtraction.swift */, 2D6E2E2ED41464CEB00832B492D67ECB /* Words and Bits.swift */, - E36023E8575313B31CF8B6B497F4FFBA /* Support Files */, + 25062AE53C6E266C95EA1E671D464DF4 /* Support Files */, ); name = BigInt; path = BigInt; sourceTree = ""; }; - 6FE5839A998F9D581E5060F0675BF53C /* Pods-web3swift-macOS */ = { + 67CDBFAC249CCAAA023F234CD7BB657D /* Support Files */ = { isa = PBXGroup; children = ( - 90B410829D6E70A45A22CC62F187A11B /* Pods-web3swift-macOS.modulemap */, - DA900039B5D199745C785144030E7BF9 /* Pods-web3swift-macOS-acknowledgements.markdown */, - 4A2E0AD738D348DDA03396C623D814CD /* Pods-web3swift-macOS-acknowledgements.plist */, - 3E91F337EA3979DB5DD84C325A340270 /* Pods-web3swift-macOS-dummy.m */, - 25F72E78DF48560F5D210E57844ACDED /* Pods-web3swift-macOS-umbrella.h */, - 1C8F00AC871FE0EC2FBD9A40F62753CD /* Pods-web3swift-macOS.debug.xcconfig */, - A5D9B32B104EA0A137D78B89D4D19D40 /* Pods-web3swift-macOS.release.xcconfig */, + BD52DB52712C6BD52F9C756343011D36 /* SipHash-iOS.modulemap */, + F0F26E25773CB525159D46C5B6D1B376 /* SipHash-iOS.xcconfig */, + 1775FE4529A63B3ACF1AF8049A86B5B5 /* SipHash-iOS-dummy.m */, + 0DB8332926278F5C9345150A4FAD4C2C /* SipHash-iOS-prefix.pch */, + 0C78140B0839244D489752A02DC0913B /* SipHash-iOS-umbrella.h */, + B00A4C2F6671AA26BA20E62BA67C9C50 /* SipHash-macOS.modulemap */, + A4DE673E5AA2F431951809819265C70A /* SipHash-macOS.xcconfig */, + C25A231A9C942A2334AE3430ED146FF4 /* SipHash-macOS-dummy.m */, + 1F6E33E00A0A6BD8A217AA65F5C1D901 /* SipHash-macOS-prefix.pch */, + 70EED16C19046B0B9BE7B13BAC95A87B /* SipHash-macOS-umbrella.h */, ); - name = "Pods-web3swift-macOS"; - path = "Target Support Files/Pods-web3swift-macOS"; + name = "Support Files"; + path = "../Target Support Files/SipHash-iOS"; + sourceTree = ""; + }; + 7242BDFE4EC925876A40027F19A698B6 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 1BA893BB24AE0640C83A4E43734D905A /* Pods-web3swift-iOS */, + 215612CDDB6F3883846CBDFDDF0900D9 /* Pods-web3swift-iOS_Tests */, + DC6B114F31B3864D24CE8C7004F75AC4 /* Pods-web3swift-macOS */, + 7F847878EB176BCCB9AED41625DDC135 /* Pods-web3swift-macOS_Tests */, + ); + name = "Targets Support Files"; sourceTree = ""; }; 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - B36AB396275697EEE1A5B13BA8A38FE3 /* Podfile */, - 0F8D2E47FE03D3B91B51069F7C273AF4 /* Frameworks */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + BFEF163CB0C80F5BE6FDC6A6BD227D67 /* Frameworks */, B385790646FED40DF16835CC304DB065 /* Pods */, 3EC5D1EA5568F6BB631C6A9AD5B40F86 /* Products */, - 0016905C45F8F01C6D080425028330F0 /* Targets Support Files */, + 7242BDFE4EC925876A40027F19A698B6 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 7F847878EB176BCCB9AED41625DDC135 /* Pods-web3swift-macOS_Tests */ = { + isa = PBXGroup; + children = ( + C7E7D85D04AEF994D90632F66E660A6B /* Pods-web3swift-macOS_Tests.modulemap */, + 5E2462063FC148C85C6D00F08680239E /* Pods-web3swift-macOS_Tests-acknowledgements.markdown */, + AF2BFA66D8E08420367813AD2F6BE5D3 /* Pods-web3swift-macOS_Tests-acknowledgements.plist */, + 0B3A8A1265A6932800FDF40A5E65FEC7 /* Pods-web3swift-macOS_Tests-dummy.m */, + 4D019DB5C502C0B2F56DC85B925D7B7E /* Pods-web3swift-macOS_Tests-frameworks.sh */, + 5D207FB930AAAC6DA0CA7AAB0EBA40EE /* Pods-web3swift-macOS_Tests-resources.sh */, + 553C1445D10FA04E682FE1674D6AF9EB /* Pods-web3swift-macOS_Tests-umbrella.h */, + CFF935D0FA27DF791E8FDBB6D5D68CB2 /* Pods-web3swift-macOS_Tests.debug.xcconfig */, + 50832FC4B2337F53A6F628D514DA730A /* Pods-web3swift-macOS_Tests.release.xcconfig */, ); + name = "Pods-web3swift-macOS_Tests"; + path = "Target Support Files/Pods-web3swift-macOS_Tests"; sourceTree = ""; }; 8278DAD857B26B2BCCF14D6CB39B7481 /* EthereumABI */ = { @@ -1563,19 +1789,37 @@ D9B3D040637E19F37C0D7EB3C1A6A991 /* ABIParsing.swift */, C4F1681CFA49EA17D6A73339A9C1A44A /* ABITypeParser.swift */, 6F068DD5C61D68DFAF437EAAC56F1139 /* EthereumABI.h */, - 467AC48A0B5ED526FE4CBC40660B4813 /* Support Files */, + 3B126B16AD4D13797C53E5933F97BC7A /* Support Files */, ); name = EthereumABI; path = EthereumABI; sourceTree = ""; }; - 8B205D5F3CE3499689DA8259838002E7 /* secp256k1_swift */ = { + 847477F36C3812C18EE3A763FB21AB3F /* Support Files */ = { isa = PBXGroup; children = ( - 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */, - 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */, - 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */, - 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */, + 3F6E29D91BDBFD5F158502CC7B97A250 /* PromiseKit.modulemap */, + 151AB966E2464DDE568760C553BC5E0B /* PromiseKit.xcconfig */, + 710AC65C4B223E829ED4375071A20A4B /* PromiseKit-dummy.m */, + AE1E6845CACAD540AFF7134021F7F905 /* PromiseKit-prefix.pch */, + 3C1C69DE46F5ACC0602FAF8FB907D949 /* PromiseKit-umbrella.h */, + F2DA5C5A9F445A5325759C8C2073207E /* PromiseKit.root-CorePromise-Foundation.modulemap */, + 7019F3D58D3915C5DB778C7F37D6284D /* PromiseKit.root-CorePromise-Foundation.xcconfig */, + 9F6259B57E3A3E8491825840F9F99A14 /* PromiseKit.root-CorePromise-Foundation-dummy.m */, + EF2AD0B2B563AAB85CFA8FB51B097740 /* PromiseKit.root-CorePromise-Foundation-prefix.pch */, + A08DB7A40A2EAB27F94BB45DF634A4AC /* PromiseKit.root-CorePromise-Foundation-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/PromiseKit"; + sourceTree = ""; + }; + 8B205D5F3CE3499689DA8259838002E7 /* secp256k1_swift */ = { + isa = PBXGroup; + children = ( + 1592E519056BA4CA85F67406D0EC2ED4 /* basic-config.h */, + 6E13ACAF5A7893C3C300B8B880422662 /* ecdsa.h */, + 1C43D53E5A934E216CB1B7DD01DE877B /* ecdsa_impl.h */, + 6E3077E6B0E7210AC2CB18E0691714F0 /* eckey.h */, E05424B44F6AFD35E237815F926FEEEB /* eckey_impl.h */, 3C93F4B7E331943729BE3CFC4F439C2A /* ecmult.h */, 05D37539C41BE79893FEDECCB70FC25B /* ecmult_const.h */, @@ -1622,30 +1866,12 @@ 516F61020B364118837B9099CD918F5F /* secp256k1_ecdh.h */, B88C2E2D4B6E99B918E6E13EDA4AA4A0 /* secp256k1_recovery.h */, 003EF4269A56F0C44E64E737009329A6 /* util.h */, - 563C4EF4DEB4F8DA641EF40144826E4B /* Support Files */, + 40D2E0B107F8F6A1CEA6445C26509300 /* Support Files */, ); name = secp256k1_swift; path = secp256k1_swift; sourceTree = ""; }; - 8D7C724EEC47F84DA9BED20E20279645 /* Support Files */ = { - isa = PBXGroup; - children = ( - 3DBE2043CF545B45F21A7018D7A70CBD /* PromiseKit.modulemap */, - 3F1CF8D01D9020575F785235F3DA02E3 /* PromiseKit.xcconfig */, - 48BA6005A2D0AC9C0B7C4A47958A6F80 /* PromiseKit-dummy.m */, - 0A518C6FBE9C3B3FBF40D4CDCE3BA5A7 /* PromiseKit-prefix.pch */, - 04464806E7EED788DFE4F8D62793DD29 /* PromiseKit-umbrella.h */, - 8600E5A6A0625E96185A2CB9DE5C8AF8 /* PromiseKit.root-CorePromise-Foundation.modulemap */, - 4AA4C4E3B71B38DD9AC53FDE78CAE9EA /* PromiseKit.root-CorePromise-Foundation.xcconfig */, - 452B760316F8326FC21782A105163581 /* PromiseKit.root-CorePromise-Foundation-dummy.m */, - A66575F75BF4F824ED46DE58E80DBCF7 /* PromiseKit.root-CorePromise-Foundation-prefix.pch */, - DA0CDB938B1F875D679C20362C887E17 /* PromiseKit.root-CorePromise-Foundation-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/PromiseKit"; - sourceTree = ""; - }; 90EB5AB3714019B65122FF61FCF31803 /* Result */ = { isa = PBXGroup; children = ( @@ -1653,79 +1879,64 @@ F20EF6148A6A9322390DD71721B5343D /* NoError.swift */, 874DB4C8A2FF4D5197C42063F7939C9A /* Result.swift */, 85CA122AC057DBDA1FC65BCB8FC33684 /* ResultProtocol.swift */, - 0BFEFDA3C060A520AC31181B2B963F58 /* Support Files */, + A406C678AB6E66745DE6E57F8F8E623D /* Support Files */, ); name = Result; path = Result; sourceTree = ""; }; - 922AFC21F176C35CEE509B534B859943 /* Support Files */ = { + 97CF81B1CA0F75FF4468F7D8A0390F70 /* Support Files */ = { isa = PBXGroup; children = ( - D357F7F273D21A9292686CC024C470A2 /* EthereumAddress-iOS.modulemap */, - C0E00E27FCA499ADCF69CE2096BEF87F /* EthereumAddress-iOS.xcconfig */, - 38C29EC87775E098CCEE6CEB4ABA65AA /* EthereumAddress-iOS-dummy.m */, - AB8B8D38C22598577C2C6551CEC1D7D0 /* EthereumAddress-iOS-prefix.pch */, - 76C5F543BD9B25774CA35CF7FA0546B3 /* EthereumAddress-iOS-umbrella.h */, - 21BC35B1C593381A32229DF8C9804F62 /* EthereumAddress-macOS.modulemap */, - 82CF9E45F65C5A3FF604607C66EAC29D /* EthereumAddress-macOS.xcconfig */, - B4F5205894DF6FD73EF8CFA7609DA7D9 /* EthereumAddress-macOS-dummy.m */, - 6EABC2B68783D8B14904AB78123DF869 /* EthereumAddress-macOS-prefix.pch */, - 59AB171D72BF347C5F7A067C2AAB5384 /* EthereumAddress-macOS-umbrella.h */, + D7E339890E763B90E704D311B22ABF38 /* EthereumAddress-iOS.modulemap */, + 8B09D00EA28B49D089629C1B3671E2D4 /* EthereumAddress-iOS.xcconfig */, + DE9F29B3A81741F09C62DDDDBACA9A17 /* EthereumAddress-iOS-dummy.m */, + 58A1ADCBFB29DAD5737DCA6E9AE7CA5F /* EthereumAddress-iOS-prefix.pch */, + 502350FD0523CAD681AB6D24DFFBE55E /* EthereumAddress-iOS-umbrella.h */, + E47B1C019B050603C3C7822A13D29ADA /* EthereumAddress-macOS.modulemap */, + E288A05D71D9B3234891B4B3FC6F24D6 /* EthereumAddress-macOS.xcconfig */, + 59CA1CA71842D0F9F9DC0144EC286A7E /* EthereumAddress-macOS-dummy.m */, + B6E1DDA919C9EDFC58774D377885148C /* EthereumAddress-macOS-prefix.pch */, + B9A8CC8DB81A8576E0CDA6232DA9B65C /* EthereumAddress-macOS-umbrella.h */, ); name = "Support Files"; path = "../Target Support Files/EthereumAddress-iOS"; sourceTree = ""; }; - 9F0ACAD8B1C23047839392A42456AF61 /* Support Files */ = { + A406C678AB6E66745DE6E57F8F8E623D /* Support Files */ = { isa = PBXGroup; children = ( - 55D66ED5651595B335B313C540A13D8E /* SwiftRLP-iOS.modulemap */, - 9D6306B3BC57BAEB50815C5FBBFC8CB4 /* SwiftRLP-iOS.xcconfig */, - 73A68F048F801AD8527F07F7706E57CE /* SwiftRLP-iOS-dummy.m */, - E4D925299799CBB413016810B41EB65C /* SwiftRLP-iOS-prefix.pch */, - 1250F72B02037FC0CC2220F528B17381 /* SwiftRLP-iOS-umbrella.h */, - 0E7AC8F7B30BB74533D51C9515BE9258 /* SwiftRLP-macOS.modulemap */, - EF8327584F2BDEC27C9163F51CDEFB9E /* SwiftRLP-macOS.xcconfig */, - ED9E675BBBC75B01E6961483170B6E7F /* SwiftRLP-macOS-dummy.m */, - B9D41263F9CA47F4367384A4B93B0DDA /* SwiftRLP-macOS-prefix.pch */, - 3E1A2664214C7FF4C93A67058FDACDE9 /* SwiftRLP-macOS-umbrella.h */, + A4A8CBB024D845255D126D06D107F563 /* Result-iOS.modulemap */, + 4B27BF530A63ACAF9407720A162114CA /* Result-iOS.xcconfig */, + 4A62A996E150BEC15618C743082DB6A6 /* Result-iOS-dummy.m */, + AA7356C2674F39C3CFCD800D07CE9C91 /* Result-iOS-prefix.pch */, + 604F9F7AC0C04DACFC628833A3B4ED5D /* Result-iOS-umbrella.h */, + 2D7A992083CBD4D193A725E017F44EB9 /* Result-macOS.modulemap */, + AFA11E6CA87C50B0BDC7B160EBC0C434 /* Result-macOS.xcconfig */, + 181506C85788407EF50AD45149AC2E91 /* Result-macOS-dummy.m */, + 63AB8B307E0ECB2EE3B92B2DF18D8F04 /* Result-macOS-prefix.pch */, + 63E8E6C2713484D5B4AD0653183EE4F0 /* Result-macOS-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/SwiftRLP-iOS"; - sourceTree = ""; - }; - AAB417525B4AA28CC55EECA7CFDAB251 /* Pods-web3swift-iOS */ = { - isa = PBXGroup; - children = ( - 79E925BEAA0533C58B6D9871B886DD8A /* Pods-web3swift-iOS.modulemap */, - F45D1FF9B0F3BEACB34D069C6F3561F8 /* Pods-web3swift-iOS-acknowledgements.markdown */, - 95C397E16B314F921F7784F00C8F183B /* Pods-web3swift-iOS-acknowledgements.plist */, - D8F688145BCFE1FB8B76299CC261A05E /* Pods-web3swift-iOS-dummy.m */, - 7E8C19543EF3AA4D9801DBE55E22E211 /* Pods-web3swift-iOS-umbrella.h */, - 042CC2D185140E7D725D22562A3E307F /* Pods-web3swift-iOS.debug.xcconfig */, - 673FFC4D2B959AB8AEC35D646A85CDCD /* Pods-web3swift-iOS.release.xcconfig */, - ); - name = "Pods-web3swift-iOS"; - path = "Target Support Files/Pods-web3swift-iOS"; + path = "../Target Support Files/Result-iOS"; sourceTree = ""; }; - AEAD5D9B473E4A71E8CFAE0F15721DB9 /* Support Files */ = { + AD340650BC9F9A044FEADA2ED3B9458E /* Support Files */ = { isa = PBXGroup; children = ( - 398E3F38AA4E4F1F69F6BFA75A49E0C1 /* SipHash-iOS.modulemap */, - 92CB38F782D33EF495F861851E047FA9 /* SipHash-iOS.xcconfig */, - 20C577019086BC2EE2D24C2E5BF910AF /* SipHash-iOS-dummy.m */, - 01B9E8C5A331C30CF0ACEF7187948418 /* SipHash-iOS-prefix.pch */, - 48FCAFD34D22FB4A18FEF12007E2FAB3 /* SipHash-iOS-umbrella.h */, - 9B0A389595178AEDBFBB0B44514CEBD3 /* SipHash-macOS.modulemap */, - 5992F89681D6639D6E83FBDCE269A688 /* SipHash-macOS.xcconfig */, - BF0D275DC3AF207D0A444A28CB773AA5 /* SipHash-macOS-dummy.m */, - B581065FDD5347ECD262D51E19274EB6 /* SipHash-macOS-prefix.pch */, - A44AEA30AD48DB0294CA791DF2D0996B /* SipHash-macOS-umbrella.h */, + B5A9A265E46161E8B4B8ADA8683083E0 /* CryptoSwift-iOS.modulemap */, + 8D1457D56859B3489B05547CE8ED69C6 /* CryptoSwift-iOS.xcconfig */, + B7DD102BC02F706460BD77A53962C987 /* CryptoSwift-iOS-dummy.m */, + 0FB89A928D980618BA68DFAAA708ABE3 /* CryptoSwift-iOS-prefix.pch */, + C8B3233C12879C6534A856047197CECC /* CryptoSwift-iOS-umbrella.h */, + 5F0C3C498292778DE2DA40E00F391475 /* CryptoSwift-macOS.modulemap */, + A8E46FB728C72889788B6CF61184C08D /* CryptoSwift-macOS.xcconfig */, + 7E0C9A26C84B6D3262E7774E3CFFEA6D /* CryptoSwift-macOS-dummy.m */, + BB85F1319C99D294237399591C9F0FC2 /* CryptoSwift-macOS-prefix.pch */, + 7C83AC33C26F743EA9D7563722721066 /* CryptoSwift-macOS-umbrella.h */, ); name = "Support Files"; - path = "../Target Support Files/SipHash-iOS"; + path = "../Target Support Files/CryptoSwift-iOS"; sourceTree = ""; }; B028E45757F11470855CBBF5A23509C8 /* CorePromise */ = { @@ -1778,6 +1989,15 @@ name = Pods; sourceTree = ""; }; + BFEF163CB0C80F5BE6FDC6A6BD227D67 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2C7F6DCC691B3F7BE3BAD651EA1797D4 /* iOS */, + 5404095ADA34F55D5FBAC826D65B1DA0 /* OS X */, + ); + name = Frameworks; + sourceTree = ""; + }; C584BCF64FE7C44F77E0DC8BBCA5046B /* Foundation */ = { isa = PBXGroup; children = ( @@ -1811,40 +2031,20 @@ name = UIKit; sourceTree = ""; }; - D7921E3D8BD461440A67CF8BAEB281B9 /* Support Files */ = { - isa = PBXGroup; - children = ( - 6351DFCD3C033CA154E8C9D3D8D38EFE /* CryptoSwift-iOS.modulemap */, - 89525730C7E22C66FB7ADAB11E2073A0 /* CryptoSwift-iOS.xcconfig */, - 6907C77858F6612BF4232E34D8D30C3F /* CryptoSwift-iOS-dummy.m */, - 1341B693AC58D9D488B5E6F8B568097B /* CryptoSwift-iOS-prefix.pch */, - 303781526174E2DFA273950F9C1AEDBC /* CryptoSwift-iOS-umbrella.h */, - 7579B6CD74CBC80D0509F34F78A83B1D /* CryptoSwift-macOS.modulemap */, - 7C70A16BA860E5B4A9A806F25EE3F472 /* CryptoSwift-macOS.xcconfig */, - 3B9103BCEE6F57F21DC2CDA536BA8D0F /* CryptoSwift-macOS-dummy.m */, - 64748EC305E00E02356EB0F312458ADE /* CryptoSwift-macOS-prefix.pch */, - D8EC3860FD1A1DA54C00A1498D1F1D9E /* CryptoSwift-macOS-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/CryptoSwift-iOS"; - sourceTree = ""; - }; - E36023E8575313B31CF8B6B497F4FFBA /* Support Files */ = { + DC6B114F31B3864D24CE8C7004F75AC4 /* Pods-web3swift-macOS */ = { isa = PBXGroup; children = ( - 91BAFA9B3EE9063DDE5057E56DC627DC /* BigInt-iOS.modulemap */, - 2AD338DD23B43013308A65379BAEC16C /* BigInt-iOS.xcconfig */, - 7E74F31CDCAA43E3665CAB99746882DD /* BigInt-iOS-dummy.m */, - 972E60F406627ED35849A8F617B3ECBD /* BigInt-iOS-prefix.pch */, - 6A105001ACFD1F5004F2225CB06D4CCA /* BigInt-iOS-umbrella.h */, - EABECB99AFE1BF549F3CEE90FBD45E98 /* BigInt-macOS.modulemap */, - 08A99F6D5C3E452229D15E3E8C1660F3 /* BigInt-macOS.xcconfig */, - CF8798C22F31053E2D6EAF35C011146D /* BigInt-macOS-dummy.m */, - 04B39BEAD1520A1D6783A85DE2C51340 /* BigInt-macOS-prefix.pch */, - 6F0A15233EFEAA840C94D98DFD9C1F14 /* BigInt-macOS-umbrella.h */, + 3D37A86FCD5D0735EBF9DA4224B06C53 /* Pods-web3swift-macOS.modulemap */, + 3C515870A748CB470E9FBA7186297FFC /* Pods-web3swift-macOS-acknowledgements.markdown */, + E6251CD3609D0F5F96F459E0B9699CC1 /* Pods-web3swift-macOS-acknowledgements.plist */, + CCD178AF0C0283D14572A07109AABF34 /* Pods-web3swift-macOS-dummy.m */, + 952751793FE823F69C417971D443D0DA /* Pods-web3swift-macOS-resources.sh */, + 23BB48B62BD11AE739C695D5E07DF23B /* Pods-web3swift-macOS-umbrella.h */, + 3C18FE09DB747D4F64CDC4EBF07A6AF0 /* Pods-web3swift-macOS.debug.xcconfig */, + 2C06CEB32F04CBF303CC2562A16F7241 /* Pods-web3swift-macOS.release.xcconfig */, ); - name = "Support Files"; - path = "../Target Support Files/BigInt-iOS"; + name = "Pods-web3swift-macOS"; + path = "Target Support Files/Pods-web3swift-macOS"; sourceTree = ""; }; E615489C131A7CB2245346A21FB09B1A /* CryptoSwift */ = { @@ -1924,28 +2124,48 @@ B5A15DC755B12D8CCABB5B073B63856F /* Utils.swift */, F98F9737D714C11C13F01403ECACC354 /* Utils+Foundation.swift */, D6E02047F0F6A6150C26B56EEF63F55B /* ZeroPadding.swift */, - D7921E3D8BD461440A67CF8BAEB281B9 /* Support Files */, + AD340650BC9F9A044FEADA2ED3B9458E /* Support Files */, ); name = CryptoSwift; path = CryptoSwift; sourceTree = ""; }; + E8C15CE92E9A555E542BC27EB899DE21 /* Support Files */ = { + isa = PBXGroup; + children = ( + 7A198ACD2DAA718861BD16E72748D147 /* scrypt-iOS.modulemap */, + EC18156DBCA6BE2E1B8992FB811060C5 /* scrypt-iOS.xcconfig */, + 88B89257C4F705CF119D8638E268E65E /* scrypt-iOS-dummy.m */, + F6DE552AC7B11C5490C2908E09505064 /* scrypt-iOS-prefix.pch */, + 158416E3558983FE0049CF2D90BA56BD /* scrypt-iOS-umbrella.h */, + 3C8069D7270ED24EB137F43DEF548AA4 /* scrypt-macOS.modulemap */, + B6C5B58BCA3B0F50FAC855B070978522 /* scrypt-macOS.xcconfig */, + 417827171F7329CB9A60952C4724D7CA /* scrypt-macOS-dummy.m */, + 25A15390BB4A5738B4061292E3D72D43 /* scrypt-macOS-prefix.pch */, + BF4AECB94DC3BA1862359A2958924A32 /* scrypt-macOS-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/scrypt-iOS"; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 2F08BE2476997220D34CF9A4B9F6835B /* Headers */ = { + 0328AB38B67AD4740A3BC2990F360E9F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 54CC4EB0BFBA6950C9FF3ACBAF3E871D /* SwiftRLP-macOS-umbrella.h in Headers */, - CA9B0594A947364945D728CD48CE2675 /* SwiftRLP.h in Headers */, + 6E683FCF9A5D1975E18E4A3E8FDB699C /* EthereumABI-iOS-umbrella.h in Headers */, + 66CCCA3984367EE8FB4CEB28695FFDE2 /* EthereumABI.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2F394AD2ED0A538D456609456DB15F4B /* Headers */ = { + 2F08BE2476997220D34CF9A4B9F6835B /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 85C41CDA9D68E68C47C57B1A5D5D4FE7 /* SwiftRLP-macOS-umbrella.h in Headers */, + CA9B0594A947364945D728CD48CE2675 /* SwiftRLP.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1957,20 +2177,12 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3A62C11C69001C7BF554031AE5C3194C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F9A83224C63AF5F18AED311461D71668 /* BigInt-iOS-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3CCEBEDFD58277AE688D11C78A90CD24 /* Headers */ = { + 35FB5F31383DF470E7D3CCBEE654D559 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FC4AD96F8C8D695E021F598BEAB3A13D /* EthereumAddress-macOS-umbrella.h in Headers */, - 2C573766EEF17A6CCBC46524208BCA4D /* EthereumAddress.h in Headers */, + FE1AE77DFA62EC3B659F1A98D2367EC7 /* EthereumAddress-iOS-umbrella.h in Headers */, + F2B6BA61DB14E235D4EEFFF61BE42C74 /* EthereumAddress.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1978,7 +2190,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D4FBEF46E2616F942B65FF779B374513 /* BigInt-macOS-umbrella.h in Headers */, + FBA0C0B9F810F412F1B19B633DF77D78 /* BigInt-macOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1993,112 +2205,95 @@ AA77E4FCA1931096078FD288C72D7690 /* NSURLSession+AnyPromise.h in Headers */, FB3B4D902E0078517C1A8D1A64E0D405 /* PMKFoundation.h in Headers */, 25B3A19A863EF1BC095B228C6CC55239 /* PromiseKit.h in Headers */, - 28228E86E8A57346F45744E805645CC7 /* PromiseKit.root-CorePromise-Foundation-umbrella.h in Headers */, + D5C3C8E572CE88A1170DBA61CD43828B /* PromiseKit.root-CorePromise-Foundation-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 583E829B095CF5D84CEA55FCC985C749 /* Headers */ = { + 476C396482F6A53E49F00796C306CD01 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 13F006A331F4F7D1E7A9C31C925C8434 /* EthereumABI-iOS-umbrella.h in Headers */, - 60D4DE7DC97871E36FBF75DC91E7A248 /* EthereumABI.h in Headers */, + 71916967CD49117BC05146139542AFC6 /* Pods-web3swift-macOS_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5B106CA9B70073DB5FBE37B959133AF3 /* Headers */ = { + 5D7F5655868740B643AC541595433331 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9B45BA7080C2248A03F5AF03837C74C8 /* EthereumAddress-iOS-umbrella.h in Headers */, - A1B3C6A88101C2163062485C2B45F1E0 /* EthereumAddress.h in Headers */, + 286EB55739F1322FA8C0185F426F434F /* AnyPromise.h in Headers */, + F6752D4792009A24408BE5E316FDDDE5 /* fwd.h in Headers */, + A96DB5D1ABF4D84D7EE9D5D3866F4421 /* NSNotificationCenter+AnyPromise.h in Headers */, + 421C785128A33B16FC5F01BA9E921200 /* NSTask+AnyPromise.h in Headers */, + E73B7A279183289119158D0098CE5593 /* NSURLSession+AnyPromise.h in Headers */, + F720A1684F0AACCAFF9859F9C8078049 /* PMKFoundation.h in Headers */, + 5F0E15653C371061DC89F86BB79F7A04 /* PMKUIKit.h in Headers */, + 5E7AAF3819A10F209BE62046D1AFA4FA /* PromiseKit-umbrella.h in Headers */, + C641D8B5081A582E0AFF1078B59C6DF1 /* PromiseKit.h in Headers */, + 6F2B725624E6A7B550C9167BB1D8A03B /* UIView+AnyPromise.h in Headers */, + 6E7A93100A37D16B05EE524FF2F95617 /* UIViewController+AnyPromise.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 672DA6ADECF9F10F1DB3A0E8F143BDB6 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - FEBCBEDE2597673C7D802896774CDCBD /* Result-iOS-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6A22A95F9A809B370E0AAE627021502C /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D7346C912787D714E05528CDDB4A75F8 /* SwiftRLP-iOS-umbrella.h in Headers */, - 0ADC230F620426946507547899D899B6 /* SwiftRLP.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 735E4C913DD0A46A1F72F4F1C62052E9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - ECAAA1869ED698C502004DE2B539728F /* basic-config.h in Headers */, - 0EF9D11A3631D7F8BE44552285F4A63F /* ecdsa.h in Headers */, - 0F4BC161113C9EBF41626D66606EB70E /* ecdsa_impl.h in Headers */, - 8E6ADE71160E4C617ABA4C32C87D16F3 /* eckey.h in Headers */, - 4B79D71DD2FC55BCBB35E1F397441057 /* eckey_impl.h in Headers */, - 22D545D72C019120381A23F2008D216E /* ecmult.h in Headers */, - 8DC20C4A7C1E28D752BFEBF35B5D9759 /* ecmult_const.h in Headers */, - 4882343A2039DD16BE3AE92E332AD44C /* ecmult_const_impl.h in Headers */, - 56959B7098D09A061F7F7721E757E1E2 /* ecmult_gen.h in Headers */, - 38261BBD61EB4CE9C0D8D02EFD788CC4 /* ecmult_gen_impl.h in Headers */, - 6A484692AA6F59EEA3EC6137FB6AFFCF /* ecmult_impl.h in Headers */, - 2AB0EAF55461D364004CD6F3DAF5585B /* field.h in Headers */, - 030B22879409F834B4FD21C5F8DFDDCD /* field_10x26.h in Headers */, - 9F89998FC4A9BDB1EB5C0FBC61596D64 /* field_10x26_impl.h in Headers */, - F8977F910FD88CA3560E0435ACA41270 /* field_5x52.h in Headers */, - 92A31273837467750DA0525B8243B737 /* field_5x52_asm_impl.h in Headers */, - E7DEA0B8E0F9EAF68841EDC4B8AC3396 /* field_5x52_impl.h in Headers */, - 0B987FF04FAAC3E2C96DBE0C52BDBD62 /* field_5x52_int128_impl.h in Headers */, - 848F627E8EC89D8060C4A7DC5C0B8CE2 /* field_impl.h in Headers */, - 83270E867F5862F72F0F925937F1668A /* group.h in Headers */, - D528114C056635E14284458D9163DE3A /* group_impl.h in Headers */, - 9ACFA841BF6C5686EDDB92A29B36FF7F /* hash.h in Headers */, - F6DB885F4AA84A99F9B5778AA1E2D3DA /* hash_impl.h in Headers */, - 3873EA28EA1C34A735654F3652FE1237 /* lax_der_parsing.h in Headers */, - 591B707CCE5C69B79289D27F93215603 /* lax_der_privatekey_parsing.h in Headers */, - 1ACFA20B8643D974578D0B37E658A0A9 /* libsecp256k1-config.h in Headers */, - B3978E88BD6400B77CF85D9788D4F094 /* main_impl.h in Headers */, - 9FE815CCD081FD51B3853C75F363A89B /* main_impl.h in Headers */, - 21EB006D3FD9C27B88742E512E7B227D /* num.h in Headers */, - 4D65A0EA2474E1ACE27EB99A8C868A09 /* num_gmp.h in Headers */, - 5A176FB29F73DA5B94E9257DE93AD928 /* num_gmp_impl.h in Headers */, - 553AD1CA02592C774AFF2659115B4DB1 /* num_impl.h in Headers */, - 3C1A5CA548BBD6346EA3C326AF0E1044 /* scalar.h in Headers */, - A22F18E450653F384132E5C621BE7B73 /* scalar_4x64.h in Headers */, - F6D7738BDDDF311DBDB1B103A5A1F6E6 /* scalar_4x64_impl.h in Headers */, - 213DE58F64F93C8508CCDEBE7CBD97D4 /* scalar_8x32.h in Headers */, - 4908E7728A0935FCB6EF210407119794 /* scalar_8x32_impl.h in Headers */, - E1DA6C9BC2295C7CF04AD192B8FE26FF /* scalar_impl.h in Headers */, - E316F68C4FD62BB0A294D29DB03DCB5D /* scalar_low.h in Headers */, - FB5385DF7643AC5570E694BBA6406E0B /* scalar_low_impl.h in Headers */, - 970EE041FB9D079419CED46228DC3969 /* scratch.h in Headers */, - 69527E264B7CB8895C3299409B518A2F /* scratch_impl.h in Headers */, - 47C119777E312AE6602A93BA0027D876 /* secp256k1.h in Headers */, - 31280DB99D63393FE7EBF701C18A7151 /* secp256k1_ecdh.h in Headers */, - A780CA204C48EC1DEEA8B2C0F59FA6AB /* secp256k1_recovery.h in Headers */, - 7866E902E917458E48CDFA6D0513288C /* secp256k1_swift-iOS-umbrella.h in Headers */, - DFB15CA333EE077FC25900A712E89DB7 /* util.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7477F92785CFE4A257605FF325BEDCA8 /* Headers */ = { + 88D55B53E0998EAFAEDC2982B9331828 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - DF3C881F6AA58663EA27A37DDC93CBD1 /* SipHash-iOS-umbrella.h in Headers */, + D42A1D2FC1FD4BC6485683430F314F8D /* Pods-web3swift-iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 88D55B53E0998EAFAEDC2982B9331828 /* Headers */ = { + 8D76CBEC601E458B1D4D1553CEC48E98 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D42A1D2FC1FD4BC6485683430F314F8D /* Pods-web3swift-iOS-umbrella.h in Headers */, + 92F388ADEAE255E301DC4F0EAAB0B582 /* basic-config.h in Headers */, + 83C2F99B49019E5173C9C1968ECBC380 /* ecdsa.h in Headers */, + 01B4E9254DBEEDE181F55B19D9015863 /* ecdsa_impl.h in Headers */, + 78E048DA30054A04556F68A6DD229F3F /* eckey.h in Headers */, + 079C35EF04A06B8593CF55F7E523BF25 /* eckey_impl.h in Headers */, + 8D96A821185919FD9DD4FB0F05DD3C2B /* ecmult.h in Headers */, + 614EE39F1064EEC8A3E0AB0833A0FE93 /* ecmult_const.h in Headers */, + A6E876E870631B45889C95B61C4400FC /* ecmult_const_impl.h in Headers */, + 9E50B00B932945E8BC1F96E1B4B4E3D6 /* ecmult_gen.h in Headers */, + FDCFBEFC7824A92FB550C46D4F6B0141 /* ecmult_gen_impl.h in Headers */, + FDE6F49BA9C3731D172E46EA428D8F51 /* ecmult_impl.h in Headers */, + 022840F67B21B7E7901D7C85F27A911E /* field.h in Headers */, + DA1BCCCA7C14C2EBC82C5FB68B56D506 /* field_10x26.h in Headers */, + F0DFE753734F032747272B65DBEEF3A8 /* field_10x26_impl.h in Headers */, + DF094246BD7D1C3F0B90908FE27CE355 /* field_5x52.h in Headers */, + 15AB2F50D1D00D9B27D065D2475F213A /* field_5x52_asm_impl.h in Headers */, + 369B8E9C4EC32889C016598A1BBE5B55 /* field_5x52_impl.h in Headers */, + 76EFD8B2D6078B3D9FAA9A95D46B4BD2 /* field_5x52_int128_impl.h in Headers */, + FCB573EB81729BFA19963E69E2A91CA4 /* field_impl.h in Headers */, + 55D5E91986E8085FCDCE3F99A8DD585D /* group.h in Headers */, + AF90B1C4429B63D9E9E2D7BA71C63B80 /* group_impl.h in Headers */, + B9F6546BE8EA558E31A1E43AF37EAB83 /* hash.h in Headers */, + E8E53A24F88E4B1F7320170A34F532C7 /* hash_impl.h in Headers */, + 9B305978875B77C95D3A6E509B152987 /* lax_der_parsing.h in Headers */, + F2BA57EDD0CBD8A486E937BF6075005E /* lax_der_privatekey_parsing.h in Headers */, + C14B99FFC98C0A425C680FE136F1D1D8 /* libsecp256k1-config.h in Headers */, + FFCA65A5E63D601537B9642D26E4B00E /* main_impl.h in Headers */, + A859C5E81008A8497D53AEC7EF050130 /* main_impl.h in Headers */, + E1BE5D29622CD818FC3CE0D0E9D944E3 /* num.h in Headers */, + 8E4C7E79C799B9811F801FCD446CF240 /* num_gmp.h in Headers */, + 0ED119A1C97E44906885D6A763A8C85E /* num_gmp_impl.h in Headers */, + A2BC050D8F27D13134F188077278B097 /* num_impl.h in Headers */, + F9DD21DBA56A782D3D51A7414954A9E2 /* scalar.h in Headers */, + 2231925D7102929E7A1721C49E67687C /* scalar_4x64.h in Headers */, + 5F0A96C798B3599339C7A4BF7A6CCA9D /* scalar_4x64_impl.h in Headers */, + A3D4F1E4E13F094A7DD7D6F9ED14A4CB /* scalar_8x32.h in Headers */, + A7100E575D319BCBE3DACA4BDCC1AE70 /* scalar_8x32_impl.h in Headers */, + 90B32C9817DD75A68A8C8DB41716AD63 /* scalar_impl.h in Headers */, + 3A17B1ABF2315BA8C3C2BDC75D0F24FE /* scalar_low.h in Headers */, + 2A597DB9821E29841E3086D393E6D4E6 /* scalar_low_impl.h in Headers */, + D0277DDDF21D96ACB1EA2C35C2455BDF /* scratch.h in Headers */, + B955645F6EE6DB2D8D4F86F2465D6F32 /* scratch_impl.h in Headers */, + B459770F6D8C06F6407DD9F863789E63 /* secp256k1.h in Headers */, + F283953424AF900B7DDCD8D69382CC31 /* secp256k1_ecdh.h in Headers */, + 3370EFA2B6998962C5C99681EDD51645 /* secp256k1_recovery.h in Headers */, + 637727ABF2E1A48584E85D2F871A8F9C /* secp256k1_swift-iOS-umbrella.h in Headers */, + A8528F036286DA3FD51B7C8DE2B7CDB7 /* util.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2151,24 +2346,33 @@ FC76FBD9E6420F2FD85F7F5EC55B9A31 /* secp256k1.h in Headers */, 2D6C2BF004933839288FE0AD05169574 /* secp256k1_ecdh.h in Headers */, 8645FDCFA460D7F9AC3436355339C3B0 /* secp256k1_recovery.h in Headers */, - 4062448019AF90DB11E3860898E8EAEB /* secp256k1_swift-macOS-umbrella.h in Headers */, + 725E5A158E028AD7FF329E1AF6A963F7 /* secp256k1_swift-macOS-umbrella.h in Headers */, 7E19F8D4DDBF7633E4FB267CBD766735 /* util.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - A84BA0453988997BEFD8DEA9765B62E6 /* Headers */ = { + 9902B00ED52C58D0F02A4DD8E167DFDE /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 064BFC26007D3B4F4B963361B52F3099 /* Pods-web3swift-iOS_Tests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A184A179AC87F571D98F6EE26F3E4706 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 64310DB95A0B71D32365CB6D88944A03 /* SipHash-iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - AFEA92F9B8E4F23FDE84709BDC1E70DC /* Headers */ = { + ACF1F772AD57B47D9AA1A2B3E9322B93 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - CE6059517A03418C389CF50D78287474 /* EthereumABI-macOS-umbrella.h in Headers */, - 3D104A9C54922EADF90311DDFF2CB44A /* EthereumABI.h in Headers */, + ADEB482DA254AAFBC42C7834493022B9 /* EthereumABI-macOS-umbrella.h in Headers */, + 34A2440C77BAABCB7427D34497EC3462 /* EthereumABI.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2177,26 +2381,35 @@ buildActionMask = 2147483647; files = ( 1974CBE5CBA7E90AF2951744F9F700DA /* Cimpl.h in Headers */, - DCA7BBA544AC372B023678542AB72A6D /* scrypt-macOS-umbrella.h in Headers */, + 04D7D60982BB2DD9B746F35E4494B314 /* scrypt-macOS-umbrella.h in Headers */, 2C47366FB3A3D0F2A380489DC0AB4EC6 /* scrypt.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - BEB0EDBDBADA7FA289A4B00AA8E7EE0C /* Headers */ = { + BAADD222EA239F94788CFBA2FD8C773E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2DF2807737F6DD5182F8C60570AF907C /* EthereumAddress-macOS-umbrella.h in Headers */, + 2893DBF89BC6DF6F5B4DEA3EB812DE67 /* EthereumAddress.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + BCDEDCFF59EB3574C06DDFCD869BC43E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 85C37C6DC00EC3953EF34A21CA508324 /* Cimpl.h in Headers */, + 41EC5D771D9D70624241A4FCA1135FC9 /* scrypt-iOS-umbrella.h in Headers */, + 996E0EB81F4314EEEE429BAA35B7049C /* scrypt.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C44BEB25FB36BAE60F55F427B42F1A3F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 564FD746E26C5BFC311765163F88EF1E /* AnyPromise.h in Headers */, - 103C1056FCEF16B87FAC9DC37BADA0AF /* fwd.h in Headers */, - BE1CE42FE75F14BC5B71AED3DC543BCF /* NSNotificationCenter+AnyPromise.h in Headers */, - 99FB3C1EC398E469062856C9355D98D7 /* NSTask+AnyPromise.h in Headers */, - 48FD7843C2FD1E7F947576CB4F364A22 /* NSURLSession+AnyPromise.h in Headers */, - CD6EC5B134FE5E926C6F6BC0BCAA6826 /* PMKFoundation.h in Headers */, - 930121B3B6F0689685FCAB817B2A2588 /* PMKUIKit.h in Headers */, - 71567D015EC37FC03AE550A23ED89908 /* PromiseKit-umbrella.h in Headers */, - A153DCFCF463D9DE2D043665961D775B /* PromiseKit.h in Headers */, - A2677F84AB8234C395BD53A67AF18EF3 /* UIView+AnyPromise.h in Headers */, - 0FA9B674BE83227DB456D1E8CDBD426A /* UIViewController+AnyPromise.h in Headers */, + A3042885B2B198B822EF2B2B14471FB1 /* Result-iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2204,7 +2417,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - EEDA1D167622551D8F61394C9E16FDC5 /* Result-macOS-umbrella.h in Headers */, + 2BBD6269E8521A88E3F711C622E83030 /* Result-macOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2212,15 +2425,24 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 563C641A5D7264103E44BCDCC6C6C887 /* CryptoSwift-macOS-umbrella.h in Headers */, + 03C77F570C319D6448CC9FC45B37AB0F /* CryptoSwift-macOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D9438E55E725BF04D83CC7EC3D4AF915 /* Headers */ = { + D8DF9756DF1533D95014EC82C839CA49 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 5145AAE99352DBF420419223083C6C25 /* CryptoSwift-iOS-umbrella.h in Headers */, + 514CB91178D7A5A584BF7ED0E99C5783 /* CryptoSwift-iOS-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E78C7B727386852E17A9BCE86856752F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 95E38A1D84F03F71A0A9438FEDC68B4E /* SwiftRLP-iOS-umbrella.h in Headers */, + 49318262D401006947F1248E1E119E14 /* SwiftRLP.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2228,17 +2450,15 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BA33E96D5FF50CFFA5727208AC91DF2B /* SipHash-macOS-umbrella.h in Headers */, + 4B7175E173407B71508A864A033EC107 /* SipHash-macOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - F861629ACD553268DF434F0F56959DF5 /* Headers */ = { + F29EC8E739F9852F086EF5BCFF543A3C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9DF5F943F4396F48FA8C2562B7E90323 /* Cimpl.h in Headers */, - F78A144D256C3A6F8F6CCB64E35E869F /* scrypt-iOS-umbrella.h in Headers */, - E70AA4690673CA6F6D246FD4F786AE99 /* scrypt.h in Headers */, + EF62E2EFC77C073FE4E28108723ACF4B /* BigInt-iOS-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2278,7 +2498,7 @@ buildPhases = ( 41A5FC68414B08862DA3AC70C6F990E1 /* Headers */, 6C32DF8E3D984792A311C4A5FD4645C7 /* Sources */, - 23806D0BC0F52E8AC5EE2B81034FD7D3 /* Frameworks */, + 51EBA92B0E39FC245B79672267EB6685 /* Frameworks */, 23E99947867445CF8C69CEFFAFFC0227 /* Copy generated compatibility header */, ); buildRules = ( @@ -2294,7 +2514,7 @@ isa = PBXNativeTarget; buildConfigurationList = E5D6FA6799A44BF6B2EA944785695731 /* Build configuration list for PBXNativeTarget "SwiftRLP-iOS" */; buildPhases = ( - 6A22A95F9A809B370E0AAE627021502C /* Headers */, + E78C7B727386852E17A9BCE86856752F /* Headers */, 9CB22439A4403B91380A6D0FF75767DD /* Sources */, 1600C6BC8C1AD78A95A84E5114873FBD /* Frameworks */, 43735E5C22EB2EABE184E24809108452 /* Copy generated compatibility header */, @@ -2303,54 +2523,58 @@ ); dependencies = ( 91A8EB95CC5E24DE78FF51AF4F9F9591 /* PBXTargetDependency */, + A3B599EED5A76E04152DEC3439421CFA /* PBXTargetDependency */, ); name = "SwiftRLP-iOS"; productName = "SwiftRLP-iOS"; productReference = 55D3724AA7B8C2CF221E72306FBDCBB5 /* libSwiftRLP-iOS.a */; productType = "com.apple.product-type.library.static"; }; - 1084E340C76D167B42F96381D5AC59FB /* EthereumAddress-macOS */ = { + 16689698E943DBC08E5169468314C018 /* Result-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 0D0EE0E6A1FF9BACF87641ECD817E450 /* Build configuration list for PBXNativeTarget "EthereumAddress-macOS" */; + buildConfigurationList = 53B1B04B77AC43178C9F3E8EB7B13F0A /* Build configuration list for PBXNativeTarget "Result-iOS" */; buildPhases = ( - 3CCEBEDFD58277AE688D11C78A90CD24 /* Headers */, - D3545085D966F9E71031F5551A836F21 /* Sources */, - 224FCBB2C53DEF01AF13F9CFC741739D /* Frameworks */, - 506F24A206D803133DAA923324224506 /* Copy generated compatibility header */, + C44BEB25FB36BAE60F55F427B42F1A3F /* Headers */, + F202AF892C75A508DD88D70F474FBA77 /* Sources */, + 08725796DB76F7D6AE648E2FE6C6F219 /* Frameworks */, + 3D42772EFBD89263E293714128E4BB20 /* Copy generated compatibility header */, ); buildRules = ( ); dependencies = ( - C0C1466C80B5B9098C4ADE3D8D0FF848 /* PBXTargetDependency */, ); - name = "EthereumAddress-macOS"; - productName = "EthereumAddress-macOS"; - productReference = 4813C1A0F259481060973E85D757C6F8 /* libEthereumAddress-macOS.a */; + name = "Result-iOS"; + productName = "Result-iOS"; + productReference = 0875934C7BD4393C0A91DFA3CF1FBBED /* libResult-iOS.a */; productType = "com.apple.product-type.library.static"; }; - 16689698E943DBC08E5169468314C018 /* Result-iOS */ = { + 27805A6608FECCB809074EEC2F0F69FA /* EthereumABI-macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 53B1B04B77AC43178C9F3E8EB7B13F0A /* Build configuration list for PBXNativeTarget "Result-iOS" */; + buildConfigurationList = 2528C5FE0545EDFF7366EE3D336B2926 /* Build configuration list for PBXNativeTarget "EthereumABI-macOS" */; buildPhases = ( - 672DA6ADECF9F10F1DB3A0E8F143BDB6 /* Headers */, - F202AF892C75A508DD88D70F474FBA77 /* Sources */, - 08725796DB76F7D6AE648E2FE6C6F219 /* Frameworks */, - 3D42772EFBD89263E293714128E4BB20 /* Copy generated compatibility header */, + ACF1F772AD57B47D9AA1A2B3E9322B93 /* Headers */, + 56F527CDDC9D100CCAA36D913406F1E0 /* Sources */, + AA5AD738D86FEC4EA3CC0FE9FAF12A53 /* Frameworks */, + 21BE8B1DBA251A6DC73CAB9BB86023E5 /* Copy generated compatibility header */, ); buildRules = ( ); dependencies = ( + 699B964D61EC862FC49E9C97A6843721 /* PBXTargetDependency */, + 4B7898A16023EAE683DC47C9E0949479 /* PBXTargetDependency */, + FF0D2E4FC28CD4020B35778FEB003B59 /* PBXTargetDependency */, + 15D47A3726CDC006F194D3B5F292DB47 /* PBXTargetDependency */, ); - name = "Result-iOS"; - productName = "Result-iOS"; - productReference = 0875934C7BD4393C0A91DFA3CF1FBBED /* libResult-iOS.a */; + name = "EthereumABI-macOS"; + productName = "EthereumABI-macOS"; + productReference = 61858AD8F2BC3FA5B6CE10752824FA45 /* libEthereumABI-macOS.a */; productType = "com.apple.product-type.library.static"; }; 39C6DF22D4F83A78CB7F52D86381D937 /* secp256k1_swift-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = A17FF6AB1386D63A1421DD6C0C2217F4 /* Build configuration list for PBXNativeTarget "secp256k1_swift-iOS" */; buildPhases = ( - 735E4C913DD0A46A1F72F4F1C62052E9 /* Headers */, + 8D76CBEC601E458B1D4D1553CEC48E98 /* Headers */, B849DE3B3663A6CBF97D754340337E57 /* Sources */, 872D6A3DAA3AC36B6C52474F6BF4CA6D /* Frameworks */, 8B19A86C041EB3572BC6954373DA0F4C /* Copy generated compatibility header */, @@ -2368,7 +2592,7 @@ isa = PBXNativeTarget; buildConfigurationList = F8A195F0CD637B21B4FABEA84B502663 /* Build configuration list for PBXNativeTarget "SipHash-iOS" */; buildPhases = ( - 7477F92785CFE4A257605FF325BEDCA8 /* Headers */, + A184A179AC87F571D98F6EE26F3E4706 /* Headers */, 6950A9AD0D066BC48BB15390EA10BE78 /* Sources */, D2A4B152651F01134ED378054CE50C8D /* Frameworks */, EDC821DB128FBEFA92BC6BC351D2709A /* Copy generated compatibility header */, @@ -2400,22 +2624,23 @@ productReference = AB81B5AF636ED4D537F9A819FC7EB086 /* libSipHash-macOS.a */; productType = "com.apple.product-type.library.static"; }; - 566C98B9528CB1527582959B19D87238 /* Pods-web3swift-iOS_Tests */ = { + 54A555F757645624A18AC783E60AA5FF /* EthereumAddress-iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 62550B15363844675EDB2F185CB619A8 /* Build configuration list for PBXNativeTarget "Pods-web3swift-iOS_Tests" */; + buildConfigurationList = 6F857D6C3879D581B7A61D082F02517D /* Build configuration list for PBXNativeTarget "EthereumAddress-iOS" */; buildPhases = ( - A84BA0453988997BEFD8DEA9765B62E6 /* Headers */, - A27CC87411918F0608EA9F4339733D80 /* Sources */, - 9FA0F642AE177D3FA07814A41F264B1A /* Frameworks */, + 35FB5F31383DF470E7D3CCBEE654D559 /* Headers */, + F15DD73C17A055BC418E9072D2BB4939 /* Sources */, + B28615186FF9D90001D66217490F939C /* Frameworks */, + 115C83B8E59E3CD4619CB06C207BD79A /* Copy generated compatibility header */, ); buildRules = ( ); dependencies = ( - F3DDE7BB170DA1519FDDE4BA03AB73FA /* PBXTargetDependency */, + 2E270EED3EF51F73AA3DEDED87A3911C /* PBXTargetDependency */, ); - name = "Pods-web3swift-iOS_Tests"; - productName = "Pods-web3swift-iOS_Tests"; - productReference = AC8ABBCB10448DB88C79398E3A2D4417 /* libPods-web3swift-iOS_Tests.a */; + name = "EthereumAddress-iOS"; + productName = "EthereumAddress-iOS"; + productReference = 27D0F7DCFEE54028674461B7456DB4EB /* libEthereumAddress-iOS.a */; productType = "com.apple.product-type.library.static"; }; 56C190CBC3444CE65376067572B13693 /* Pods-web3swift-iOS */ = { @@ -2463,27 +2688,6 @@ productReference = 5AEA4495CD1CD23847803E6F2009266F /* libResult-macOS.a */; productType = "com.apple.product-type.library.static"; }; - 75EC00B8FD54D720BB772CA16EEAE742 /* EthereumABI-macOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41A0D4C0C65EE651AE692E52EC485A28 /* Build configuration list for PBXNativeTarget "EthereumABI-macOS" */; - buildPhases = ( - AFEA92F9B8E4F23FDE84709BDC1E70DC /* Headers */, - F24FCB33D2CE51D2A03491918BF5B8F7 /* Sources */, - C057B63C1468DF9D9FB55C472186B940 /* Frameworks */, - BBE72A55EB66D7E4A940F279D9F63711 /* Copy generated compatibility header */, - ); - buildRules = ( - ); - dependencies = ( - C5E73C2BC7125A028DD21893CBB2FEBA /* PBXTargetDependency */, - 894ED1800495B1A047AF49B5D576542E /* PBXTargetDependency */, - 71C496B0EA254126C05B904C7F1E90A1 /* PBXTargetDependency */, - ); - name = "EthereumABI-macOS"; - productName = "EthereumABI-macOS"; - productReference = 61858AD8F2BC3FA5B6CE10752824FA45 /* libEthereumABI-macOS.a */; - productType = "com.apple.product-type.library.static"; - }; 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */ = { isa = PBXNativeTarget; buildConfigurationList = F03040809733F3691A82F4D1E80B6BA3 /* Build configuration list for PBXNativeTarget "CryptoSwift-macOS" */; @@ -2502,29 +2706,11 @@ productReference = E301EA386C90D10BDC9671660BE64E94 /* libCryptoSwift-macOS.a */; productType = "com.apple.product-type.library.static"; }; - 7ED7E08B2BE4D50AC5F7E73B32DD2203 /* Pods-web3swift-macOS_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 91E81CC04B48CAA0AA6D1FB891F14331 /* Build configuration list for PBXNativeTarget "Pods-web3swift-macOS_Tests" */; - buildPhases = ( - 2F394AD2ED0A538D456609456DB15F4B /* Headers */, - 6F5CC9B499993EA733C785A3803C553D /* Sources */, - 803328A4C9D919A350F04AB5D9FBBC0A /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - DA81B8EC030393B0ADEBDB02050FCFCB /* PBXTargetDependency */, - ); - name = "Pods-web3swift-macOS_Tests"; - productName = "Pods-web3swift-macOS_Tests"; - productReference = 11C198E371333D0B4E1F4A5B168C23C7 /* libPods-web3swift-macOS_Tests.a */; - productType = "com.apple.product-type.library.static"; - }; 8B46DCE922AD4DB52AB389148AB898AB /* scrypt-iOS */ = { isa = PBXNativeTarget; buildConfigurationList = 6172FF314CF6FDD0EE7BEB014649095A /* Build configuration list for PBXNativeTarget "scrypt-iOS" */; buildPhases = ( - F861629ACD553268DF434F0F56959DF5 /* Headers */, + BCDEDCFF59EB3574C06DDFCD869BC43E /* Headers */, 1DBC5B75CBA97552EF84D50D6F053E3F /* Sources */, 30C84D375526C86BF24F081A4EF0CA55 /* Frameworks */, CEDD87EC0BBAB26DCC718B994238180F /* Copy generated compatibility header */, @@ -2539,6 +2725,34 @@ productReference = BF7E9A738647C81A92D68BCF6E734C6B /* libscrypt-iOS.a */; productType = "com.apple.product-type.library.static"; }; + 90DD65700E3880CB6863781B384D88E8 /* Pods-web3swift-macOS_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 141FD473AD1560715F61FE6DEF71ABC2 /* Build configuration list for PBXNativeTarget "Pods-web3swift-macOS_Tests" */; + buildPhases = ( + 476C396482F6A53E49F00796C306CD01 /* Headers */, + D0A6BDA53913FB0FF465BC160A51B2D4 /* Sources */, + 81851D7060BC66A8EED44FD76B350669 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 96109F5DBA1481C4A0970AC9160E7CED /* PBXTargetDependency */, + 536DABB527A0CA3483AFBAA53A3EF413 /* PBXTargetDependency */, + 101EAC1A37AD544BD6FC227AC4EFC5F2 /* PBXTargetDependency */, + D0D1DE80C9C4F69FC859E6EA6861B54D /* PBXTargetDependency */, + 6844C7B3616D81212C6C2344E813A205 /* PBXTargetDependency */, + 21599DC8EFDDDD9C587B88D4CA91D58D /* PBXTargetDependency */, + F1FF4A3D283D15FFDF3244175D675731 /* PBXTargetDependency */, + E5ACCBF876B98160B835E8D6747FFC7D /* PBXTargetDependency */, + 52D7090A8C513BD9CEABCA54EC38B61E /* PBXTargetDependency */, + C4EE05480775822D3812FD453A7FFA28 /* PBXTargetDependency */, + 6D556C9AB6592CBC64BE9A6828F7A302 /* PBXTargetDependency */, + ); + name = "Pods-web3swift-macOS_Tests"; + productName = "Pods-web3swift-macOS_Tests"; + productReference = 11C198E371333D0B4E1F4A5B168C23C7 /* libPods-web3swift-macOS_Tests.a */; + productType = "com.apple.product-type.library.static"; + }; 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */ = { isa = PBXNativeTarget; buildConfigurationList = A1A3D7F09A5AFD2BD4DA3D3CDACBBCFC /* Build configuration list for PBXNativeTarget "BigInt-macOS" */; @@ -2562,7 +2776,7 @@ isa = PBXNativeTarget; buildConfigurationList = 47C2AA14D9BBB2B7CC5629CE1C553C1B /* Build configuration list for PBXNativeTarget "BigInt-iOS" */; buildPhases = ( - 3A62C11C69001C7BF554031AE5C3194C /* Headers */, + F29EC8E739F9852F086EF5BCFF543A3C /* Headers */, 104CDA071EC594D0742ECA77BC001352 /* Sources */, F3D19D58AA787766BBBD7801570222E2 /* Frameworks */, 48CAA26C5BA7CC4886CFBB5FF41C3C8C /* Copy generated compatibility header */, @@ -2577,6 +2791,56 @@ productReference = 4249BBDEF2DD259919D48F146E985928 /* libBigInt-iOS.a */; productType = "com.apple.product-type.library.static"; }; + BC7EB6A396C8F584F40578BB73297054 /* EthereumABI-iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 18D89CFC49958A2AEFEB770BD308BB8D /* Build configuration list for PBXNativeTarget "EthereumABI-iOS" */; + buildPhases = ( + 0328AB38B67AD4740A3BC2990F360E9F /* Headers */, + 5454588D5593C6640B6CA5A030A215B3 /* Sources */, + E5CAE3ADD0C2C43E056DC1018C2CD34E /* Frameworks */, + 0F626DE9232EC3E775BDA51B6A740A34 /* Copy generated compatibility header */, + ); + buildRules = ( + ); + dependencies = ( + ECAE4387D11A22F7B6FB49F384E51BFA /* PBXTargetDependency */, + D542F0C9AF38A229A28C79CE1E3C2E99 /* PBXTargetDependency */, + 7DB71797F2C703855AB6E1344ED0093C /* PBXTargetDependency */, + 1705E40697A3E7BD4769B9221877263B /* PBXTargetDependency */, + ); + name = "EthereumABI-iOS"; + productName = "EthereumABI-iOS"; + productReference = E692601913F2AB7B6FE40D658E90C7B5 /* libEthereumABI-iOS.a */; + productType = "com.apple.product-type.library.static"; + }; + C1ABD62FF9C174582661571FEFFDDFF5 /* Pods-web3swift-iOS_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1CECEB0B7C138362EC31B34DC024C28B /* Build configuration list for PBXNativeTarget "Pods-web3swift-iOS_Tests" */; + buildPhases = ( + 9902B00ED52C58D0F02A4DD8E167DFDE /* Headers */, + 572757A26D1506727C77A3C529A93116 /* Sources */, + 4C7C00241A0319C18F0BD1840D2AC575 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + B051EA2CCE648CD6E2328EBDF4B72764 /* PBXTargetDependency */, + 9FF263C95DB31DB84A5A8B2D6AEE29F8 /* PBXTargetDependency */, + 81FAD7A3FE82EF77695597F55D60D3B8 /* PBXTargetDependency */, + D0F3985D1AA70D26BA248CDD717BED74 /* PBXTargetDependency */, + C5CC393047173891FD755DB13EEFF8B3 /* PBXTargetDependency */, + 9654245FB4674A6CB395162EC5FEAD04 /* PBXTargetDependency */, + B4EA7F80BA18C34251DC743CF0B67BE8 /* PBXTargetDependency */, + 152EC87A1140B51FF1A421095C76417D /* PBXTargetDependency */, + 6810F1D2715CBC569943D23548EE2206 /* PBXTargetDependency */, + DBCE9EBA55916203733DEA39BC4A2184 /* PBXTargetDependency */, + 5AD54837ACE13A644F7580EDC5EF7166 /* PBXTargetDependency */, + ); + name = "Pods-web3swift-iOS_Tests"; + productName = "Pods-web3swift-iOS_Tests"; + productReference = AC8ABBCB10448DB88C79398E3A2D4417 /* libPods-web3swift-iOS_Tests.a */; + productType = "com.apple.product-type.library.static"; + }; E03BC878947EE75B154F4C52126FA465 /* SwiftRLP-macOS */ = { isa = PBXNativeTarget; buildConfigurationList = 34C02A2A41180F1C49A12F3C94BB6D39 /* Build configuration list for PBXNativeTarget "SwiftRLP-macOS" */; @@ -2590,6 +2854,7 @@ ); dependencies = ( 887F9C1C650417E1CBE7406FEDC48DFF /* PBXTargetDependency */, + 359A1F15F9ACAFCBECE697B5CF1ECD3C /* PBXTargetDependency */, ); name = "SwiftRLP-macOS"; productName = "SwiftRLP-macOS"; @@ -2600,7 +2865,7 @@ isa = PBXNativeTarget; buildConfigurationList = 19CA2EF2646C88FC1D5F4864827AF9A9 /* Build configuration list for PBXNativeTarget "CryptoSwift-iOS" */; buildPhases = ( - D9438E55E725BF04D83CC7EC3D4AF915 /* Headers */, + D8DF9756DF1533D95014EC82C839CA49 /* Headers */, 8FA32F9F48C4C6C1BA1B020B1EACED3A /* Sources */, 49DDA0C2610D394C727D7031E3440CCF /* Frameworks */, 1F7D245DDE5F17177A665A72104C9D4D /* Copy generated compatibility header */, @@ -2618,9 +2883,9 @@ isa = PBXNativeTarget; buildConfigurationList = C3E4E8C71E1F2FC6C63CC4862E81AA7A /* Build configuration list for PBXNativeTarget "PromiseKit" */; buildPhases = ( - BEB0EDBDBADA7FA289A4B00AA8E7EE0C /* Headers */, + 5D7F5655868740B643AC541595433331 /* Headers */, B2D0D69A20610EAC9B54E4B5D6B33246 /* Sources */, - 201C2E8B1BBF4EA2C2E855CAD443F07A /* Frameworks */, + F626FEC9545EED5621432105CBB5B89F /* Frameworks */, 1664729AD7926C68CEAB9CA1D7D7E258 /* Copy generated compatibility header */, ); buildRules = ( @@ -2669,44 +2934,23 @@ productReference = B43B308FB300789356930844D6B81CF8 /* libsecp256k1_swift-macOS.a */; productType = "com.apple.product-type.library.static"; }; - F8C504FC3CE2FB81EF2C3E4175B28B3D /* EthereumAddress-iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = F43F6591A165353F2FE927771835E799 /* Build configuration list for PBXNativeTarget "EthereumAddress-iOS" */; - buildPhases = ( - 5B106CA9B70073DB5FBE37B959133AF3 /* Headers */, - B19CBA1C50E1B009CA741061002F3A8F /* Sources */, - 0CB8E604AAFC039274BE7F9019820464 /* Frameworks */, - 84D15A766EDF77627835C50AF2F46647 /* Copy generated compatibility header */, - ); - buildRules = ( - ); - dependencies = ( - 350D0EA4123E54B176975206BE3381A6 /* PBXTargetDependency */, - ); - name = "EthereumAddress-iOS"; - productName = "EthereumAddress-iOS"; - productReference = 27D0F7DCFEE54028674461B7456DB4EB /* libEthereumAddress-iOS.a */; - productType = "com.apple.product-type.library.static"; - }; - FFBF3D20256EEEEE218C227988266104 /* EthereumABI-iOS */ = { + FC8EBDB08226B38D7EA8E5DA8C50B149 /* EthereumAddress-macOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 485FEBD24BA1178535E81D093E91F648 /* Build configuration list for PBXNativeTarget "EthereumABI-iOS" */; + buildConfigurationList = C5CFDB7E31E89F322FF8F838A76F9F6D /* Build configuration list for PBXNativeTarget "EthereumAddress-macOS" */; buildPhases = ( - 583E829B095CF5D84CEA55FCC985C749 /* Headers */, - 2090AC1FA361DDB648C75BB9E2DC4AA0 /* Sources */, - 739BFA7B674F25403C43C426637796E0 /* Frameworks */, - 179C24707C85FAF28343D6C5F58120DD /* Copy generated compatibility header */, + BAADD222EA239F94788CFBA2FD8C773E /* Headers */, + CD455E39B80A24885DE1A1B40373F75B /* Sources */, + C7C2C89852420D7FE3894F0E2A82B98D /* Frameworks */, + 391893A268F8865AE834BB55763AC4D8 /* Copy generated compatibility header */, ); buildRules = ( ); dependencies = ( - CECF16F2B83D3A302BFE3AD4E630E4AE /* PBXTargetDependency */, - 4A46F1E40806DBFA5F1546A658BFCCF4 /* PBXTargetDependency */, - 9278A7C03F26BA1E138F7AF44272A463 /* PBXTargetDependency */, + 67FB539E3C760A96DD12CC34840EA6F7 /* PBXTargetDependency */, ); - name = "EthereumABI-iOS"; - productName = "EthereumABI-iOS"; - productReference = E692601913F2AB7B6FE40D658E90C7B5 /* libEthereumABI-iOS.a */; + name = "EthereumAddress-macOS"; + productName = "EthereumAddress-macOS"; + productReference = 4813C1A0F259481060973E85D757C6F8 /* libEthereumAddress-macOS.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ @@ -2734,14 +2978,14 @@ 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */, E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */, 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */, - FFBF3D20256EEEEE218C227988266104 /* EthereumABI-iOS */, - 75EC00B8FD54D720BB772CA16EEAE742 /* EthereumABI-macOS */, - F8C504FC3CE2FB81EF2C3E4175B28B3D /* EthereumAddress-iOS */, - 1084E340C76D167B42F96381D5AC59FB /* EthereumAddress-macOS */, + BC7EB6A396C8F584F40578BB73297054 /* EthereumABI-iOS */, + 27805A6608FECCB809074EEC2F0F69FA /* EthereumABI-macOS */, + 54A555F757645624A18AC783E60AA5FF /* EthereumAddress-iOS */, + FC8EBDB08226B38D7EA8E5DA8C50B149 /* EthereumAddress-macOS */, 56C190CBC3444CE65376067572B13693 /* Pods-web3swift-iOS */, - 566C98B9528CB1527582959B19D87238 /* Pods-web3swift-iOS_Tests */, + C1ABD62FF9C174582661571FEFFDDFF5 /* Pods-web3swift-iOS_Tests */, 023FD8884DE6975FECF83E672E5A51B6 /* Pods-web3swift-macOS */, - 7ED7E08B2BE4D50AC5F7E73B32DD2203 /* Pods-web3swift-macOS_Tests */, + 90DD65700E3880CB6863781B384D88E8 /* Pods-web3swift-macOS_Tests */, EC4FD142A8187DC97F5C77E345493DC4 /* PromiseKit */, 02DC76A9AFBA2BA6CA9EBA39CCD34BCC /* PromiseKit.root-CorePromise-Foundation */, 16689698E943DBC08E5169468314C018 /* Result-iOS */, @@ -2784,7 +3028,7 @@ shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 1664729AD7926C68CEAB9CA1D7D7E258 /* Copy generated compatibility header */ = { + 0F626DE9232EC3E775BDA51B6A740A34 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2793,23 +3037,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.modulemap", - "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit-umbrella.h", + "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/PromiseKit-umbrella.h", + "${BUILT_PRODUCTS_DIR}/EthereumABI-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 179C24707C85FAF28343D6C5F58120DD /* Copy generated compatibility header */ = { + 115C83B8E59E3CD4619CB06C207BD79A /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2818,23 +3062,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/EthereumABI-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/EthereumAddress-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 1B2679AE7A95EBF0FDDB427B7725D76B /* Copy generated compatibility header */ = { + 1664729AD7926C68CEAB9CA1D7D7E258 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2843,23 +3087,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.modulemap", + "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/SipHash-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/PromiseKit-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 1F7D245DDE5F17177A665A72104C9D4D /* Copy generated compatibility header */ = { + 1B2679AE7A95EBF0FDDB427B7725D76B /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2868,23 +3112,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/CryptoSwift-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/SipHash-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SipHash/SipHash-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 23E99947867445CF8C69CEFFAFFC0227 /* Copy generated compatibility header */ = { + 1F7D245DDE5F17177A665A72104C9D4D /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2893,23 +3137,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap", - "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h", + "${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/PromiseKit.root-CorePromise-Foundation-umbrella.h", + "${BUILT_PRODUCTS_DIR}/CryptoSwift-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/CryptoSwift/CryptoSwift-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 3D42772EFBD89263E293714128E4BB20 /* Copy generated compatibility header */ = { + 21BE8B1DBA251A6DC73CAB9BB86023E5 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2918,23 +3162,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/Result/Result-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/Result/Result-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/Result-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/EthereumABI-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 3EB91FC9852F50FCD55BE7858C4F2E56 /* Copy generated compatibility header */ = { + 23E99947867445CF8C69CEFFAFFC0227 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2943,23 +3187,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap", + "${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/SwiftRLP-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/PromiseKit.root-CorePromise-Foundation-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 43735E5C22EB2EABE184E24809108452 /* Copy generated compatibility header */ = { + 391893A268F8865AE834BB55763AC4D8 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2968,23 +3212,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/SwiftRLP-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/EthereumAddress-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 48CAA26C5BA7CC4886CFBB5FF41C3C8C /* Copy generated compatibility header */ = { + 3D42772EFBD89263E293714128E4BB20 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2993,23 +3237,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/Result/Result-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/Result/Result-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/BigInt-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/Result-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 506F24A206D803133DAA923324224506 /* Copy generated compatibility header */ = { + 3EB91FC9852F50FCD55BE7858C4F2E56 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3018,23 +3262,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/EthereumAddress-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/SwiftRLP-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 755BFC4B404D1BFF99616B0008872FF1 /* Copy generated compatibility header */ = { + 43735E5C22EB2EABE184E24809108452 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3043,23 +3287,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/BigInt-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/SwiftRLP-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftRLP/SwiftRLP-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 84D15A766EDF77627835C50AF2F46647 /* Copy generated compatibility header */ = { + 48CAA26C5BA7CC4886CFBB5FF41C3C8C /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3068,23 +3312,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/EthereumAddress-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/BigInt-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumAddress/EthereumAddress-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 88F5681CA66294272E1F1C3DCE300CAE /* Copy generated compatibility header */ = { + 755BFC4B404D1BFF99616B0008872FF1 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3093,23 +3337,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/scrypt-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/BigInt-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/BigInt/BigInt-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 8B19A86C041EB3572BC6954373DA0F4C /* Copy generated compatibility header */ = { + 88F5681CA66294272E1F1C3DCE300CAE /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3118,23 +3362,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap", - "${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/secp256k1_swift-iOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/scrypt-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/scrypt/scrypt-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - 98E00FEDAA686C9CD8CF43BECA6FE814 /* Copy generated compatibility header */ = { + 8B19A86C041EB3572BC6954373DA0F4C /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3143,23 +3387,23 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/Result/Result-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/Result/Result-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap", + "${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/Result-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/secp256k1_swift-iOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/secp256k1_swift/secp256k1_swift-iOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; - BBE72A55EB66D7E4A940F279D9F63711 /* Copy generated compatibility header */ = { + 98E00FEDAA686C9CD8CF43BECA6FE814 /* Copy generated compatibility header */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -3168,20 +3412,20 @@ ); inputPaths = ( "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap", - "${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h", + "${PODS_ROOT}/Headers/Public/Result/Result-macOS.modulemap", + "${PODS_ROOT}/Headers/Public/Result/Result-macOS-umbrella.h", ); name = "Copy generated compatibility header"; outputFileListPaths = ( ); outputPaths = ( "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/EthereumABI-macOS-umbrella.h", + "${BUILT_PRODUCTS_DIR}/Result-macOS-umbrella.h", "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/EthereumABI/EthereumABI-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; + shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-macOS.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Result/Result-macOS-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; showEnvVarsInLog = 1; }; CEDD87EC0BBAB26DCC718B994238180F /* Copy generated compatibility header */ = { @@ -3312,19 +3556,43 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2090AC1FA361DDB648C75BB9E2DC4AA0 /* Sources */ = { + 5454588D5593C6640B6CA5A030A215B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B4471EDA97A5344990BA50D90F24AF31 /* ABI.swift in Sources */, - 341353A9C8AA2DF577CD96527EE2225D /* ABIDecoding.swift in Sources */, - 4D7F63CA708D40E84A6C8968CDB4D223 /* ABIElements.swift in Sources */, - 0EE3C6323A8EDEAB638639DD05932581 /* ABIEncoding.swift in Sources */, - B30C88B383282F3BA5CEFF72ADCD6975 /* ABIExtensions.swift in Sources */, - A9A3DCED2AEB2118A087FDC125D5D8A8 /* ABIParameterTypes.swift in Sources */, - 387F8491EE0600C1B119837221A22252 /* ABIParsing.swift in Sources */, - 2477779866B98A08454D05619FA403DC /* ABITypeParser.swift in Sources */, - 57BEB3200D2E2AA64E34C9960AC0A503 /* EthereumABI-iOS-dummy.m in Sources */, + B5D7A26D0B0598AB3F160AAF17DE949A /* ABI.swift in Sources */, + B4A0FDBAAF0122D250CB5DE25297FD8B /* ABIDecoding.swift in Sources */, + DA4D5FDFBCF015FFBE6F1AC4611F1A78 /* ABIElements.swift in Sources */, + 8FE762DAD36B785B235EDAD1AACD5F8E /* ABIEncoding.swift in Sources */, + 121DD0EAF125E14BB25B48EB3FD76B54 /* ABIExtensions.swift in Sources */, + AAC2F5A133AF7913D3359545CB362B8E /* ABIParameterTypes.swift in Sources */, + 1A363E92509740E616D5D1B3DAA1312B /* ABIParsing.swift in Sources */, + CEAE3126068D61D6D1DEE7A701376557 /* ABITypeParser.swift in Sources */, + 5AC824D111C540F3F5AFE019B18040DF /* EthereumABI-iOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 56F527CDDC9D100CCAA36D913406F1E0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + BCD0F7C3FAC2C35AF21AF6BEB42F4C8A /* ABI.swift in Sources */, + B157BA21212B394F61AB6283EE656B0D /* ABIDecoding.swift in Sources */, + 1BB795BAAF1BEEBEFEC7CB4790454E62 /* ABIElements.swift in Sources */, + 36C2EF6383C5AC055C114EF70ACFA6EE /* ABIEncoding.swift in Sources */, + 9BC64851AD30BA60F98145D5B9A46329 /* ABIExtensions.swift in Sources */, + EFB12B5682D23EBB212EC96E839A72A2 /* ABIParameterTypes.swift in Sources */, + CE15D3C4822F0B1D8A0C774B3FEE3973 /* ABIParsing.swift in Sources */, + 27AD12765F2F7C59671EC211F125FF24 /* ABITypeParser.swift in Sources */, + 3389FCBD2470730A75AB56DDBDD268FD /* EthereumABI-macOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 572757A26D1506727C77A3C529A93116 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 603D7473332E9462B3CCCD0E7BB087FB /* Pods-web3swift-iOS_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3421,14 +3689,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6F5CC9B499993EA733C785A3803C553D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - B6699C206D4772B76BEAF1722CB04572 /* Pods-web3swift-macOS_Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 7BA75396367E53FB54211DB664B4547E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3553,14 +3813,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A27CC87411918F0608EA9F4339733D80 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3A611A77C4E834E1E7F375E6362DB0D7 /* Pods-web3swift-iOS_Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; A5A45EF12B04C5C92A3AEF6FB3A93BC5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3643,16 +3895,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B19CBA1C50E1B009CA741061002F3A8F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D32E984FBE218628DC804D3F92B394BF /* EthereumAddress-iOS-dummy.m in Sources */, - 4A46B113C4612B07CA848FC63240296D /* EthereumAddress.swift in Sources */, - 2143F6BFBCB27696AC66E1E88312361D /* Extensions.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; B2D0D69A20610EAC9B54E4B5D6B33246 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3708,21 +3950,29 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D2D23DE9E3DD97F661D39734C713DFCD /* Sources */ = { + CD455E39B80A24885DE1A1B40373F75B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C89964A06EC88B3B556310F199344D68 /* Pods-web3swift-macOS-dummy.m in Sources */, + 82EE63A02EBECBB95681760B3DE5D6CB /* EthereumAddress-macOS-dummy.m in Sources */, + 78B74AE02AC2AF0A4F6F10086E973340 /* EthereumAddress.swift in Sources */, + 9E342CDC8A4486A045BAA310806AD567 /* Extensions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D3545085D966F9E71031F5551A836F21 /* Sources */ = { + D0A6BDA53913FB0FF465BC160A51B2D4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 47CD85DFCA1848F901AAB6D6F6F1DC78 /* EthereumAddress-macOS-dummy.m in Sources */, - 6AAD33E6E1945969931C25BAD27B42BA /* EthereumAddress.swift in Sources */, - E5EFEA69608F27C359D3B7989D25F0B1 /* Extensions.swift in Sources */, + 28BC3ADAB9B6B63952EA005DA075E95C /* Pods-web3swift-macOS_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2D23DE9E3DD97F661D39734C713DFCD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C89964A06EC88B3B556310F199344D68 /* Pods-web3swift-macOS-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3738,31 +3988,25 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F202AF892C75A508DD88D70F474FBA77 /* Sources */ = { + F15DD73C17A055BC418E9072D2BB4939 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2469775BF29544EFC833E726E761A6D5 /* AnyError.swift in Sources */, - 0194087258D01A6AAD57DD0DCF7F9971 /* NoError.swift in Sources */, - 153311AB46ACF9C1960DF5E52EF0E7B9 /* Result-iOS-dummy.m in Sources */, - 3415B2D18705344A178286314A9C0038 /* Result.swift in Sources */, - 803429C07CB9F5378967751502E38A45 /* ResultProtocol.swift in Sources */, + 3D4691FBDE3F2C3E06B753FC663C8CF2 /* EthereumAddress-iOS-dummy.m in Sources */, + F3490F456CCC074812E7A772E3BE2F89 /* EthereumAddress.swift in Sources */, + 18C1BE4FA70828DB6F911129EAA11C89 /* Extensions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F24FCB33D2CE51D2A03491918BF5B8F7 /* Sources */ = { + F202AF892C75A508DD88D70F474FBA77 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - EC534D19303041971EDE9C1C79A0F5FF /* ABI.swift in Sources */, - ACC598D7BAEB964F6A2E8BA38307C4F6 /* ABIDecoding.swift in Sources */, - E3D91DEF848307121405F35618B723BA /* ABIElements.swift in Sources */, - 5BFC536A9D0ED05F329623FFFE9B9C6C /* ABIEncoding.swift in Sources */, - 31648EA9AB41381E4C683FCFD69B5B97 /* ABIExtensions.swift in Sources */, - AE317D2940830F9B289A00565CE59FE6 /* ABIParameterTypes.swift in Sources */, - B747E0DC81EB6CFCD9751A67CC0C6D17 /* ABIParsing.swift in Sources */, - CF08F59B4689BEF43A5B7F883C330BBB /* ABITypeParser.swift in Sources */, - EB4F4E8A7A76E8F00B6B6B9D5D93C6BE /* EthereumABI-macOS-dummy.m in Sources */, + 2469775BF29544EFC833E726E761A6D5 /* AnyError.swift in Sources */, + 0194087258D01A6AAD57DD0DCF7F9971 /* NoError.swift in Sources */, + 153311AB46ACF9C1960DF5E52EF0E7B9 /* Result-iOS-dummy.m in Sources */, + 3415B2D18705344A178286314A9C0038 /* Result.swift in Sources */, + 803429C07CB9F5378967751502E38A45 /* ResultProtocol.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3772,13 +4016,13 @@ 02659AE1B67C7B1511ABF2C7A04E2B4E /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "EthereumAddress-macOS"; - target = 1084E340C76D167B42F96381D5AC59FB /* EthereumAddress-macOS */; + target = FC8EBDB08226B38D7EA8E5DA8C50B149 /* EthereumAddress-macOS */; targetProxy = 4BC1B5C55B9E19379BFD1419C6475244 /* PBXContainerItemProxy */; }; 0967375AB22B66ADBB9D19EA723B7DA1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "EthereumAddress-iOS"; - target = F8C504FC3CE2FB81EF2C3E4175B28B3D /* EthereumAddress-iOS */; + target = 54A555F757645624A18AC783E60AA5FF /* EthereumAddress-iOS */; targetProxy = 1074B809BD71CC2DC821BC5E173A4740 /* PBXContainerItemProxy */; }; 0D545F5A0BAC11E9ED61D880B15A786E /* PBXTargetDependency */ = { @@ -3787,10 +4031,34 @@ target = 02DC76A9AFBA2BA6CA9EBA39CCD34BCC /* PromiseKit.root-CorePromise-Foundation */; targetProxy = FE86C0598E860121877FB385FC2747CE /* PBXContainerItemProxy */; }; + 101EAC1A37AD544BD6FC227AC4EFC5F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EthereumABI-macOS"; + target = 27805A6608FECCB809074EEC2F0F69FA /* EthereumABI-macOS */; + targetProxy = B5DDBB6CA085DFEC8F30E3E72C5ED8DE /* PBXContainerItemProxy */; + }; + 152EC87A1140B51FF1A421095C76417D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SipHash-iOS"; + target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; + targetProxy = 45009523CD4B5E54F0CD7913E4168D8E /* PBXContainerItemProxy */; + }; + 15D47A3726CDC006F194D3B5F292DB47 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SipHash-macOS"; + target = 4FCBE56BC5E931FDC43C642250037C1F /* SipHash-macOS */; + targetProxy = DD3C1DA360A6106B2C1F7BE05D0FD474 /* PBXContainerItemProxy */; + }; + 1705E40697A3E7BD4769B9221877263B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SipHash-iOS"; + target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; + targetProxy = 6AB6BF4A7B32A19FFA68D59064857A60 /* PBXContainerItemProxy */; + }; 18AE85A800367509ACE31E973FB46584 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "EthereumABI-iOS"; - target = FFBF3D20256EEEEE218C227988266104 /* EthereumABI-iOS */; + target = BC7EB6A396C8F584F40578BB73297054 /* EthereumABI-iOS */; targetProxy = 12BDC3CC8385F7A17B4C9A4084570897 /* PBXContainerItemProxy */; }; 1E105E4F2A6BEB962894ADC68D751F0D /* PBXTargetDependency */ = { @@ -3805,23 +4073,47 @@ target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; targetProxy = EDCBD08F51F8B9B91035148948A48489 /* PBXContainerItemProxy */; }; + 21599DC8EFDDDD9C587B88D4CA91D58D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "PromiseKit.root-CorePromise-Foundation"; + target = 02DC76A9AFBA2BA6CA9EBA39CCD34BCC /* PromiseKit.root-CorePromise-Foundation */; + targetProxy = 0B5B137822F6E32014FAEB9D19B42719 /* PBXContainerItemProxy */; + }; 2A5B940C38D42B8D734A160124EFFE9A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "SipHash-iOS"; target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; targetProxy = AC378E3E20AF5D424B6D68F67641CFC3 /* PBXContainerItemProxy */; }; - 350D0EA4123E54B176975206BE3381A6 /* PBXTargetDependency */ = { + 2E270EED3EF51F73AA3DEDED87A3911C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "CryptoSwift-iOS"; target = E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */; - targetProxy = 6AE3006AF993F15800127DD3F057F155 /* PBXContainerItemProxy */; + targetProxy = 72FC4FB6861B5AFF615AF568693BB119 /* PBXContainerItemProxy */; }; - 4A46F1E40806DBFA5F1546A658BFCCF4 /* PBXTargetDependency */ = { + 359A1F15F9ACAFCBECE697B5CF1ECD3C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "CryptoSwift-iOS"; - target = E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */; - targetProxy = 5E5A5367425FAE2AC8C07569D7CBE881 /* PBXContainerItemProxy */; + name = "SipHash-macOS"; + target = 4FCBE56BC5E931FDC43C642250037C1F /* SipHash-macOS */; + targetProxy = C8AE2741F71559B40B306C3F8880165F /* PBXContainerItemProxy */; + }; + 4B7898A16023EAE683DC47C9E0949479 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CryptoSwift-macOS"; + target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; + targetProxy = 56C42F89547AE725E8DAADB5B92C1A02 /* PBXContainerItemProxy */; + }; + 52D7090A8C513BD9CEABCA54EC38B61E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SwiftRLP-macOS"; + target = E03BC878947EE75B154F4C52126FA465 /* SwiftRLP-macOS */; + targetProxy = 2AC6F8C923B851332C51CA80A620859B /* PBXContainerItemProxy */; + }; + 536DABB527A0CA3483AFBAA53A3EF413 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CryptoSwift-macOS"; + target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; + targetProxy = 3DD990539DD329F11028057AC099349C /* PBXContainerItemProxy */; }; 571654461CE17E7F4576D91D3D7A7721 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3829,6 +4121,12 @@ target = 39C6DF22D4F83A78CB7F52D86381D937 /* secp256k1_swift-iOS */; targetProxy = E3D60F25AD4AFCD3E199C418A6BEC4CB /* PBXContainerItemProxy */; }; + 5AD54837ACE13A644F7580EDC5EF7166 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "secp256k1_swift-iOS"; + target = 39C6DF22D4F83A78CB7F52D86381D937 /* secp256k1_swift-iOS */; + targetProxy = 3691A47BEB66CE2F0A296A6DDD062D61 /* PBXContainerItemProxy */; + }; 5FA722F52DC7060EC2D68CC1867BA0B8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "CryptoSwift-macOS"; @@ -3841,24 +4139,48 @@ target = E03BC878947EE75B154F4C52126FA465 /* SwiftRLP-macOS */; targetProxy = C2A6BB71B66A804F107BDE387EED9DFB /* PBXContainerItemProxy */; }; + 67FB539E3C760A96DD12CC34840EA6F7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CryptoSwift-macOS"; + target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; + targetProxy = 0737B238CD911BAE733386FD638A15C4 /* PBXContainerItemProxy */; + }; + 6810F1D2715CBC569943D23548EE2206 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SwiftRLP-iOS"; + target = 064630A81A32C3F755213FAB5B3FAAAB /* SwiftRLP-iOS */; + targetProxy = 7E9FF801D021932FE6CD5A50FC215166 /* PBXContainerItemProxy */; + }; + 6844C7B3616D81212C6C2344E813A205 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-web3swift-macOS"; + target = 023FD8884DE6975FECF83E672E5A51B6 /* Pods-web3swift-macOS */; + targetProxy = 85200095E2D745B96544DA58C9AEC3C0 /* PBXContainerItemProxy */; + }; + 699B964D61EC862FC49E9C97A6843721 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "BigInt-macOS"; + target = 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */; + targetProxy = 6C7065F7102B1E48D8C6731EA99BFE24 /* PBXContainerItemProxy */; + }; 6B25264F7EED61228F38A533A55ADB9A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "CryptoSwift-iOS"; target = E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */; targetProxy = 20A317B02DEAB0C5E12252BAD3678AC3 /* PBXContainerItemProxy */; }; + 6D556C9AB6592CBC64BE9A6828F7A302 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "secp256k1_swift-macOS"; + target = F25097D79C7232475816DB85533AC607 /* secp256k1_swift-macOS */; + targetProxy = 155B59A55F5C62D2DEAA3ECC5A3C5818 /* PBXContainerItemProxy */; + }; 71225E4B8AE60381FB07D307E4B6D4D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "scrypt-macOS"; target = EE65EFBDF686C56EA74D41CCE0304FCC /* scrypt-macOS */; targetProxy = 9619E33BB76CA82AF5BCFD855D8DE72E /* PBXContainerItemProxy */; }; - 71C496B0EA254126C05B904C7F1E90A1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "EthereumAddress-macOS"; - target = 1084E340C76D167B42F96381D5AC59FB /* EthereumAddress-macOS */; - targetProxy = 2D8C658A18F2B96B45403A04ECD943E9 /* PBXContainerItemProxy */; - }; 727A2BB019C3EBC7776A2D069690F4A6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "SipHash-macOS"; @@ -3871,18 +4193,24 @@ target = 064630A81A32C3F755213FAB5B3FAAAB /* SwiftRLP-iOS */; targetProxy = 48C230599D2897ADA99AF94AE1966B79 /* PBXContainerItemProxy */; }; + 7DB71797F2C703855AB6E1344ED0093C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EthereumAddress-iOS"; + target = 54A555F757645624A18AC783E60AA5FF /* EthereumAddress-iOS */; + targetProxy = 5B0A2A984B718061682C5507079892A3 /* PBXContainerItemProxy */; + }; + 81FAD7A3FE82EF77695597F55D60D3B8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EthereumABI-iOS"; + target = BC7EB6A396C8F584F40578BB73297054 /* EthereumABI-iOS */; + targetProxy = 9CDAB75F4A9C647D639794937292B603 /* PBXContainerItemProxy */; + }; 887F9C1C650417E1CBE7406FEDC48DFF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "BigInt-macOS"; target = 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */; targetProxy = 714B2335333EF3361207DF61B815EABB /* PBXContainerItemProxy */; }; - 894ED1800495B1A047AF49B5D576542E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "CryptoSwift-macOS"; - target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; - targetProxy = 59F60AFE805CEBB2EDEC5D68F84B1576 /* PBXContainerItemProxy */; - }; 8B85536E7A2A3FC702D31FFB0CE7E18A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "secp256k1_swift-macOS"; @@ -3895,11 +4223,17 @@ target = AF9F48E6961507C0E2FD7A3CDBC652DA /* BigInt-iOS */; targetProxy = 36A6BC9A8529E6996209859ED7E7041A /* PBXContainerItemProxy */; }; - 9278A7C03F26BA1E138F7AF44272A463 /* PBXTargetDependency */ = { + 96109F5DBA1481C4A0970AC9160E7CED /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "EthereumAddress-iOS"; - target = F8C504FC3CE2FB81EF2C3E4175B28B3D /* EthereumAddress-iOS */; - targetProxy = DCA19D3862551FBDC00AAF6455703513 /* PBXContainerItemProxy */; + name = "BigInt-macOS"; + target = 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */; + targetProxy = C167EFA5FDD76187BB7E92339890F161 /* PBXContainerItemProxy */; + }; + 9654245FB4674A6CB395162EC5FEAD04 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = PromiseKit; + target = EC4FD142A8187DC97F5C77E345493DC4 /* PromiseKit */; + targetProxy = EF8F4758498A5C1E32C262CDDCDA786A /* PBXContainerItemProxy */; }; 9C5DDB2602B091154A843E950D482712 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3907,12 +4241,24 @@ target = 60BB8021A6290DE4F66E9D4A96906F3C /* Result-macOS */; targetProxy = 099BB689D5DBD5D5DEBA336FBD217742 /* PBXContainerItemProxy */; }; + 9FF263C95DB31DB84A5A8B2D6AEE29F8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CryptoSwift-iOS"; + target = E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */; + targetProxy = 2578D9E3E5F578BBD12A1383306E148B /* PBXContainerItemProxy */; + }; A26C0CA8CFB4FEF8510603291FA6567D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "scrypt-iOS"; target = 8B46DCE922AD4DB52AB389148AB898AB /* scrypt-iOS */; targetProxy = AD688405EBF3846C3A14C36C7F7467F8 /* PBXContainerItemProxy */; }; + A3B599EED5A76E04152DEC3439421CFA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SipHash-iOS"; + target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; + targetProxy = 25F0C8FEDB385B9EBC7B168D589001EB /* PBXContainerItemProxy */; + }; A3C977A971A55D81A3EDB024FEF6F3B7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "CryptoSwift-iOS"; @@ -3925,29 +4271,41 @@ target = AF9F48E6961507C0E2FD7A3CDBC652DA /* BigInt-iOS */; targetProxy = B26EAE97BDAB5AF01C604365CB5F406C /* PBXContainerItemProxy */; }; - BAD76E8361F4D9801FAF4CAEE1E33A93 /* PBXTargetDependency */ = { + B051EA2CCE648CD6E2328EBDF4B72764 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SipHash-iOS"; - target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; - targetProxy = 283B81AF6A42B35D635E192D621E2B56 /* PBXContainerItemProxy */; - }; - C0C1466C80B5B9098C4ADE3D8D0FF848 /* PBXTargetDependency */ = { + name = "BigInt-iOS"; + target = AF9F48E6961507C0E2FD7A3CDBC652DA /* BigInt-iOS */; + targetProxy = B5AFF58C85C6EB2FD5A844723E700066 /* PBXContainerItemProxy */; + }; + B4EA7F80BA18C34251DC743CF0B67BE8 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "CryptoSwift-macOS"; - target = 78DC154308FD9CFC54ADA13FD1897A6B /* CryptoSwift-macOS */; - targetProxy = E0E74766A66548F2C349A91FC003EF0A /* PBXContainerItemProxy */; + name = "Result-iOS"; + target = 16689698E943DBC08E5169468314C018 /* Result-iOS */; + targetProxy = 244D1DAFE6DC34C336F538725918CBF2 /* PBXContainerItemProxy */; + }; + BAD76E8361F4D9801FAF4CAEE1E33A93 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SipHash-iOS"; + target = 3B79F6DB09B597AAE9D3EB939DA463D8 /* SipHash-iOS */; + targetProxy = 283B81AF6A42B35D635E192D621E2B56 /* PBXContainerItemProxy */; }; C269DDA1242D2E3E298B6F655C4A167D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "EthereumABI-macOS"; - target = 75EC00B8FD54D720BB772CA16EEAE742 /* EthereumABI-macOS */; + target = 27805A6608FECCB809074EEC2F0F69FA /* EthereumABI-macOS */; targetProxy = 61558A075BFFFBA7882CAEE8C5732ECE /* PBXContainerItemProxy */; }; - C5E73C2BC7125A028DD21893CBB2FEBA /* PBXTargetDependency */ = { + C4EE05480775822D3812FD453A7FFA28 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "BigInt-macOS"; - target = 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */; - targetProxy = 23B4CA009D06E1EB2F03415680002335 /* PBXContainerItemProxy */; + name = "scrypt-macOS"; + target = EE65EFBDF686C56EA74D41CCE0304FCC /* scrypt-macOS */; + targetProxy = 0A0C837AFCE36F92B4F82CAB661E4CC7 /* PBXContainerItemProxy */; + }; + C5CC393047173891FD755DB13EEFF8B3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-web3swift-iOS"; + target = 56C190CBC3444CE65376067572B13693 /* Pods-web3swift-iOS */; + targetProxy = E623A89A73AE86174BDD01A08BB48DC0 /* PBXContainerItemProxy */; }; C6D935F507D2100088E917501A5BB59D /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3955,17 +4313,29 @@ target = 4FCBE56BC5E931FDC43C642250037C1F /* SipHash-macOS */; targetProxy = 284C9AFC38A225A506CB24973AEFB321 /* PBXContainerItemProxy */; }; - CECF16F2B83D3A302BFE3AD4E630E4AE /* PBXTargetDependency */ = { + D0D1DE80C9C4F69FC859E6EA6861B54D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "BigInt-iOS"; - target = AF9F48E6961507C0E2FD7A3CDBC652DA /* BigInt-iOS */; - targetProxy = 06FAFF995DCDF3CCF5C19865E9FCA57F /* PBXContainerItemProxy */; + name = "EthereumAddress-macOS"; + target = FC8EBDB08226B38D7EA8E5DA8C50B149 /* EthereumAddress-macOS */; + targetProxy = 30FE81765DC202183BFE7476D4AFEBE5 /* PBXContainerItemProxy */; }; - DA81B8EC030393B0ADEBDB02050FCFCB /* PBXTargetDependency */ = { + D0F3985D1AA70D26BA248CDD717BED74 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-web3swift-macOS"; - target = 023FD8884DE6975FECF83E672E5A51B6 /* Pods-web3swift-macOS */; - targetProxy = 1E5017C3A1512E67B0318DD1DACDE515 /* PBXContainerItemProxy */; + name = "EthereumAddress-iOS"; + target = 54A555F757645624A18AC783E60AA5FF /* EthereumAddress-iOS */; + targetProxy = A5672221F501011F82F44F330229D404 /* PBXContainerItemProxy */; + }; + D542F0C9AF38A229A28C79CE1E3C2E99 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "CryptoSwift-iOS"; + target = E615C0628D54019CCEE5C0CC80B55529 /* CryptoSwift-iOS */; + targetProxy = 9D9F070B9DF3E8EA98FC948BCE0C760B /* PBXContainerItemProxy */; + }; + DBCE9EBA55916203733DEA39BC4A2184 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "scrypt-iOS"; + target = 8B46DCE922AD4DB52AB389148AB898AB /* scrypt-iOS */; + targetProxy = D554FE806CB38967D36C5530C7B90D2E /* PBXContainerItemProxy */; }; E5418EBD52BE4001ACF1E9B736E61DB4 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3973,11 +4343,23 @@ target = 16689698E943DBC08E5169468314C018 /* Result-iOS */; targetProxy = BBE7A89B2AC6FEAE944585350A21A6F6 /* PBXContainerItemProxy */; }; - F3DDE7BB170DA1519FDDE4BA03AB73FA /* PBXTargetDependency */ = { + E5ACCBF876B98160B835E8D6747FFC7D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-web3swift-iOS"; - target = 56C190CBC3444CE65376067572B13693 /* Pods-web3swift-iOS */; - targetProxy = 366CCE30759EB3C0FF8E45BE9572B007 /* PBXContainerItemProxy */; + name = "SipHash-macOS"; + target = 4FCBE56BC5E931FDC43C642250037C1F /* SipHash-macOS */; + targetProxy = FD82D3DF711EDD37E31B330FC94EA442 /* PBXContainerItemProxy */; + }; + ECAE4387D11A22F7B6FB49F384E51BFA /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "BigInt-iOS"; + target = AF9F48E6961507C0E2FD7A3CDBC652DA /* BigInt-iOS */; + targetProxy = 3F7440A6C80B47AD5D485865659447A9 /* PBXContainerItemProxy */; + }; + F1FF4A3D283D15FFDF3244175D675731 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Result-macOS"; + target = 60BB8021A6290DE4F66E9D4A96906F3C /* Result-macOS */; + targetProxy = BF270686C220EDC32A76493A3B47D60F /* PBXContainerItemProxy */; }; F99596A36A7D743925C51FA2EAC6A926 /* PBXTargetDependency */ = { isa = PBXTargetDependency; @@ -3985,39 +4367,119 @@ target = 9646F4C6B5DB5298F5EEE5871120A244 /* BigInt-macOS */; targetProxy = A782764E5DFF6FDC6717BF4453214525 /* PBXContainerItemProxy */; }; + FF0D2E4FC28CD4020B35778FEB003B59 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "EthereumAddress-macOS"; + target = FC8EBDB08226B38D7EA8E5DA8C50B149 /* EthereumAddress-macOS */; + targetProxy = 202775A74F5C90739C89BB1069E30899 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 02BEABF91F94549686F3C50DDE0DD7D9 /* Release */ = { + 023D8F9D8E0EC5E1CAEB1DD4989B4439 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4AA4C4E3B71B38DD9AC53FDE78CAE9EA /* PromiseKit.root-CorePromise-Foundation.xcconfig */; + baseConfigurationReference = 3C18FE09DB747D4F64CDC4EBF07A6AF0 /* Pods-web3swift-macOS.debug.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MODULEMAP_FILE = "Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap"; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 02E5FCC47E212D05EE62CCBC87A59BAD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6B43693C134C90A32C6A63727F4D6363 /* SwiftRLP-macOS.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = PromiseKit; - PRODUCT_NAME = "PromiseKit.root-CorePromise-Foundation"; + PRODUCT_MODULE_NAME = SwiftRLP; + PRODUCT_NAME = "SwiftRLP-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.1; + }; + name = Release; + }; + 05DE8CD3347758F2BB7139A06B0A0DBE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E288A05D71D9B3234891B4B3FC6F24D6 /* EthereumAddress-macOS.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EthereumAddress; + PRODUCT_NAME = "EthereumAddress-macOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.1; }; name = Release; }; + 06EF501F92FEA083E952C634974FB9BB /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B6C5B58BCA3B0F50FAC855B070978522 /* scrypt-macOS.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/scrypt-macOS/scrypt-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = scrypt; + PRODUCT_NAME = "scrypt-macOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.1; + }; + name = Debug; + }; 08EDA75FE0BDF7058094AE2A97B614C1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 420A1793DC6527296BC586472865C8C0 /* scrypt-iOS.xcconfig */; + baseConfigurationReference = EC18156DBCA6BE2E1B8992FB811060C5 /* scrypt-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4043,7 +4505,7 @@ }; 0A1E7A5A2BC31F6FBEBEDC9CD0EADB10 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 673FFC4D2B959AB8AEC35D646A85CDCD /* Pods-web3swift-iOS.release.xcconfig */; + baseConfigurationReference = 6D76E01714111860B1A58E945BFEDC3A /* Pods-web3swift-iOS.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -4066,7 +4528,7 @@ }; 0B909F147936EE3B5A2B75910E90133C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 92CB38F782D33EF495F861851E047FA9 /* SipHash-iOS.xcconfig */; + baseConfigurationReference = F0F26E25773CB525159D46C5B6D1B376 /* SipHash-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4090,11 +4552,10 @@ }; name = Release; }; - 11AFE4FF91D289E194438B54F1861BDC /* Debug */ = { + 0D12F52D2FC6B275C845A455D3C53897 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 330B8D8B0B8ACFFDF2B9292154D71642 /* secp256k1_swift-macOS.xcconfig */; + baseConfigurationReference = 8DB920805B0BCCB1D1D3A6508C722E73 /* secp256k1_swift-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4115,64 +4576,62 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.0; }; - name = Debug; + name = Release; }; - 190110B1825C1B9F5BF5A2EBD21E974B /* Release */ = { + 132C53CD9155D5AD14E84583836EE736 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 08A99F6D5C3E452229D15E3E8C1660F3 /* BigInt-macOS.xcconfig */; + baseConfigurationReference = 6B43693C134C90A32C6A63727F4D6363 /* SwiftRLP-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/BigInt-macOS/BigInt-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = BigInt; - PRODUCT_NAME = "BigInt-macOS"; + PRODUCT_MODULE_NAME = SwiftRLP; + PRODUCT_NAME = "SwiftRLP-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.1; }; - name = Release; + name = Debug; }; - 1B8C9D978FDF5ED4199E530B793239D6 /* Release */ = { + 1B976929144F35C872E7412BDC0A2D24 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C04A3FB24C874F21628C4E7EA8B9693B /* scrypt-macOS.xcconfig */; + baseConfigurationReference = F8ED5F0BBB8BFF1D7DBBB3AA0BE5EA7E /* EthereumABI-iOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/scrypt-macOS/scrypt-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-iOS/EthereumABI-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = scrypt; - PRODUCT_NAME = "scrypt-macOS"; + PRODUCT_MODULE_NAME = EthereumABI; + PRODUCT_NAME = "EthereumABI-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.1; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Release; + name = Debug; }; 1EDD89DD1A111ECC395D5EBC9D07FECD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 042CC2D185140E7D725D22562A3E307F /* Pods-web3swift-iOS.debug.xcconfig */; + baseConfigurationReference = 549BC77FB563C5F7078EEF621568360D /* Pods-web3swift-iOS.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -4194,7 +4653,7 @@ }; 2969FBBC5C72EEF51DC6F4B9B1A976D0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B6A0DADFE9809AB925F51CF651528B31 /* secp256k1_swift-iOS.xcconfig */; + baseConfigurationReference = 66AED7B1284F110412341823D0393172 /* secp256k1_swift-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4218,36 +4677,34 @@ }; name = Release; }; - 32114FB1ED27B364D53BC6C8665A9C2E /* Release */ = { + 2B419FFCB8698725AEFF4AD6F3DA24B6 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B48543DD38BB8E1AB0953C926DBA6C3F /* EthereumABI-macOS.xcconfig */; + baseConfigurationReference = A4DE673E5AA2F431951809819265C70A /* SipHash-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-macOS/EthereumABI-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/SipHash-macOS/SipHash-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = "Headers/Public/SipHash/SipHash-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumABI; - PRODUCT_NAME = "EthereumABI-macOS"; + PRODUCT_MODULE_NAME = SipHash; + PRODUCT_NAME = "SipHash-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + SWIFT_VERSION = 4.0; }; - name = Release; + name = Debug; }; 32CF9A39F6635F8DA2878D193D645440 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89525730C7E22C66FB7ADAB11E2073A0 /* CryptoSwift-iOS.xcconfig */; + baseConfigurationReference = 8D1457D56859B3489B05547CE8ED69C6 /* CryptoSwift-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4270,141 +4727,129 @@ }; name = Debug; }; - 41717A996D2F041A161913298508A8E9 /* Release */ = { + 3598EF90C0B2EBB839D394E5FCFC63BE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF8327584F2BDEC27C9163F51CDEFB9E /* SwiftRLP-macOS.xcconfig */; + baseConfigurationReference = 7019F3D58D3915C5DB778C7F37D6284D /* PromiseKit.root-CorePromise-Foundation.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftRLP; - PRODUCT_NAME = "SwiftRLP-macOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; - }; - name = Release; - }; - 477575EFA4C280367821CBC53C5C8953 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D1FD34D2C5C93A170139E5994B7F5D8D /* Result-macOS.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/Result-macOS/Result-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/Result/Result-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MODULEMAP_FILE = "Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Result; - PRODUCT_NAME = "Result-macOS"; + PRODUCT_MODULE_NAME = PromiseKit; + PRODUCT_NAME = "PromiseKit.root-CorePromise-Foundation"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.0; }; - name = Release; - }; - 4CA9B35348640CA3DA1AAB6A01AB2BE4 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0D88C9D56C3885598E20D9718F3B8F16 /* Pods-web3swift-macOS_Tests.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = Release; + name = Debug; }; - 4F3205507D03A242BAB6D95A8806CF7D /* Debug */ = { + 410940BCADE683311D0516B99A5AB80D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EF8327584F2BDEC27C9163F51CDEFB9E /* SwiftRLP-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-macOS.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftRLP; - PRODUCT_NAME = "SwiftRLP-macOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.2; + SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - 55D3105FA71C4B27F6E2350877CDAF39 /* Debug */ = { + 538E89D99F6E2D546249D1EE74A6DBFD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 08A99F6D5C3E452229D15E3E8C1660F3 /* BigInt-macOS.xcconfig */; + baseConfigurationReference = A8E46FB728C72889788B6CF61184C08D /* CryptoSwift-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/BigInt-macOS/BigInt-macOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-prefix.pch"; MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-macOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = BigInt; - PRODUCT_NAME = "BigInt-macOS"; + PRODUCT_MODULE_NAME = CryptoSwift; + PRODUCT_NAME = "CryptoSwift-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.2; }; - name = Debug; + name = Release; }; - 722FA21DE6A0ACAC9DD0E405C5BF7D1A /* Debug */ = { + 56918893EF02BD4537B8F9CB08D32033 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1C8F00AC871FE0EC2FBD9A40F62753CD /* Pods-web3swift-macOS.debug.xcconfig */; + baseConfigurationReference = CFF935D0FA27DF791E8FDBB6D5D68CB2 /* Pods-web3swift-macOS_Tests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4413,7 +4858,7 @@ EXECUTABLE_PREFIX = lib; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -4423,222 +4868,195 @@ }; name = Debug; }; - 7611FC9ACC0308E2A87B7CF5FC557084 /* Release */ = { + 5DBAB9597AF8F0467DF2C538E82A1569 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D6306B3BC57BAEB50815C5FBBFC8CB4 /* SwiftRLP-iOS.xcconfig */; + baseConfigurationReference = 8B09D00EA28B49D089629C1B3671E2D4 /* EthereumAddress-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftRLP; - PRODUCT_NAME = "SwiftRLP-iOS"; + PRODUCT_MODULE_NAME = EthereumAddress; + PRODUCT_NAME = "EthereumAddress-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.1; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; }; - name = Release; + name = Debug; }; - 78A91A4EF7911BE93CE41768D5EC92BB /* Release */ = { + 621044FBAB13E81AD237F7A545994E0C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3F1CF8D01D9020575F785235F3DA02E3 /* PromiseKit.xcconfig */; + baseConfigurationReference = 2C06CEB32F04CBF303CC2562A16F7241 /* Pods-web3swift-macOS.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/PromiseKit/PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = Headers/Public/PromiseKit/PromiseKit.modulemap; + EXECUTABLE_PREFIX = lib; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = PromiseKit; - PRODUCT_NAME = PromiseKit; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; }; name = Release; }; - 78E745EDC865041C93C2926A6DCDB505 /* Debug */ = { + 6883B9EDC70FD3E947697DEBE31DC9AD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F7F56C5F9833A0AB26CC47460A928E34 /* Result-iOS.xcconfig */; + baseConfigurationReference = C7945B901D104B12E76F7FC10461A3D5 /* BigInt-macOS.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Result-iOS/Result-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/Result/Result-iOS.modulemap"; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/BigInt-macOS/BigInt-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Result; - PRODUCT_NAME = "Result-iOS"; + PRODUCT_MODULE_NAME = BigInt; + PRODUCT_NAME = "BigInt-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - 7A047BDA07E543F92AF596A54ACB9D17 /* Release */ = { + 6B81679F1C9E09B421ABE1F418B8E183 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F7F56C5F9833A0AB26CC47460A928E34 /* Result-iOS.xcconfig */; + baseConfigurationReference = 50832FC4B2337F53A6F628D514DA730A /* Pods-web3swift-macOS_Tests.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Result-iOS/Result-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/Result/Result-iOS.modulemap"; + EXECUTABLE_PREFIX = lib; + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Result; - PRODUCT_NAME = "Result-iOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + SDKROOT = macosx; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; }; name = Release; }; - 82CAFFCF1DF36B5D87B092509FE48D3E /* Debug */ = { + 7611FC9ACC0308E2A87B7CF5FC557084 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 420A1793DC6527296BC586472865C8C0 /* scrypt-iOS.xcconfig */; + baseConfigurationReference = 0C7ECBFABE9667C08C3E0CAA44F61507 /* SwiftRLP-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/scrypt-iOS/scrypt-iOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-iOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = scrypt; - PRODUCT_NAME = "scrypt-iOS"; + PRODUCT_MODULE_NAME = SwiftRLP; + PRODUCT_NAME = "SwiftRLP-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.1; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; - 83210CA27027B561A7B5E007B06CA4D7 /* Release */ = { + 78A91A4EF7911BE93CE41768D5EC92BB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E3ADB0156604A4FD7CD47B25248088C2 /* Pods-web3swift-iOS_Tests.release.xcconfig */; + baseConfigurationReference = 151AB966E2464DDE568760C553BC5E0B /* PromiseKit.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACH_O_TYPE = staticlib; + GCC_PREFIX_HEADER = "Target Support Files/PromiseKit/PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MODULEMAP_FILE = Headers/Public/PromiseKit/PromiseKit.modulemap; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = PromiseKit; + PRODUCT_NAME = PromiseKit; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; - 8518F8D713080EF1D6A105CF2021EC99 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B7762E4245191B27674EB7EB82DCFFF1 /* Pods-web3swift-macOS_Tests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 8AFA5B5EA500725BE7FF28964AEEDA43 /* Debug */ = { + 78E745EDC865041C93C2926A6DCDB505 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C04A3FB24C874F21628C4E7EA8B9693B /* scrypt-macOS.xcconfig */; + baseConfigurationReference = 4B27BF530A63ACAF9407720A162114CA /* Result-iOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/scrypt-macOS/scrypt-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/Result-iOS/Result-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MODULEMAP_FILE = "Headers/Public/Result/Result-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = scrypt; - PRODUCT_NAME = "scrypt-macOS"; + PRODUCT_MODULE_NAME = Result; + PRODUCT_NAME = "Result-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - 901A8ABA1A0F32437C72ADA21170A7CE /* Release */ = { + 7A047BDA07E543F92AF596A54ACB9D17 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2AD338DD23B43013308A65379BAEC16C /* BigInt-iOS.xcconfig */; + baseConfigurationReference = 4B27BF530A63ACAF9407720A162114CA /* Result-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/BigInt-iOS/BigInt-iOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Result-iOS/Result-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-iOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/Result/Result-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = BigInt; - PRODUCT_NAME = "BigInt-iOS"; + PRODUCT_MODULE_NAME = Result; + PRODUCT_NAME = "Result-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -4649,22 +5067,22 @@ }; name = Release; }; - 961AECA1170955755D74EAD3E5819CE7 /* Debug */ = { + 82CAFFCF1DF36B5D87B092509FE48D3E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9D6306B3BC57BAEB50815C5FBBFC8CB4 /* SwiftRLP-iOS.xcconfig */; + baseConfigurationReference = EC18156DBCA6BE2E1B8992FB811060C5 /* scrypt-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/scrypt-iOS/scrypt-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftRLP; - PRODUCT_NAME = "SwiftRLP-iOS"; + PRODUCT_MODULE_NAME = scrypt; + PRODUCT_NAME = "scrypt-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -4674,11 +5092,10 @@ }; name = Debug; }; - 9BF74490EC938556B96E2A3372C604DD /* Debug */ = { + 8318ED6D92F2B4739ABC4121A7D6A5F5 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7C70A16BA860E5B4A9A806F25EE3F472 /* CryptoSwift-macOS.xcconfig */; + baseConfigurationReference = A8E46FB728C72889788B6CF61184C08D /* CryptoSwift-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4700,33 +5117,32 @@ }; name = Debug; }; - 9F0CCACAE41FF43BAD49E0F5993ED010 /* Release */ = { + 87BCF7559B3D787B95147E557F40D9FD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C0E00E27FCA499ADCF69CE2096BEF87F /* EthereumAddress-iOS.xcconfig */; + baseConfigurationReference = C7945B901D104B12E76F7FC10461A3D5 /* BigInt-macOS.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap"; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/BigInt-macOS/BigInt-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumAddress; - PRODUCT_NAME = "EthereumAddress-iOS"; + PRODUCT_MODULE_NAME = BigInt; + PRODUCT_NAME = "BigInt-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; + SWIFT_VERSION = 4.0; }; name = Release; }; - A3625BB68C06D1FB0393AACB165DBA14 /* Debug */ = { + 8C5289CBBC5C4736B11BE5B4AC7797B4 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -4758,17 +5174,16 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", + "POD_CONFIGURATION_RELEASE=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -4779,234 +5194,236 @@ GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 4.2; SYMROOT = "${SRCROOT}/../build"; }; - name = Debug; + name = Release; }; - A46755FFCCE7D40941242CF696F73A1A /* Release */ = { + 901A8ABA1A0F32437C72ADA21170A7CE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 522579B02AF58D183F2AC531E3F33572 /* EthereumABI-iOS.xcconfig */; + baseConfigurationReference = 292D5B486A33EC84948DFFBEBBB0994D /* BigInt-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-iOS/EthereumABI-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-iOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/BigInt-iOS/BigInt-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumABI; - PRODUCT_NAME = "EthereumABI-iOS"; + PRODUCT_MODULE_NAME = BigInt; + PRODUCT_NAME = "BigInt-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; name = Release; }; - A895391A378F7146617E9C6F48AEF62C /* Debug */ = { + 9218FC7533C4852619D88A034E3A60EB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5992F89681D6639D6E83FBDCE269A688 /* SipHash-macOS.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/SipHash-macOS/SipHash-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/SipHash/SipHash-macOS.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SipHash; - PRODUCT_NAME = "SipHash-macOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; - }; - name = Debug; - }; - B1E495AD8FE6443520AEE1785D76980A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A5D9B32B104EA0A137D78B89D4D19D40 /* Pods-web3swift-macOS.release.xcconfig */; + baseConfigurationReference = B12A75E0FD8B52123CBAE9EEB4A42F3B /* Pods-web3swift-iOS_Tests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - B3F7C2C3054C9BA9D5FEAF7BBEB5B707 /* Debug */ = { + 961AECA1170955755D74EAD3E5819CE7 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 24B5C2F89100EAE084E4AF83DDE6303D /* Pods-web3swift-iOS_Tests.debug.xcconfig */; + baseConfigurationReference = 0C7ECBFABE9667C08C3E0CAA44F61507 /* SwiftRLP-iOS.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Headers/Public/SwiftRLP/SwiftRLP-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = SwiftRLP; + PRODUCT_NAME = "SwiftRLP-iOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.1; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - B43995674AACC46CADFF66DA426F6646 /* Debug */ = { + 9BA4D1A780562B562D9679AEBFE9FD74 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B6A0DADFE9809AB925F51CF651528B31 /* secp256k1_swift-iOS.xcconfig */; + baseConfigurationReference = 7019F3D58D3915C5DB778C7F37D6284D /* PromiseKit.root-CorePromise-Foundation.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap"; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.10; + MODULEMAP_FILE = "Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = secp256k1_swift; - PRODUCT_NAME = "secp256k1_swift-iOS"; + PRODUCT_MODULE_NAME = PromiseKit; + PRODUCT_NAME = "PromiseKit.root-CorePromise-Foundation"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Debug; + name = Release; }; - C0CAF3F30439464C0667B78715A340EF /* Debug */ = { + A1E878276796AB47C5B4B395EB4D5B14 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 522579B02AF58D183F2AC531E3F33572 /* EthereumABI-iOS.xcconfig */; + baseConfigurationReference = AFA11E6CA87C50B0BDC7B160EBC0C434 /* Result-macOS.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-iOS/EthereumABI-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-iOS.modulemap"; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/Result-macOS/Result-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = "Headers/Public/Result/Result-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumABI; - PRODUCT_NAME = "EthereumABI-iOS"; + PRODUCT_MODULE_NAME = Result; + PRODUCT_NAME = "Result-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; + SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; - TARGETED_DEVICE_FAMILY = "1,2"; + SWIFT_VERSION = 4.0; }; name = Debug; }; - C7DC73FCC3220DE12B4FC1DC930D7C08 /* Debug */ = { + A48BF3924ED430EE85AB984EBFF67E60 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4AA4C4E3B71B38DD9AC53FDE78CAE9EA /* PromiseKit.root-CorePromise-Foundation.xcconfig */; + baseConfigurationReference = E288A05D71D9B3234891B4B3FC6F24D6 /* EthereumAddress-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MODULEMAP_FILE = "Headers/Public/PromiseKit/PromiseKit.root-CorePromise-Foundation.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = PromiseKit; - PRODUCT_NAME = "PromiseKit.root-CorePromise-Foundation"; + PRODUCT_MODULE_NAME = EthereumAddress; + PRODUCT_NAME = "EthereumAddress-macOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.1; }; name = Debug; }; - CA44A93B91752AA83EC6CCB22764D527 /* Release */ = { + A5B3D4C098C19663DA18A79D25A7ADE5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7C70A16BA860E5B4A9A806F25EE3F472 /* CryptoSwift-macOS.xcconfig */; + baseConfigurationReference = B6C5B58BCA3B0F50FAC855B070978522 /* scrypt-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/CryptoSwift/CryptoSwift-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/scrypt-macOS/scrypt-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/scrypt/scrypt-macOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = CryptoSwift; - PRODUCT_NAME = "CryptoSwift-macOS"; + PRODUCT_MODULE_NAME = scrypt; + PRODUCT_NAME = "scrypt-macOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.1; + }; + name = Release; + }; + AE1423744796D7EF9A07819C3C6C1392 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8B09D00EA28B49D089629C1B3671E2D4 /* EthereumAddress-iOS.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EthereumAddress; + PRODUCT_NAME = "EthereumAddress-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 4.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; name = Release; }; - CB2C61730C420D7E1AED74B447061493 /* Debug */ = { + B43995674AACC46CADFF66DA426F6646 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 92CB38F782D33EF495F861851E047FA9 /* SipHash-iOS.xcconfig */; + baseConfigurationReference = 66AED7B1284F110412341823D0393172 /* secp256k1_swift-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/SipHash-iOS/SipHash-iOS-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/SipHash/SipHash-iOS.modulemap"; + MODULEMAP_FILE = "Headers/Public/secp256k1_swift/secp256k1_swift-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SipHash; - PRODUCT_NAME = "SipHash-iOS"; + PRODUCT_MODULE_NAME = secp256k1_swift; + PRODUCT_NAME = "secp256k1_swift-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -5016,11 +5433,10 @@ }; name = Debug; }; - CE9A0270AAF7D63017F506C720F01128 /* Release */ = { + C8108B31A2C5B6E3284D2405BCCB81CB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 330B8D8B0B8ACFFDF2B9292154D71642 /* secp256k1_swift-macOS.xcconfig */; + baseConfigurationReference = 8DB920805B0BCCB1D1D3A6508C722E73 /* secp256k1_swift-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5041,152 +5457,62 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.0; }; - name = Release; - }; - D01478928F4FB100D668550875693C34 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 4.2; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - D084C4436D808C9FF5CF8663846169E0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 82CF9E45F65C5A3FF604607C66EAC29D /* EthereumAddress-macOS.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumAddress; - PRODUCT_NAME = "EthereumAddress-macOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; - }; - name = Release; + name = Debug; }; - D4388CAD52CCCFCE7D0ED546E16E0F21 /* Debug */ = { + CB2C61730C420D7E1AED74B447061493 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 82CF9E45F65C5A3FF604607C66EAC29D /* EthereumAddress-macOS.xcconfig */; + baseConfigurationReference = F0F26E25773CB525159D46C5B6D1B376 /* SipHash-iOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_ENABLE_OBJC_WEAK = NO; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/SipHash-iOS/SipHash-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MODULEMAP_FILE = "Headers/Public/SipHash/SipHash-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumAddress; - PRODUCT_NAME = "EthereumAddress-macOS"; + PRODUCT_MODULE_NAME = SipHash; + PRODUCT_NAME = "SipHash-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - DA050F65EA0B807A45D539FACC7F117A /* Debug */ = { + D93A085BBB3F3DB53E09C76D03B7D41E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D1FD34D2C5C93A170139E5994B7F5D8D /* Result-macOS.xcconfig */; + baseConfigurationReference = F8ED5F0BBB8BFF1D7DBBB3AA0BE5EA7E /* EthereumABI-iOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - EXECUTABLE_PREFIX = lib; - GCC_PREFIX_HEADER = "Target Support Files/Result-macOS/Result-macOS-prefix.pch"; - MACOSX_DEPLOYMENT_TARGET = 10.9; - MODULEMAP_FILE = "Headers/Public/Result/Result-macOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-iOS/EthereumABI-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Result; - PRODUCT_NAME = "Result-macOS"; + PRODUCT_MODULE_NAME = EthereumABI; + PRODUCT_NAME = "EthereumABI-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = macosx; + SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 4.1; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; }; - name = Debug; + name = Release; }; DC8874F7FAB58896B3D6BBD17E8F3590 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3F1CF8D01D9020575F785235F3DA02E3 /* PromiseKit.xcconfig */; + baseConfigurationReference = 151AB966E2464DDE568760C553BC5E0B /* PromiseKit.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5209,61 +5535,57 @@ }; name = Debug; }; - EB39C1FA7B7F12063F7AE8333D2A4C21 /* Debug */ = { + DE04295E1615700CACA374399C0806DC /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2AD338DD23B43013308A65379BAEC16C /* BigInt-iOS.xcconfig */; + baseConfigurationReference = 838E20D48ECBA3CCA073FF52AA6BD234 /* Pods-web3swift-iOS_Tests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/BigInt-iOS/BigInt-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-iOS.modulemap"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = BigInt; - PRODUCT_NAME = "BigInt-iOS"; - PUBLIC_HEADERS_FOLDER_PATH = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - F5923572A54909C08EF28178F96E68FD /* Debug */ = { + EB39C1FA7B7F12063F7AE8333D2A4C21 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C0E00E27FCA499ADCF69CE2096BEF87F /* EthereumAddress-iOS.xcconfig */; + baseConfigurationReference = 292D5B486A33EC84948DFFBEBBB0994D /* BigInt-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MODULEMAP_FILE = "Headers/Public/EthereumAddress/EthereumAddress-iOS.modulemap"; + GCC_PREFIX_HEADER = "Target Support Files/BigInt-iOS/BigInt-iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MODULEMAP_FILE = "Headers/Public/BigInt/BigInt-iOS.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = EthereumAddress; - PRODUCT_NAME = "EthereumAddress-iOS"; + PRODUCT_MODULE_NAME = BigInt; + PRODUCT_NAME = "BigInt-iOS"; PUBLIC_HEADERS_FOLDER_PATH = ""; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.1; + SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; - F97777A80F699CB36568B3AB91C18336 /* Debug */ = { + F3BF1288D54656F49975981F0B96E1C1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B48543DD38BB8E1AB0953C926DBA6C3F /* EthereumABI-macOS.xcconfig */; + baseConfigurationReference = DC5A3935C9286BCD73BE84B59555BAAF /* EthereumABI-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CLANG_ENABLE_OBJC_WEAK = NO; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5284,13 +5606,12 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 4.1; }; - name = Debug; + name = Release; }; - FA1664274B2659B28BDF9A0DA85ACD2E /* Release */ = { + FCD345DF723556712B46545A4C2E2DB0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5992F89681D6639D6E83FBDCE269A688 /* SipHash-macOS.xcconfig */; + baseConfigurationReference = A4DE673E5AA2F431951809819265C70A /* SipHash-macOS.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; CODE_SIGN_IDENTITY = "-"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5314,7 +5635,7 @@ }; FD79E0FA8C9695ACC92727BA59ACBD09 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 89525730C7E22C66FB7ADAB11E2073A0 /* CryptoSwift-iOS.xcconfig */; + baseConfigurationReference = 8D1457D56859B3489B05547CE8ED69C6 /* CryptoSwift-iOS.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5338,23 +5659,83 @@ }; name = Release; }; + FD92A4AB123BCEE74A2E15D8A506390A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC5A3935C9286BCD73BE84B59555BAAF /* EthereumABI-macOS.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/EthereumABI-macOS/EthereumABI-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Headers/Public/EthereumABI/EthereumABI-macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = EthereumABI; + PRODUCT_NAME = "EthereumABI-macOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.1; + }; + name = Debug; + }; + FD9E0594BF99E339DA4C5C17E2603B75 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AFA11E6CA87C50B0BDC7B160EBC0C434 /* Result-macOS.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + EXECUTABLE_PREFIX = lib; + GCC_PREFIX_HEADER = "Target Support Files/Result-macOS/Result-macOS-prefix.pch"; + MACOSX_DEPLOYMENT_TARGET = 10.9; + MODULEMAP_FILE = "Headers/Public/Result/Result-macOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRIVATE_HEADERS_FOLDER_PATH = ""; + PRODUCT_MODULE_NAME = Result; + PRODUCT_NAME = "Result-macOS"; + PUBLIC_HEADERS_FOLDER_PATH = ""; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 4.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0D0EE0E6A1FF9BACF87641ECD817E450 /* Build configuration list for PBXNativeTarget "EthereumAddress-macOS" */ = { + 0E6082C161AE699CD11AFE38C72A8ECD /* Build configuration list for PBXNativeTarget "Result-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - D4388CAD52CCCFCE7D0ED546E16E0F21 /* Debug */, - D084C4436D808C9FF5CF8663846169E0 /* Release */, + A1E878276796AB47C5B4B395EB4D5B14 /* Debug */, + FD9E0594BF99E339DA4C5C17E2603B75 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0E6082C161AE699CD11AFE38C72A8ECD /* Build configuration list for PBXNativeTarget "Result-macOS" */ = { + 141FD473AD1560715F61FE6DEF71ABC2 /* Build configuration list for PBXNativeTarget "Pods-web3swift-macOS_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 56918893EF02BD4537B8F9CB08D32033 /* Debug */, + 6B81679F1C9E09B421ABE1F418B8E183 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 18D89CFC49958A2AEFEB770BD308BB8D /* Build configuration list for PBXNativeTarget "EthereumABI-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - DA050F65EA0B807A45D539FACC7F117A /* Debug */, - 477575EFA4C280367821CBC53C5C8953 /* Release */, + 1B976929144F35C872E7412BDC0A2D24 /* Debug */, + D93A085BBB3F3DB53E09C76D03B7D41E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5377,65 +5758,65 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 214041070FF7013C5D3B1D956DD404CF /* Build configuration list for PBXNativeTarget "scrypt-macOS" */ = { + 1CECEB0B7C138362EC31B34DC024C28B /* Build configuration list for PBXNativeTarget "Pods-web3swift-iOS_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8AFA5B5EA500725BE7FF28964AEEDA43 /* Debug */, - 1B8C9D978FDF5ED4199E530B793239D6 /* Release */, + DE04295E1615700CACA374399C0806DC /* Debug */, + 9218FC7533C4852619D88A034E3A60EB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 249649C0D306826B8AEC43AC3D978C98 /* Build configuration list for PBXNativeTarget "SipHash-macOS" */ = { + 214041070FF7013C5D3B1D956DD404CF /* Build configuration list for PBXNativeTarget "scrypt-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - A895391A378F7146617E9C6F48AEF62C /* Debug */, - FA1664274B2659B28BDF9A0DA85ACD2E /* Release */, + 06EF501F92FEA083E952C634974FB9BB /* Debug */, + A5B3D4C098C19663DA18A79D25A7ADE5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 249649C0D306826B8AEC43AC3D978C98 /* Build configuration list for PBXNativeTarget "SipHash-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - A3625BB68C06D1FB0393AACB165DBA14 /* Debug */, - D01478928F4FB100D668550875693C34 /* Release */, + 2B419FFCB8698725AEFF4AD6F3DA24B6 /* Debug */, + FCD345DF723556712B46545A4C2E2DB0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 34C02A2A41180F1C49A12F3C94BB6D39 /* Build configuration list for PBXNativeTarget "SwiftRLP-macOS" */ = { + 2528C5FE0545EDFF7366EE3D336B2926 /* Build configuration list for PBXNativeTarget "EthereumABI-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4F3205507D03A242BAB6D95A8806CF7D /* Debug */, - 41717A996D2F041A161913298508A8E9 /* Release */, + FD92A4AB123BCEE74A2E15D8A506390A /* Debug */, + F3BF1288D54656F49975981F0B96E1C1 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 41A0D4C0C65EE651AE692E52EC485A28 /* Build configuration list for PBXNativeTarget "EthereumABI-macOS" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - F97777A80F699CB36568B3AB91C18336 /* Debug */, - 32114FB1ED27B364D53BC6C8665A9C2E /* Release */, + 410940BCADE683311D0516B99A5AB80D /* Debug */, + 8C5289CBBC5C4736B11BE5B4AC7797B4 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 47C2AA14D9BBB2B7CC5629CE1C553C1B /* Build configuration list for PBXNativeTarget "BigInt-iOS" */ = { + 34C02A2A41180F1C49A12F3C94BB6D39 /* Build configuration list for PBXNativeTarget "SwiftRLP-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - EB39C1FA7B7F12063F7AE8333D2A4C21 /* Debug */, - 901A8ABA1A0F32437C72ADA21170A7CE /* Release */, + 132C53CD9155D5AD14E84583836EE736 /* Debug */, + 02E5FCC47E212D05EE62CCBC87A59BAD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 485FEBD24BA1178535E81D093E91F648 /* Build configuration list for PBXNativeTarget "EthereumABI-iOS" */ = { + 47C2AA14D9BBB2B7CC5629CE1C553C1B /* Build configuration list for PBXNativeTarget "BigInt-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - C0CAF3F30439464C0667B78715A340EF /* Debug */, - A46755FFCCE7D40941242CF696F73A1A /* Release */, + EB39C1FA7B7F12063F7AE8333D2A4C21 /* Debug */, + 901A8ABA1A0F32437C72ADA21170A7CE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5458,11 +5839,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 62550B15363844675EDB2F185CB619A8 /* Build configuration list for PBXNativeTarget "Pods-web3swift-iOS_Tests" */ = { + 6F857D6C3879D581B7A61D082F02517D /* Build configuration list for PBXNativeTarget "EthereumAddress-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - B3F7C2C3054C9BA9D5FEAF7BBEB5B707 /* Debug */, - 83210CA27027B561A7B5E007B06CA4D7 /* Release */, + 5DBAB9597AF8F0467DF2C538E82A1569 /* Debug */, + AE1423744796D7EF9A07819C3C6C1392 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5470,8 +5851,8 @@ 7F2C38356A69928AE969993F66D26974 /* Build configuration list for PBXNativeTarget "secp256k1_swift-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 11AFE4FF91D289E194438B54F1861BDC /* Debug */, - CE9A0270AAF7D63017F506C720F01128 /* Release */, + C8108B31A2C5B6E3284D2405BCCB81CB /* Debug */, + 0D12F52D2FC6B275C845A455D3C53897 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5479,17 +5860,8 @@ 886328E93BEAC18F43717EDABA0C12BF /* Build configuration list for PBXNativeTarget "Pods-web3swift-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 722FA21DE6A0ACAC9DD0E405C5BF7D1A /* Debug */, - B1E495AD8FE6443520AEE1785D76980A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 91E81CC04B48CAA0AA6D1FB891F14331 /* Build configuration list for PBXNativeTarget "Pods-web3swift-macOS_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 8518F8D713080EF1D6A105CF2021EC99 /* Debug */, - 4CA9B35348640CA3DA1AAB6A01AB2BE4 /* Release */, + 023D8F9D8E0EC5E1CAEB1DD4989B4439 /* Debug */, + 621044FBAB13E81AD237F7A545994E0C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5497,8 +5869,8 @@ 985657F07458E31EEED8115F732C90EA /* Build configuration list for PBXNativeTarget "PromiseKit.root-CorePromise-Foundation" */ = { isa = XCConfigurationList; buildConfigurations = ( - C7DC73FCC3220DE12B4FC1DC930D7C08 /* Debug */, - 02BEABF91F94549686F3C50DDE0DD7D9 /* Release */, + 3598EF90C0B2EBB839D394E5FCFC63BE /* Debug */, + 9BA4D1A780562B562D9679AEBFE9FD74 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5515,8 +5887,8 @@ A1A3D7F09A5AFD2BD4DA3D3CDACBBCFC /* Build configuration list for PBXNativeTarget "BigInt-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 55D3105FA71C4B27F6E2350877CDAF39 /* Debug */, - 190110B1825C1B9F5BF5A2EBD21E974B /* Release */, + 6883B9EDC70FD3E947697DEBE31DC9AD /* Debug */, + 87BCF7559B3D787B95147E557F40D9FD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -5530,29 +5902,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E5D6FA6799A44BF6B2EA944785695731 /* Build configuration list for PBXNativeTarget "SwiftRLP-iOS" */ = { + C5CFDB7E31E89F322FF8F838A76F9F6D /* Build configuration list for PBXNativeTarget "EthereumAddress-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 961AECA1170955755D74EAD3E5819CE7 /* Debug */, - 7611FC9ACC0308E2A87B7CF5FC557084 /* Release */, + A48BF3924ED430EE85AB984EBFF67E60 /* Debug */, + 05DE8CD3347758F2BB7139A06B0A0DBE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F03040809733F3691A82F4D1E80B6BA3 /* Build configuration list for PBXNativeTarget "CryptoSwift-macOS" */ = { + E5D6FA6799A44BF6B2EA944785695731 /* Build configuration list for PBXNativeTarget "SwiftRLP-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9BF74490EC938556B96E2A3372C604DD /* Debug */, - CA44A93B91752AA83EC6CCB22764D527 /* Release */, + 961AECA1170955755D74EAD3E5819CE7 /* Debug */, + 7611FC9ACC0308E2A87B7CF5FC557084 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F43F6591A165353F2FE927771835E799 /* Build configuration list for PBXNativeTarget "EthereumAddress-iOS" */ = { + F03040809733F3691A82F4D1E80B6BA3 /* Build configuration list for PBXNativeTarget "CryptoSwift-macOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - F5923572A54909C08EF28178F96E68FD /* Debug */, - 9F0CCACAE41FF43BAD49E0F5993ED010 /* Release */, + 8318ED6D92F2B4739ABC4121A7D6A5F5 /* Debug */, + 538E89D99F6E2D546249D1EE74A6DBFD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.xcconfig b/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.xcconfig index e0dbc8dd1..a4f59a42b 100644 --- a/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.xcconfig +++ b/Pods/Target Support Files/BigInt-iOS/BigInt-iOS.xcconfig @@ -1,7 +1,8 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.xcconfig b/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.xcconfig index d943bc66b..9c380b72f 100644 --- a/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.xcconfig +++ b/Pods/Target Support Files/BigInt-macOS/BigInt-macOS.xcconfig @@ -1,7 +1,8 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.xcconfig b/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.xcconfig index b97f0dccb..457ce5a30 100644 --- a/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.xcconfig +++ b/Pods/Target Support Files/CryptoSwift-iOS/CryptoSwift-iOS.xcconfig @@ -1,7 +1,7 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_UNROLL_LOOPS = YES -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.xcconfig b/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.xcconfig index 5432418cb..8f6da58dd 100644 --- a/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.xcconfig +++ b/Pods/Target Support Files/CryptoSwift-macOS/CryptoSwift-macOS.xcconfig @@ -1,7 +1,7 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_UNROLL_LOOPS = YES -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.xcconfig b/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.xcconfig index 56996eb63..8cae10266 100644 --- a/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.xcconfig +++ b/Pods/Target Support Files/EthereumABI-iOS/EthereumABI-iOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EthereumABI" "${PODS_ROOT}/Headers/Public" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.xcconfig b/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.xcconfig index a8186f34e..a23d08c29 100644 --- a/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.xcconfig +++ b/Pods/Target Support Files/EthereumABI-macOS/EthereumABI-macOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EthereumABI" "${PODS_ROOT}/Headers/Public" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.xcconfig b/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.xcconfig index 28d69dba6..48e0dbaf3 100644 --- a/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.xcconfig +++ b/Pods/Target Support Files/EthereumAddress-iOS/EthereumAddress-iOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EthereumAddress" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.xcconfig b/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.xcconfig index 0a9348865..26e47ca50 100644 --- a/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.xcconfig +++ b/Pods/Target Support Files/EthereumAddress-macOS/EthereumAddress-macOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EthereumAddress" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS-resources.sh b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS-resources.sh new file mode 100755 index 000000000..345301f2c --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.debug.xcconfig b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.debug.xcconfig index 322fcb5ab..2aba99f13 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.debug.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.debug.xcconfig @@ -1,11 +1,11 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -l"BigInt-iOS" -l"CryptoSwift-iOS" -l"EthereumABI-iOS" -l"EthereumAddress-iOS" -l"PromiseKit" -l"Result-iOS" -l"SipHash-iOS" -l"SwiftRLP-iOS" -l"scrypt-iOS" -l"secp256k1_swift-iOS" -framework "Foundation" -framework "UIKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" diff --git a/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.release.xcconfig b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.release.xcconfig index 322fcb5ab..2aba99f13 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.release.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-iOS/Pods-web3swift-iOS.release.xcconfig @@ -1,11 +1,11 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -l"BigInt-iOS" -l"CryptoSwift-iOS" -l"EthereumABI-iOS" -l"EthereumAddress-iOS" -l"PromiseKit" -l"Result-iOS" -l"SipHash-iOS" -l"SwiftRLP-iOS" -l"scrypt-iOS" -l"secp256k1_swift-iOS" -framework "Foundation" -framework "UIKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.markdown index 102af7538..552db3ca0 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.markdown @@ -1,3 +1,199 @@ # Acknowledgements This application makes use of the following third party libraries: + +## BigInt + + +Copyright (c) 2016-2017 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## CryptoSwift + +Copyright (C) 2014-2017 Marcin Krzyżanowski +This software is provided 'as-is', without any express or implied warranty. + +In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required. +- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +- This notice may not be removed or altered from any source or binary distribution. +- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).' + +## EthereumABI + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## EthereumAddress + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## PromiseKit + +Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Result + +The MIT License (MIT) + +Copyright (c) 2014 Rob Rix + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## SipHash + +The MIT License (MIT) + +Copyright (c) 2016 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## SwiftRLP + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## scrypt + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## secp256k1_swift + +Copyright 2018 Alex Vlasov (bankexfoundation.org) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.plist index 7acbad1ea..22c6b993c 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-acknowledgements.plist @@ -12,6 +12,262 @@ Type PSGroupSpecifier + + FooterText + +Copyright (c) 2016-2017 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + BigInt + Type + PSGroupSpecifier + + + FooterText + Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin.krzyzanowski@gmail.com> +This software is provided 'as-is', without any express or implied warranty. + +In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required. +- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +- This notice may not be removed or altered from any source or binary distribution. +- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).' + License + Attribution + Title + CryptoSwift + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + EthereumABI + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + EthereumAddress + Type + PSGroupSpecifier + + + FooterText + Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + PromiseKit + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2014 Rob Rix + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + License + MIT + Title + Result + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2016 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SipHash + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + SwiftRLP + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + scrypt + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <av@bankexfoundation.org> (bankexfoundation.org) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + secp256k1_swift + Type + PSGroupSpecifier + FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-frameworks.sh b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-frameworks.sh new file mode 100755 index 000000000..08e3eaaca --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-frameworks.sh @@ -0,0 +1,146 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-resources.sh b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-resources.sh new file mode 100755 index 000000000..345301f2c --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-umbrella.h b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-umbrella.h new file mode 100644 index 000000000..cd2e38b39 --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_web3swift_iOS_TestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_web3swift_iOS_TestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.debug.xcconfig b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.debug.xcconfig index a0c1416c9..ca8c904f7 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.debug.xcconfig @@ -1,10 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -framework "Foundation" -framework "UIKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap new file mode 100644 index 000000000..ec263e9a3 --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.modulemap @@ -0,0 +1,6 @@ +module Pods_web3swift_iOS_Tests { + umbrella header "Pods-web3swift-iOS_Tests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.release.xcconfig b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.release.xcconfig index a0c1416c9..ca8c904f7 100644 --- a/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.release.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-iOS_Tests/Pods-web3swift-iOS_Tests.release.xcconfig @@ -1,10 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -framework "Foundation" -framework "UIKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit" "${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS" diff --git a/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS-resources.sh b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS-resources.sh new file mode 100755 index 000000000..345301f2c --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig index 7eb95d9be..53ea88378 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig @@ -1,11 +1,11 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -l"BigInt-macOS" -l"CryptoSwift-macOS" -l"EthereumABI-macOS" -l"EthereumAddress-macOS" -l"PromiseKit.root-CorePromise-Foundation" -l"Result-macOS" -l"SipHash-macOS" -l"SwiftRLP-macOS" -l"scrypt-macOS" -l"secp256k1_swift-macOS" -framework "Foundation" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" diff --git a/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.release.xcconfig b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.release.xcconfig index 7eb95d9be..53ea88378 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.release.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.release.xcconfig @@ -1,11 +1,11 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -l"BigInt-macOS" -l"CryptoSwift-macOS" -l"EthereumABI-macOS" -l"EthereumAddress-macOS" -l"PromiseKit.root-CorePromise-Foundation" -l"Result-macOS" -l"SipHash-macOS" -l"SwiftRLP-macOS" -l"scrypt-macOS" -l"secp256k1_swift-macOS" -framework "Foundation" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.markdown b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.markdown index 102af7538..552db3ca0 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.markdown @@ -1,3 +1,199 @@ # Acknowledgements This application makes use of the following third party libraries: + +## BigInt + + +Copyright (c) 2016-2017 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## CryptoSwift + +Copyright (C) 2014-2017 Marcin Krzyżanowski +This software is provided 'as-is', without any express or implied warranty. + +In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required. +- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +- This notice may not be removed or altered from any source or binary distribution. +- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).' + +## EthereumABI + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## EthereumAddress + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## PromiseKit + +Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Result + +The MIT License (MIT) + +Copyright (c) 2014 Rob Rix + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## SipHash + +The MIT License (MIT) + +Copyright (c) 2016 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## SwiftRLP + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## scrypt + +Copyright 2018 Alex Vlasov + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +## secp256k1_swift + +Copyright 2018 Alex Vlasov (bankexfoundation.org) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.plist b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.plist index 7acbad1ea..22c6b993c 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-acknowledgements.plist @@ -12,6 +12,262 @@ Type PSGroupSpecifier + + FooterText + +Copyright (c) 2016-2017 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + BigInt + Type + PSGroupSpecifier + + + FooterText + Copyright (C) 2014-2017 Marcin Krzyżanowski <marcin.krzyzanowski@gmail.com> +This software is provided 'as-is', without any express or implied warranty. + +In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose,including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + +- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation is required. +- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +- This notice may not be removed or altered from any source or binary distribution. +- Redistributions of any form whatsoever must retain the following acknowledgment: 'This product includes software developed by the "Marcin Krzyzanowski" (http://krzyzanowskim.com/).' + License + Attribution + Title + CryptoSwift + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + EthereumABI + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + EthereumAddress + Type + PSGroupSpecifier + + + FooterText + Copyright 2016-present, Max Howell; mxcl@me.com + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + PromiseKit + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2014 Rob Rix + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + License + MIT + Title + Result + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2016 Károly Lőrentey + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SipHash + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + SwiftRLP + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <alex.m.vlasov@gmail.com> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + scrypt + Type + PSGroupSpecifier + + + FooterText + Copyright 2018 Alex Vlasov <av@bankexfoundation.org> (bankexfoundation.org) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + License + Apache License 2.0 + Title + secp256k1_swift + Type + PSGroupSpecifier + FooterText Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-frameworks.sh b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-frameworks.sh new file mode 100755 index 000000000..08e3eaaca --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-frameworks.sh @@ -0,0 +1,146 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + if [ -r "$source" ]; then + # Copy the dSYM into a the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .framework.dSYM "$source")" + binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then + strip_invalid_archs "$binary" + fi + + if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" + fi + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + STRIP_BINARY_RETVAL=0 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=1 +} + +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-resources.sh b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-resources.sh new file mode 100755 index 000000000..345301f2c --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-resources.sh @@ -0,0 +1,118 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then + # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy + # resources to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +case "${TARGETED_DEVICE_FAMILY:-}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + 3) + TARGET_DEVICE_ARGS="--target-device tv" + ;; + 4) + TARGET_DEVICE_ARGS="--target-device watch" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" || true + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "${PODS_ROOT}*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + else + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" + fi +fi diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-umbrella.h b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-umbrella.h new file mode 100644 index 000000000..4d1321871 --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_web3swift_macOS_TestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_web3swift_macOS_TestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.debug.xcconfig b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.debug.xcconfig index c57d86b33..0b3f4300c 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.debug.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.debug.xcconfig @@ -1,10 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -framework "Foundation" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap new file mode 100644 index 000000000..650cf4caf --- /dev/null +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.modulemap @@ -0,0 +1,6 @@ +module Pods_web3swift_macOS_Tests { + umbrella header "Pods-web3swift-macOS_Tests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.release.xcconfig b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.release.xcconfig index c57d86b33..0b3f4300c 100644 --- a/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.release.xcconfig +++ b/Pods/Target Support Files/Pods-web3swift-macOS_Tests/Pods-web3swift-macOS_Tests.release.xcconfig @@ -1,10 +1,12 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EthereumABI" "${PODS_ROOT}/Headers/Public/EthereumAddress" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/SwiftRLP" "${PODS_ROOT}/Headers/Public/scrypt" "${PODS_ROOT}/Headers/Public/secp256k1_swift" -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" +OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EthereumABI" -isystem "${PODS_ROOT}/Headers/Public/EthereumAddress" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/SwiftRLP" -isystem "${PODS_ROOT}/Headers/Public/scrypt" -isystem "${PODS_ROOT}/Headers/Public/secp256k1_swift" OTHER_LDFLAGS = $(inherited) -ObjC -framework "Foundation" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" +OTHER_SWIFT_FLAGS = $(inherited) -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS/EthereumABI.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS/EthereumAddress.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation/PromiseKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS/Result.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS/SwiftRLP.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS/scrypt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS/secp256k1_swift.modulemap" $(inherited) "-D" "COCOAPODS" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumABI-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/EthereumAddress-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation" "${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/scrypt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS" diff --git a/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig b/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig index cc61a17f5..ab6043e58 100644 --- a/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig +++ b/Pods/Target Support Files/PromiseKit.root-CorePromise-Foundation/PromiseKit.root-CorePromise-Foundation.xcconfig @@ -1,7 +1,8 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit.root-CorePromise-Foundation GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -DPMKCocoaPods +OTHER_LDFLAGS = -framework "Foundation" +OTHER_SWIFT_FLAGS = $(inherited) -DPMKCocoaPods $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/PromiseKit/PromiseKit.xcconfig b/Pods/Target Support Files/PromiseKit/PromiseKit.xcconfig index a385c9355..b5a065a40 100644 --- a/Pods/Target Support Files/PromiseKit/PromiseKit.xcconfig +++ b/Pods/Target Support Files/PromiseKit/PromiseKit.xcconfig @@ -1,7 +1,8 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PromiseKit GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -DPMKCocoaPods +OTHER_LDFLAGS = -framework "Foundation" -framework "UIKit" +OTHER_SWIFT_FLAGS = $(inherited) -DPMKCocoaPods $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/Result-iOS/Result-iOS.xcconfig b/Pods/Target Support Files/Result-iOS/Result-iOS.xcconfig index 7145d7ce4..6c599b44f 100644 --- a/Pods/Target Support Files/Result-iOS/Result-iOS.xcconfig +++ b/Pods/Target Support Files/Result-iOS/Result-iOS.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Result-iOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/Result-macOS/Result-macOS.xcconfig b/Pods/Target Support Files/Result-macOS/Result-macOS.xcconfig index 351b2e81b..c096cab38 100644 --- a/Pods/Target Support Files/Result-macOS/Result-macOS.xcconfig +++ b/Pods/Target Support Files/Result-macOS/Result-macOS.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Result-macOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.xcconfig b/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.xcconfig index 2f73e675b..9be0ed1e8 100644 --- a/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.xcconfig +++ b/Pods/Target Support Files/SipHash-iOS/SipHash-iOS.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.xcconfig b/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.xcconfig index 6e6389570..5b24b85bc 100644 --- a/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.xcconfig +++ b/Pods/Target Support Files/SipHash-macOS/SipHash-macOS.xcconfig @@ -1,6 +1,6 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.xcconfig b/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.xcconfig index 882644d9a..5f8786f82 100644 --- a/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.xcconfig +++ b/Pods/Target Support Files/SwiftRLP-iOS/SwiftRLP-iOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-iOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SwiftRLP" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-iOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-iOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.xcconfig b/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.xcconfig index 1c0929a8d..d600c7572 100644 --- a/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.xcconfig +++ b/Pods/Target Support Files/SwiftRLP-macOS/SwiftRLP-macOS.xcconfig @@ -2,8 +2,9 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftRLP-macOS DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SwiftRLP" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS" "${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/BigInt-macOS/BigInt.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SipHash-macOS/SipHash.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} diff --git a/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.xcconfig b/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.xcconfig index 3fc6d9e54..2b672fb1c 100644 --- a/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.xcconfig +++ b/Pods/Target Support Files/scrypt-iOS/scrypt-iOS.xcconfig @@ -3,8 +3,9 @@ DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_UNROLL_LOOPS = YES HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/scrypt" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} @@ -14,6 +15,6 @@ SKIP_INSTALL = YES SWIFT_COMPILATION_MODE = wholemodule SWIFT_DISABLE_SAFETY_CHECKS = YES SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-iOS" SWIFT_OPTIMIZATION_LEVEL = -O SWIFT_WHOLE_MODULE_OPTIMIZATION = YES diff --git a/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.xcconfig b/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.xcconfig index 36188d342..fa117ea0d 100644 --- a/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.xcconfig +++ b/Pods/Target Support Files/scrypt-macOS/scrypt-macOS.xcconfig @@ -3,8 +3,9 @@ DEFINES_MODULE = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 GCC_UNROLL_LOOPS = YES HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/scrypt" "${PODS_ROOT}/Headers/Public" +LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS/CryptoSwift.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} @@ -14,6 +15,6 @@ SKIP_INSTALL = YES SWIFT_COMPILATION_MODE = wholemodule SWIFT_DISABLE_SAFETY_CHECKS = YES SWIFT_ENFORCE_EXCLUSIVE_ACCESS = compile-time -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" $(PODS_TARGET_SRCROOT)/scrypt +SWIFT_INCLUDE_PATHS = $(inherited) $(PODS_TARGET_SRCROOT)/scrypt "${PODS_CONFIGURATION_BUILD_DIR}/CryptoSwift-macOS" SWIFT_OPTIMIZATION_LEVEL = -O SWIFT_WHOLE_MODULE_OPTIMIZATION = YES diff --git a/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.xcconfig b/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.xcconfig index d06a727b8..d85677eb8 100644 --- a/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.xcconfig +++ b/Pods/Target Support Files/secp256k1_swift-iOS/secp256k1_swift-iOS.xcconfig @@ -1,12 +1,12 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-iOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/secp256k1_swift" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/secp256k1" -OTHER_CFLAGS = -DHAVE_CONFIG_H=1 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-shorten-64-to-32 -Wno-conditional-uninitialized -Wno-unused-function -Wno-long-long -Wno-overlength-strings -O3 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_CFLAGS = $(inherited) -DHAVE_CONFIG_H=1 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-shorten-64-to-32 -Wno-conditional-uninitialized -Wno-unused-function -Wno-long-long -Wno-overlength-strings -O3 +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/secp256k1_swift PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = ${PODS_ROOT} +SWIFT_INCLUDE_PATHS = $(inherited) ${PODS_ROOT} diff --git a/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig b/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig index a9de3f41e..931e90a12 100644 --- a/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig +++ b/Pods/Target Support Files/secp256k1_swift-macOS/secp256k1_swift-macOS.xcconfig @@ -1,12 +1,12 @@ CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/secp256k1_swift-macOS GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/secp256k1_swift" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/secp256k1" -OTHER_CFLAGS = -DHAVE_CONFIG_H=1 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-shorten-64-to-32 -Wno-conditional-uninitialized -Wno-unused-function -Wno-long-long -Wno-overlength-strings -O3 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" +OTHER_CFLAGS = $(inherited) -DHAVE_CONFIG_H=1 -pedantic -Wall -Wextra -Wcast-align -Wnested-externs -Wshadow -Wstrict-prototypes -Wno-shorten-64-to-32 -Wno-conditional-uninitialized -Wno-unused-function -Wno-long-long -Wno-overlength-strings -O3 +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/secp256k1_swift PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = ${PODS_ROOT} +SWIFT_INCLUDE_PATHS = $(inherited) ${PODS_ROOT} diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index 63b58b98a..239c81574 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -25,7 +25,7 @@ protocol IERC777 { func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction } -// This namespace contains functions to work with ERC721 tokens. +// This namespace contains functions to work with ERC777 tokens. // can be imperatively read and saved public class ERC777: IERC20, IERC777 { From 22ff0166f6df39f2e9f0bddad990475970b3e26e Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 04:07:24 +0300 Subject: [PATCH 24/28] added 888 --- web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift diff --git a/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift new file mode 100644 index 000000000..06b8d1cff --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift @@ -0,0 +1,9 @@ +// +// Web3+ERC888.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 15/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation From 30cc7f47eb74f08f3e4098946bd9923a0c2d1809 Mon Sep 17 00:00:00 2001 From: BaldyAsh Date: Sat, 15 Dec 2018 04:07:36 +0300 Subject: [PATCH 25/28] added 888 and some fixes to it --- web3swift.xcodeproj/project.pbxproj | 12 ++ .../ERC888/Web3+ERC888.swift | 132 ++++++++++++++++++ web3swift/Web3/Classes/Web3+Utils.swift | 4 + 3 files changed, 148 insertions(+) diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 002a20d80..47c5bc527 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -216,6 +216,7 @@ E279C9F521C47B4A0081695F /* Web3+ERC777.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F421C47B4A0081695F /* Web3+ERC777.swift */; }; E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9F721C47CD00081695F /* Web3+ERC820.swift */; }; E279C9FB21C4860F0081695F /* Web3+ERC1400.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9FA21C4860F0081695F /* Web3+ERC1400.swift */; }; + E279C9FE21C48A570081695F /* Web3+ERC888.swift in Sources */ = {isa = PBXBuildFile; fileRef = E279C9FD21C48A570081695F /* Web3+ERC888.swift */; }; E2DCA653218C875100F94FBA /* web3swift_ENS_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81A7B2782143C978004CD2C7 /* web3swift_ENS_Tests.swift */; }; E2DCA654218C879900F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; @@ -400,6 +401,7 @@ E279C9F421C47B4A0081695F /* Web3+ERC777.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC777.swift"; sourceTree = ""; }; E279C9F721C47CD00081695F /* Web3+ERC820.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC820.swift"; sourceTree = ""; }; E279C9FA21C4860F0081695F /* Web3+ERC1400.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1400.swift"; sourceTree = ""; }; + E279C9FD21C48A570081695F /* Web3+ERC888.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC888.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; @@ -620,6 +622,7 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E279C9FC21C48A430081695F /* ERC888 */, E279C9F921C484400081695F /* ERC1400 */, E279C9F621C47CC10081695F /* ERC820 */, E279C9F321C47B3B0081695F /* ERC777 */, @@ -991,6 +994,14 @@ path = ERC1400; sourceTree = ""; }; + E279C9FC21C48A430081695F /* ERC888 */ = { + isa = PBXGroup; + children = ( + E279C9FD21C48A570081695F /* Web3+ERC888.swift */, + ); + path = ERC888; + sourceTree = ""; + }; E2E94C5E2177886C005F54A0 /* ERC721 */ = { isa = PBXGroup; children = ( @@ -1352,6 +1363,7 @@ 8113D2CE1FD7E1590074282C /* EthereumTransaction.swift in Sources */, 81A1821F20D676BC0016741F /* Promise+Web3+Eth+GetTransactionCount.swift in Sources */, 81A1821520D5A2700016741F /* Promise+Web3+Eth+GetBalance.swift in Sources */, + E279C9FE21C48A570081695F /* Web3+ERC888.swift in Sources */, 81A1823C20D79C270016741F /* Promise+Web3+Eth+Call.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift index 06b8d1cff..48f5fcee7 100644 --- a/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift +++ b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift @@ -7,3 +7,135 @@ // import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +protocol IERC888 { + func getBalance(account: EthereumAddress) throws -> BigUInt + func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction +} + +// This namespace contains functions to work with ERC888 tokens. +// variables are lazyly evaluated or global token information (name, ticker, total supply) +// can be imperatively read and saved +public class ERC888: IERC888 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(Web3.Utils.erc888ABI, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + +} + diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index d91aad10d..46e1d59c7 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -69,6 +69,10 @@ extension Web3.Utils { /// Precoded "cold wallet" (private key controlled) address. Basically - only a payable fallback function. public static var coldWalletABI = "[{\"payable\":true,\"type\":\"fallback\"}]" + /// TODO: - Need to make it right + /// Precoded ERC888 contracts ABI. Output parameters are named for ease of use. + public static var erc888ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + /// Precoded ERC20 contracts ABI. Output parameters are named for ease of use. public static var erc20ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" From 607a4e308ec6fd6fcc8a7a813a8d23e58351536d Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Thu, 20 Dec 2018 04:04:18 +0300 Subject: [PATCH 26/28] lot of fixies in ercs. added ercs: 1410, 1594, 1633, 1643, 1644, 1376, 1155, 721x --- web3swift.xcodeproj/project.pbxproj | 96 + .../ERC1155/Web3+ERC1155.swift | 150 ++ .../ERC1376/Web3+ERC1376.swift | 505 +++++ .../ERC1400/Web3+ERC1400.swift | 246 ++- .../ERC1410/Web3+ERC1410.swift | 667 +++++++ .../ERC1594/Web3+ERC1594.swift | 412 ++++ .../ERC1633/Web3+ERC1633.swift | 257 +++ .../ERC1643/Web3+ERC1643.swift | 269 +++ .../ERC1644/Web3+ERC1644.swift | 285 +++ .../ERC165/Web3+ERC165.swift | 1 + .../ERC20/Web3+ERC20.swift | 29 +- .../ERC721/Web3+ERC721.swift | 29 +- .../ERC721x/Web3+ERC721x.swift | 315 +++ .../ERC777/Web3+ERC777.swift | 123 +- .../ERC820/Web3+ERC820.swift | 3 +- .../ERC888/Web3+ERC888.swift | 10 +- web3swift/Web3/Classes/Web3+Utils.swift | 1757 +++++++++++++++++ 17 files changed, 5030 insertions(+), 124 deletions(-) create mode 100644 web3swift/PrecompiledContracts/ERC1155/Web3+ERC1155.swift create mode 100644 web3swift/PrecompiledContracts/ERC1376/Web3+ERC1376.swift create mode 100644 web3swift/PrecompiledContracts/ERC1410/Web3+ERC1410.swift create mode 100644 web3swift/PrecompiledContracts/ERC1594/Web3+ERC1594.swift create mode 100644 web3swift/PrecompiledContracts/ERC1633/Web3+ERC1633.swift create mode 100644 web3swift/PrecompiledContracts/ERC1643/Web3+ERC1643.swift create mode 100644 web3swift/PrecompiledContracts/ERC1644/Web3+ERC1644.swift create mode 100644 web3swift/PrecompiledContracts/ERC721x/Web3+ERC721x.swift diff --git a/web3swift.xcodeproj/project.pbxproj b/web3swift.xcodeproj/project.pbxproj index 47c5bc527..1ad924e6c 100755 --- a/web3swift.xcodeproj/project.pbxproj +++ b/web3swift.xcodeproj/project.pbxproj @@ -222,6 +222,14 @@ E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; E2DCA656218C87A500F94FBA /* ENS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2E668CD214F8A7B00C3CC2D /* ENS.swift */; }; E2DCA657218C87A500F94FBA /* ENSResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B219DC162154F3EE0035BF94 /* ENSResolver.swift */; }; + E2F8081F21CA90BA00B6BF15 /* Web3+ERC1410.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8081E21CA90BA00B6BF15 /* Web3+ERC1410.swift */; }; + E2F8082421CA9C3B00B6BF15 /* Web3+ERC1594.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8082321CA9C3B00B6BF15 /* Web3+ERC1594.swift */; }; + E2F8082721CA9F3100B6BF15 /* Web3+ERC1644.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8082621CA9F3100B6BF15 /* Web3+ERC1644.swift */; }; + E2F8082A21CAA07000B6BF15 /* Web3+ERC1643.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8082921CAA07000B6BF15 /* Web3+ERC1643.swift */; }; + E2F8082D21CB009A00B6BF15 /* Web3+ERC1633.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8082C21CB009A00B6BF15 /* Web3+ERC1633.swift */; }; + E2F8083021CB096D00B6BF15 /* Web3+ERC721x.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8082F21CB096D00B6BF15 /* Web3+ERC721x.swift */; }; + E2F8083321CB0EF300B6BF15 /* Web3+ERC1155.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8083221CB0EF300B6BF15 /* Web3+ERC1155.swift */; }; + E2F8083621CB142000B6BF15 /* Web3+ERC1376.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F8083521CB142000B6BF15 /* Web3+ERC1376.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -404,6 +412,14 @@ E279C9FD21C48A570081695F /* Web3+ERC888.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC888.swift"; sourceTree = ""; }; E2C590752152835400FF53D3 /* JSONRPCrequestDispatcher+ObjC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JSONRPCrequestDispatcher+ObjC.swift"; sourceTree = ""; }; E2E94C5F217788E0005F54A0 /* Web3+ERC721.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721.swift"; sourceTree = ""; }; + E2F8081E21CA90BA00B6BF15 /* Web3+ERC1410.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1410.swift"; sourceTree = ""; }; + E2F8082321CA9C3B00B6BF15 /* Web3+ERC1594.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1594.swift"; sourceTree = ""; }; + E2F8082621CA9F3100B6BF15 /* Web3+ERC1644.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1644.swift"; sourceTree = ""; }; + E2F8082921CAA07000B6BF15 /* Web3+ERC1643.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1643.swift"; sourceTree = ""; }; + E2F8082C21CB009A00B6BF15 /* Web3+ERC1633.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1633.swift"; sourceTree = ""; }; + E2F8082F21CB096D00B6BF15 /* Web3+ERC721x.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC721x.swift"; sourceTree = ""; }; + E2F8083221CB0EF300B6BF15 /* Web3+ERC1155.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1155.swift"; sourceTree = ""; }; + E2F8083521CB142000B6BF15 /* Web3+ERC1376.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Web3+ERC1376.swift"; sourceTree = ""; }; FB43EC035C593F9E5A3644B6 /* Pods-web3swift-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-web3swift-macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-web3swift-macOS/Pods-web3swift-macOS.debug.xcconfig"; sourceTree = ""; }; FC1E6C115639177F2629E42A /* Pods_web3swift_osx.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_web3swift_osx.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ @@ -622,6 +638,14 @@ 8159C50921343EF900197B91 /* PrecompiledContracts */ = { isa = PBXGroup; children = ( + E2F8083421CB140E00B6BF15 /* ERC1376 */, + E2F8083121CB0ED400B6BF15 /* ERC1155 */, + E2F8082E21CB095A00B6BF15 /* ERC721x */, + E2F8082B21CB008800B6BF15 /* ERC1633 */, + E2F8082821CAA05C00B6BF15 /* ERC1643 */, + E2F8082521CA9F1400B6BF15 /* ERC1644 */, + E2F8082221CA9C1600B6BF15 /* ERC1594 */, + E2F8081D21CA8F5800B6BF15 /* ERC1410 */, E279C9FC21C48A430081695F /* ERC888 */, E279C9F921C484400081695F /* ERC1400 */, E279C9F621C47CC10081695F /* ERC820 */, @@ -1010,6 +1034,70 @@ path = ERC721; sourceTree = ""; }; + E2F8081D21CA8F5800B6BF15 /* ERC1410 */ = { + isa = PBXGroup; + children = ( + E2F8081E21CA90BA00B6BF15 /* Web3+ERC1410.swift */, + ); + path = ERC1410; + sourceTree = ""; + }; + E2F8082221CA9C1600B6BF15 /* ERC1594 */ = { + isa = PBXGroup; + children = ( + E2F8082321CA9C3B00B6BF15 /* Web3+ERC1594.swift */, + ); + path = ERC1594; + sourceTree = ""; + }; + E2F8082521CA9F1400B6BF15 /* ERC1644 */ = { + isa = PBXGroup; + children = ( + E2F8082621CA9F3100B6BF15 /* Web3+ERC1644.swift */, + ); + path = ERC1644; + sourceTree = ""; + }; + E2F8082821CAA05C00B6BF15 /* ERC1643 */ = { + isa = PBXGroup; + children = ( + E2F8082921CAA07000B6BF15 /* Web3+ERC1643.swift */, + ); + path = ERC1643; + sourceTree = ""; + }; + E2F8082B21CB008800B6BF15 /* ERC1633 */ = { + isa = PBXGroup; + children = ( + E2F8082C21CB009A00B6BF15 /* Web3+ERC1633.swift */, + ); + path = ERC1633; + sourceTree = ""; + }; + E2F8082E21CB095A00B6BF15 /* ERC721x */ = { + isa = PBXGroup; + children = ( + E2F8082F21CB096D00B6BF15 /* Web3+ERC721x.swift */, + ); + path = ERC721x; + sourceTree = ""; + }; + E2F8083121CB0ED400B6BF15 /* ERC1155 */ = { + isa = PBXGroup; + children = ( + E2F8083221CB0EF300B6BF15 /* Web3+ERC1155.swift */, + ); + path = ERC1155; + sourceTree = ""; + }; + E2F8083421CB140E00B6BF15 /* ERC1376 */ = { + isa = PBXGroup; + children = ( + E2F8083521CB142000B6BF15 /* Web3+ERC1376.swift */, + ); + path = ERC1376; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1270,6 +1358,7 @@ files = ( E2DCA654218C879900F94FBA /* ENS.swift in Sources */, E2DCA655218C879900F94FBA /* ENSResolver.swift in Sources */, + E2F8082421CA9C3B00B6BF15 /* Web3+ERC1594.swift in Sources */, 81C146F71FF274B200AA943E /* Web3+Structures.swift in Sources */, 8104E2281FE82BDC00F952CB /* Web3+Utils.swift in Sources */, E228BE3E21A4492A0085268C /* Web3Legacy+Options.swift in Sources */, @@ -1288,6 +1377,7 @@ 81EB1E4B208173D7003BD47F /* Web3+Personal.swift in Sources */, E228BE7821A4492B0085268C /* Web3Legacy+BrowserFunctions.swift in Sources */, 81909D1821862D5A007D2AE5 /* Web3+Eventloop.swift in Sources */, + E2F8082721CA9F3100B6BF15 /* Web3+ERC1644.swift in Sources */, 81A1824B20D7DF1B0016741F /* Promise+Web3+Personal+UnlockAccount.swift in Sources */, 81A1823A20D79AD40016741F /* Promise+Web3+Eth+SendRawTransaction.swift in Sources */, E228BE0021A4492A0085268C /* TransactionSignerLegacy.swift in Sources */, @@ -1305,6 +1395,7 @@ 81FB21FE207BB297007F9A83 /* EIP67Code.swift in Sources */, 81A1821A20D5A6F70016741F /* Promise+HttpProvider.swift in Sources */, E228BECD21A4C89F0085268C /* Web3Legacy+Contract.swift in Sources */, + E2F8083621CB142000B6BF15 /* Web3+ERC1376.swift in Sources */, E279C9F821C47CD00081695F /* Web3+ERC820.swift in Sources */, 81A1823720D6E2BB0016741F /* Promise+Web3+Eth+GetBlockByHash.swift in Sources */, 81909D51218DAEC0007D2AE5 /* Promise+Web3+Personal+CreateAccount.swift in Sources */, @@ -1313,6 +1404,7 @@ E279C9EF21C46A140081695F /* Web3+ERC165.swift in Sources */, 81C5DA282072E18200424CD6 /* NativeTypesEncoding+Extensions.swift in Sources */, 8123E1C7200CBAC200B6D3AB /* Dictionary+Extension.swift in Sources */, + E2F8083321CB0EF300B6BF15 /* Web3+ERC1155.swift in Sources */, E228BE7421A4492B0085268C /* Promise+Web3Legacy+Eth+Call.swift in Sources */, 985BFD4E216E2E0A00B28C14 /* Promise+Web3+TxPool.swift in Sources */, 985BFD4A216CE8B100B28C14 /* Web3+TxPool.swift in Sources */, @@ -1324,6 +1416,7 @@ 81ED4EA82190D922003E932E /* NonceMiddleware.swift in Sources */, 81A1822520D678590016741F /* Promise+Web3+Eth+GetGasPrice.swift in Sources */, 8113DE7C1FD8514400CD8DF1 /* NSRegularExpressionExtension.swift in Sources */, + E2F8082A21CAA07000B6BF15 /* Web3+ERC1643.swift in Sources */, 81C5DA2E2074EBF500424CD6 /* EthereumContract.swift in Sources */, 810B0F9E1FEC5B9C00CF0DA2 /* Web3+Eth.swift in Sources */, 81531AA01FE7C07A002192CC /* EthereumKeystoreV3.swift in Sources */, @@ -1336,8 +1429,10 @@ 81DDECCF1FDF004E0063684A /* Web3.swift in Sources */, 81A1823420D6E1FD0016741F /* Promise+Web3+Eth+GetBlockByNumber.swift in Sources */, 81A1822820D678BF0016741F /* Promise+Web3+Eth+GetAccounts.swift in Sources */, + E2F8081F21CA90BA00B6BF15 /* Web3+ERC1410.swift in Sources */, E228BE3621A4492A0085268C /* Web3Legacy+TransactionIntermediate.swift in Sources */, 81A7B2512143C3A8004CD2C7 /* NameHash.swift in Sources */, + E2F8083021CB096D00B6BF15 /* Web3+ERC721x.swift in Sources */, 81C5DA312074EC1E00424CD6 /* ContractProtocol.swift in Sources */, E228BED121A4C89F0085268C /* Web3Legacy+Instance.swift in Sources */, 815630002007B48800A0EC2F /* BIP32KeystoreJSONStructure.swift in Sources */, @@ -1345,6 +1440,7 @@ E228BECF21A4C89F0085268C /* Web3Legacy+Eth.swift in Sources */, E228BE6221A4492B0085268C /* Promise+Web3Legacy+Eth+EstimateGas.swift in Sources */, E228BE0221A4492A0085268C /* EthereumTransactionLegacy.swift in Sources */, + E2F8082D21CB009A00B6BF15 /* Web3+ERC1633.swift in Sources */, 813FFF8D1FD82EEB006379A2 /* String+Extension.swift in Sources */, E228BE4421A4492A0085268C /* ENSLegacy.swift in Sources */, 81A1823120D68A110016741F /* Promise+Batching.swift in Sources */, diff --git a/web3swift/PrecompiledContracts/ERC1155/Web3+ERC1155.swift b/web3swift/PrecompiledContracts/ERC1155/Web3+ERC1155.swift new file mode 100644 index 000000000..387a6aab3 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1155/Web3+ERC1155.swift @@ -0,0 +1,150 @@ +// +// Web3+ERC1155.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 20/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import PromiseKit +import EthereumAddress + +//Multi Token Standard +protocol IERC1155: IERC165 { + + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, id: BigUInt, value: BigUInt, data: [UInt8]) throws -> WriteTransaction + + func safeBatchTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, ids: [BigUInt], values: [BigUInt], data: [UInt8]) throws -> WriteTransaction + + func balanceOf(account: EthereumAddress, id: BigUInt) throws -> BigUInt + + func setApprovalForAll(from: EthereumAddress, operator user: EthereumAddress, approved: Bool, scope: Data) throws -> WriteTransaction + + func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress, scope: Data) throws -> Bool +} + +protocol IERC1155Metadata { + func uri(id: BigUInt) throws -> String + func name(id: BigUInt) throws -> String +} + +public class ERC1155: IERC1155 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _tokenId: BigUInt? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1155ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var tokenId: BigUInt { + self.readProperties() + if self._tokenId != nil { + return self._tokenId! + } + return 0 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + + guard let tokenIdPromise = contract.read("id", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [tokenIdPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let tokenIdResult) = resolvedPromises[0] else {return} + guard let tokenId = tokenIdResult["0"] as? BigUInt else {return} + self._tokenId = tokenId + + self._hasReadProperties = true + }.wait() + } + + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, id: BigUInt, value: BigUInt, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("safeTransferFrom", parameters: [originalOwner, to, id, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func safeBatchTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, ids: [BigUInt], values: [BigUInt], data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("safeBatchTransferFrom", parameters: [originalOwner, to, ids, values, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func balanceOf(account: EthereumAddress, id: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account, id] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func setApprovalForAll(from: EthereumAddress, operator user: EthereumAddress, approved: Bool, scope: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setApprovalForAll", parameters: [user, approved, scope] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress, scope: Data) throws -> Bool { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.callOnBlock = .latest + let result = try contract.read("isApprovedForAll", parameters: [owner, user, scope] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} diff --git a/web3swift/PrecompiledContracts/ERC1376/Web3+ERC1376.swift b/web3swift/PrecompiledContracts/ERC1376/Web3+ERC1376.swift new file mode 100644 index 000000000..d259a3909 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1376/Web3+ERC1376.swift @@ -0,0 +1,505 @@ +// +// Web3+ERC1376.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 20/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +public enum IERC1376DelegateMode: UInt { + case PublicMsgSender = 0 + case PublicTxOrigin = 1 + case PrivateMsgSender = 2 + case PrivateTxOrigin = 3 +} + +public struct DirectDebitInfo { + let amount: BigUInt + let startTime: BigUInt + let interval: BigUInt +} + +public struct DirectDebit { + let info: DirectDebitInfo + let epoch: BigUInt +} + +extension DirectDebit: Hashable { +} + +extension DirectDebitInfo: Hashable { +} + +//Service-Friendly Token Standard +protocol IERC1376: IERC20 { + func approve(from: EthereumAddress, spender: EthereumAddress, expectedValue: String, newValue: String) throws -> WriteTransaction + func increaseAllowance(from: EthereumAddress, spender: EthereumAddress, value: String) throws -> WriteTransaction + func decreaseAllowance(from: EthereumAddress, spender: EthereumAddress, value: String, strict: Bool) throws -> WriteTransaction + func setERC20ApproveChecking(from: EthereumAddress, approveChecking: Bool) throws -> WriteTransaction + + func spendableAllowance(owner: EthereumAddress, spender: EthereumAddress) throws -> BigUInt + func transfer(from: EthereumAddress, data: String) throws -> WriteTransaction + func transferAndCall(from: EthereumAddress, to: EthereumAddress, value: String, data: [UInt8]) throws -> WriteTransaction + + func nonceOf(owner: EthereumAddress) throws -> BigUInt + func increaseNonce(from: EthereumAddress) throws -> WriteTransaction + func delegateTransferAndCall(from: EthereumAddress, + nonce: BigUInt, + fee: BigUInt, + gasAmount: BigUInt, + to: EthereumAddress, + value: String, + data: [UInt8], + mode: IERC1376DelegateMode, + v: UInt8, + r: Data, + s: Data) throws -> WriteTransaction + + func directDebit(debtor: EthereumAddress, receiver: EthereumAddress) throws -> DirectDebit + func setupDirectDebit(from: EthereumAddress, receiver: EthereumAddress, info: DirectDebitInfo) throws -> WriteTransaction + func terminateDirectDebit(from: EthereumAddress, receiver: EthereumAddress) throws -> WriteTransaction + func withdrawDirectDebit(from: EthereumAddress, debtor: EthereumAddress) throws -> WriteTransaction + func withdrawDirectDebit(from: EthereumAddress, debtors: [EthereumAddress], strict: Bool) throws -> WriteTransaction +} + +public class ERC1376: IERC1376 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1376ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func approve(from: EthereumAddress, spender: EthereumAddress, expectedValue: String, newValue: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let eValue = Web3.Utils.parseToBigUInt(expectedValue, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + guard let nValue = Web3.Utils.parseToBigUInt(newValue, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, eValue, nValue] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func increaseAllowance(from: EthereumAddress, spender: EthereumAddress, value: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let amount = Web3.Utils.parseToBigUInt(value, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("increaseAllowance", parameters: [spender, amount] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func decreaseAllowance(from: EthereumAddress, spender: EthereumAddress, value: String, strict: Bool) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let amount = Web3.Utils.parseToBigUInt(value, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("decreaseAllowance", parameters: [spender, amount, strict] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func setERC20ApproveChecking(from: EthereumAddress, approveChecking: Bool) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setERC20ApproveChecking", parameters: [approveChecking] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func spendableAllowance(owner: EthereumAddress, spender: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("spendableAllowance", parameters: [owner, spender] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func transfer(from: EthereumAddress, data: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(data, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func transferAndCall(from: EthereumAddress, to: EthereumAddress, value: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let amount = Web3.Utils.parseToBigUInt(value, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transferAndCall", parameters: [to, amount, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func nonceOf(owner: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("nonceOf", parameters: [owner] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func increaseNonce(from: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + let tx = contract.write("increaseNonce", parameters: [] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func delegateTransferAndCall(from: EthereumAddress, nonce: BigUInt, fee: BigUInt, gasAmount: BigUInt, to: EthereumAddress, value: String, data: [UInt8], mode: IERC1376DelegateMode, v: UInt8, r: Data, s: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let amount = Web3.Utils.parseToBigUInt(value, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let modeValue = mode.rawValue + + let tx = contract.write("delegateTransferAndCall", parameters: [nonce, fee, gasAmount, to, amount, data, modeValue, v, r, s] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func directDebit(debtor: EthereumAddress, receiver: EthereumAddress) throws -> DirectDebit { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("directDebit", parameters: [debtor, receiver] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? DirectDebit else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func setupDirectDebit(from: EthereumAddress, receiver: EthereumAddress, info: DirectDebitInfo) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setupDirectDebit", parameters: [receiver, info] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func terminateDirectDebit(from: EthereumAddress, receiver: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("terminateDirectDebit", parameters: [receiver] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func withdrawDirectDebit(from: EthereumAddress, debtor: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("withdrawDirectDebit", parameters: [debtor] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func withdrawDirectDebit(from: EthereumAddress, debtors: [EthereumAddress], strict: Bool) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("withdrawDirectDebit", parameters: [debtors, strict] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} diff --git a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift index 299100fc0..faa97ea04 100644 --- a/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift +++ b/web3swift/PrecompiledContracts/ERC1400/Web3+ERC1400.swift @@ -10,8 +10,8 @@ import BigInt import EthereumAddress import PromiseKit -// ERC1400 = ERC20 + IERC1400 -protocol IERC1400 { +//Security Token Standard +protocol IERC1400: IERC20 { // Document Management func getDocument(name: Data) throws -> (String, Data) @@ -64,7 +64,7 @@ protocol IERC1400 { // This namespace contains functions to work with ERC1400 tokens. // variables are lazyly evaluated or global token information (name, ticker, total supply) // can be imperatively read and saved -public class ERC1400: IERC20, IERC1400 { +public class ERC1400: IERC1400 { @available(*, deprecated, renamed: "transactionOptions") public var options: Web3Options = .init() @@ -72,26 +72,27 @@ public class ERC1400: IERC20, IERC1400 { private var _name: String? = nil private var _symbol: String? = nil private var _decimals: UInt8? = nil - private var _totalSupply: BigUInt? = nil private var _hasReadProperties: Bool = false public var transactionOptions: TransactionOptions public var web3: web3 public var provider: Web3Provider public var address: EthereumAddress + public var abi: String lazy var contract: web3.web3contract = { - let contract = self.web3.contract(Web3.Utils.erc1400ABI, at: self.address, abiVersion: 2) + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) precondition(contract != nil) return contract! }() - public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1400ABI) { self.web3 = web3 self.provider = provider self.address = address var mergedOptions = web3.transactionOptions mergedOptions.to = address + self.abi = abi self.transactionOptions = mergedOptions } @@ -119,14 +120,6 @@ public class ERC1400: IERC20, IERC1400 { return 255 } - public var totalSupply: BigUInt { - self.readProperties() - if self._totalSupply != nil { - return self._totalSupply! - } - return 0 - } - public func readProperties() { if self._hasReadProperties { return @@ -141,9 +134,7 @@ public class ERC1400: IERC20, IERC1400 { guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise] + let allPromises = [namePromise, symbolPromise, decimalPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} @@ -158,10 +149,6 @@ public class ERC1400: IERC20, IERC1400 { guard let decimals = decimalsResult["0"] as? BigUInt else {return} self._decimals = UInt8(decimals) - guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} - guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} - self._totalSupply = totalSupply - self._hasReadProperties = true }.wait() } @@ -252,6 +239,15 @@ public class ERC1400: IERC20, IERC1400 { return tx } + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() @@ -274,6 +270,7 @@ public class ERC1400: IERC20, IERC1400 { return tx } + //ERC1400 methods public func getDocument(name: Data) throws -> (String, Data) { let contract = self.contract var transactionOptions = TransactionOptions() @@ -287,6 +284,7 @@ public class ERC1400: IERC20, IERC1400 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("setDocument", parameters: [name, uri, documentHash] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -728,3 +726,209 @@ public class ERC1400: IERC20, IERC1400 { return res } } + +extension ERC1400: IERC777 { + public func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("canImplementInterfaceForAddress", parameters: [interfaceHash, addr] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getInterfaceImplementer(addr: EthereumAddress, interfaceHash: Data) throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getInterfaceImplementer", parameters: [addr, interfaceHash] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func setInterfaceImplementer(from: EthereumAddress, addr: EthereumAddress, interfaceHash: Data, implementer: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setInterfaceImplementer", parameters: [addr, interfaceHash, implementer] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setManager(from: EthereumAddress, addr: EthereumAddress, newManager: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setManager", parameters: [addr, newManager] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func interfaceHash(interfaceName: String) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("interfaceHash", parameters: [interfaceName] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func updateERC165Cache(from: EthereumAddress, contract: EthereumAddress, interfaceId: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("updateERC165Cache", parameters: [contract, interfaceId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getGranularity() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getDefaultOperators() throws -> [EthereumAddress] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [EthereumAddress] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorFor", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("send", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("operatorSend", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} diff --git a/web3swift/PrecompiledContracts/ERC1410/Web3+ERC1410.swift b/web3swift/PrecompiledContracts/ERC1410/Web3+ERC1410.swift new file mode 100644 index 000000000..82c7ba8d8 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1410/Web3+ERC1410.swift @@ -0,0 +1,667 @@ +// +// Web3+ERC1410.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 19/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +//Partially Fungible Token Standard +protocol IERC1410: IERC20 { + + // Token Information + func getBalance(account: EthereumAddress) throws -> BigUInt + func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt + func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] + func totalSupply() throws -> BigUInt + + // Token Transfers + func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) + + // Operator Information + func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool + + // Operator Management + func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction + func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction + func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction + + // Issuance / Redemption + func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction + func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction + +} + +public class ERC1410: IERC1410 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _totalSupply: BigUInt? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1410ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + //ERC1410 methods + public func balanceOfByPartition(partition: Data, tokenHolder: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOfByPartition", parameters: [partition, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func partitionsOf(tokenHolder: EthereumAddress) throws -> [Data] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("partitionsOf", parameters: [tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [Data] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferByPartition", parameters: [partition, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorTransferByPartition(partition: Data, from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorTransferByPartition", parameters: [partition, originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func canTransferByPartition(originalOwner: EthereumAddress, to: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> ([UInt8], Data, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, partition, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isOperator(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperator", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func isOperatorForPartition(partition: Data, operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorForPartition", parameters: [partition, user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func authorizeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperator(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func authorizeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("authorizeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revokeOperatorByPartition(from: EthereumAddress, partition: Data, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("revokeOperatorByPartition", parameters: [partition, user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func issueByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issueByPartition", parameters: [partition, tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemByPartition(from: EthereumAddress, partition: Data, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemByPartition", parameters: [partition, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorRedeemByPartition(from: EthereumAddress, partition: Data, tokenHolder: EthereumAddress, amount: String, operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("operatorRedeemByPartition", parameters: [partition, tokenHolder, value, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} + +extension ERC1410: IERC777 { + public func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("canImplementInterfaceForAddress", parameters: [interfaceHash, addr] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getInterfaceImplementer(addr: EthereumAddress, interfaceHash: Data) throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getInterfaceImplementer", parameters: [addr, interfaceHash] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func setInterfaceImplementer(from: EthereumAddress, addr: EthereumAddress, interfaceHash: Data, implementer: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setInterfaceImplementer", parameters: [addr, interfaceHash, implementer] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setManager(from: EthereumAddress, addr: EthereumAddress, newManager: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("setManager", parameters: [addr, newManager] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func interfaceHash(interfaceName: String) throws -> Data { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("interfaceHash", parameters: [interfaceName] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Data else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func updateERC165Cache(from: EthereumAddress, contract: EthereumAddress, interfaceId: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + + let tx = contract.write("updateERC165Cache", parameters: [contract, interfaceId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func revoke(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.callOnBlock = .latest + + let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isOperatorFor(operator user: EthereumAddress, tokenHolder: EthereumAddress) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isOperatorFor", parameters: [user, tokenHolder] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func send(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("send", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorSend(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("operatorSend", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func burn(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func operatorBurn(from: EthereumAddress, amount: String, originalOwner: EthereumAddress, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func getGranularity() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getDefaultOperators() throws -> [EthereumAddress] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [EthereumAddress] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} diff --git a/web3swift/PrecompiledContracts/ERC1594/Web3+ERC1594.swift b/web3swift/PrecompiledContracts/ERC1594/Web3+ERC1594.swift new file mode 100644 index 000000000..cb32899fa --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1594/Web3+ERC1594.swift @@ -0,0 +1,412 @@ +// +// Web3+ERC1594.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 19/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +//Core Security Token Standard +protocol IERC1594: IERC20 { + + // Transfers + func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Token Issuance + func isIssuable() throws -> Bool + func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Token Redemption + func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction + + // Transfer Validity + func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) + +} + +public class ERC1594: IERC1594 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1594ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + //ERC1594 + public func transferWithData(from: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferWithData", parameters: [to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFromWithData(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFromWithData", parameters: [originalOwner, to, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isIssuable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isIssuable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func issue(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("issue", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeem(from: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeem", parameters: [value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func redeemFrom(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("redeemFrom", parameters: [tokenHolder, value, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func canTransfer(to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func canTransferFrom(originalOwner: EthereumAddress, to: EthereumAddress, amount: String, data: [UInt8]) throws -> ([UInt8], Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: transactionOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let result = try contract.read("canTransfer", parameters: [originalOwner, to, value, data] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([UInt8], Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} + + diff --git a/web3swift/PrecompiledContracts/ERC1633/Web3+ERC1633.swift b/web3swift/PrecompiledContracts/ERC1633/Web3+ERC1633.swift new file mode 100644 index 000000000..b4c9ba061 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1633/Web3+ERC1633.swift @@ -0,0 +1,257 @@ +// +// Web3+ERC1634.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 20/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +///Re-Fungible Token Standard (RFT) +protocol IERC1633: IERC20, IERC165 { + + func parentToken() throws -> EthereumAddress + func parentTokenId() throws -> BigUInt + +} + +public class ERC1633: IERC1633 { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1633ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func parentToken() throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("parentToken", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func parentTokenId() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("parentTokenId", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + +} diff --git a/web3swift/PrecompiledContracts/ERC1643/Web3+ERC1643.swift b/web3swift/PrecompiledContracts/ERC1643/Web3+ERC1643.swift new file mode 100644 index 000000000..6ba4c056e --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1643/Web3+ERC1643.swift @@ -0,0 +1,269 @@ +// +// Web3+ERC1643.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 19/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +//Document Management Standard +protocol IERC1643: IERC20 { + + // Document Management + func getDocument(name: Data) throws -> (String, Data) + func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction + func removeDocument(from: EthereumAddress, name: Data) throws -> WriteTransaction + func getAllDocuments() throws -> [Data] + +} + +public class ERC1643: IERC1643 { + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1643ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + //ERC1643 methods + public func getDocument(name: Data) throws -> (String, Data) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getDocument", parameters: [name] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? (String, Data) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func setDocument(from: EthereumAddress, name: Data, uri: String, documentHash: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setDocument", parameters: [name, uri, documentHash] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func removeDocument(from: EthereumAddress, name: Data) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("removeDocument", parameters: [name] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func getAllDocuments() throws -> [Data] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getAllDocuments", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [Data] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } +} diff --git a/web3swift/PrecompiledContracts/ERC1644/Web3+ERC1644.swift b/web3swift/PrecompiledContracts/ERC1644/Web3+ERC1644.swift new file mode 100644 index 000000000..819ff3a64 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC1644/Web3+ERC1644.swift @@ -0,0 +1,285 @@ +// +// Web3+ERC1644.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 19/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import EthereumAddress +import PromiseKit + +//Controller Token Operation Standard +protocol IERC1644: IERC20 { + + // Controller Operation + func isControllable() throws -> Bool + func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction + +} + +public class ERC1644: IERC1644 { + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _name: String? = nil + private var _symbol: String? = nil + private var _decimals: UInt8? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc1644ABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var name: String { + self.readProperties() + if self._name != nil { + return self._name! + } + return "" + } + + public var symbol: String { + self.readProperties() + if self._symbol != nil { + return self._symbol! + } + return "" + } + + public var decimals: UInt8 { + self.readProperties() + if self._decimals != nil { + return self._decimals! + } + return 255 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + guard let namePromise = contract.read("name", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [namePromise, symbolPromise, decimalPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} + guard let name = nameResult["0"] as? String else {return} + self._name = name + + guard case .fulfilled(let symbolResult) = resolvedPromises[1] else {return} + guard let symbol = symbolResult["0"] as? String else {return} + self._symbol = symbol + + guard case .fulfilled(let decimalsResult) = resolvedPromises[2] else {return} + guard let decimals = decimalsResult["0"] as? BigUInt else {return} + self._decimals = UInt8(decimals) + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("allowance", parameters: [originalOwner, delegate] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + let tx = contract.write("transfer", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(newAmount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("setAllowance", parameters: [to, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("approve", parameters: [spender, value] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + //ERC1644 + public func isControllable() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("isControllable", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func controllerTransfer(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerTransfer", parameters: [originalOwner, to, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func controllerRedeem(from: EthereumAddress, tokenHolder: EthereumAddress, amount: String, data: [UInt8], operatorData: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + basicOptions.callOnBlock = .latest + + // get the decimals manually + let callResult = try contract.read("decimals", transactionOptions: basicOptions)!.call() + var decimals = BigUInt(0) + guard let dec = callResult["0"], let decTyped = dec as? BigUInt else { + throw Web3Error.inputError(desc: "Contract may be not ERC20 compatible, can not get decimals")} + decimals = decTyped + + let intDecimals = Int(decimals) + guard let value = Web3.Utils.parseToBigUInt(amount, decimals: intDecimals) else { + throw Web3Error.inputError(desc: "Can not parse inputted amount") + } + + let tx = contract.write("controllerRedeem", parameters: [tokenHolder, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} diff --git a/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift index 1875c0bef..6687e9c4e 100644 --- a/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift +++ b/web3swift/PrecompiledContracts/ERC165/Web3+ERC165.swift @@ -8,6 +8,7 @@ import Foundation +//Standard Interface Detection protocol IERC165 { func supportsInterface(interfaceID: [UInt8]) throws -> Bool diff --git a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift index 31e0d05a0..c6bd0b6b4 100644 --- a/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift +++ b/web3swift/PrecompiledContracts/ERC20/Web3+ERC20.swift @@ -9,6 +9,7 @@ import BigInt import EthereumAddress import PromiseKit +//Token Standard protocol IERC20 { func getBalance(account: EthereumAddress) throws -> BigUInt func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt @@ -16,6 +17,7 @@ protocol IERC20 { func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, amount: String) throws -> WriteTransaction func setAllowance(from: EthereumAddress, to: EthereumAddress, newAmount: String) throws -> WriteTransaction func approve(from: EthereumAddress, spender: EthereumAddress, amount: String) throws -> WriteTransaction + func totalSupply() throws -> BigUInt } // This namespace contains functions to work with ERC20 tokens. @@ -29,7 +31,6 @@ public class ERC20: IERC20 { private var _name: String? = nil private var _symbol: String? = nil private var _decimals: UInt8? = nil - private var _totalSupply: BigUInt? = nil private var _hasReadProperties: Bool = false public var transactionOptions: TransactionOptions @@ -76,14 +77,6 @@ public class ERC20: IERC20 { return 255 } - public var totalSupply: BigUInt { - self.readProperties() - if self._totalSupply != nil { - return self._totalSupply! - } - return 0 - } - public func readProperties() { if self._hasReadProperties { return @@ -97,10 +90,8 @@ public class ERC20: IERC20 { guard let symbolPromise = contract.read("symbol", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise] + let allPromises = [namePromise, symbolPromise, decimalPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} @@ -115,10 +106,6 @@ public class ERC20: IERC20 { guard let decimals = decimalsResult["0"] as? BigUInt else {return} self._decimals = UInt8(decimals) - guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} - guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} - self._totalSupply = totalSupply - self._hasReadProperties = true }.wait() } @@ -213,6 +200,7 @@ public class ERC20: IERC20 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest // get the decimals manually @@ -231,4 +219,13 @@ public class ERC20: IERC20 { return tx } + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + } diff --git a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift index 61ce34636..58c159c63 100644 --- a/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift +++ b/web3swift/PrecompiledContracts/ERC721/Web3+ERC721.swift @@ -9,7 +9,8 @@ import BigInt import PromiseKit import EthereumAddress -protocol IERC721 { +//Non-Fungible Token Standard +protocol IERC721: IERC165 { func getBalance(account: EthereumAddress) throws -> BigUInt @@ -158,6 +159,7 @@ public class ERC721: IERC721 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("approve", parameters: [approved, tokenId] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -167,6 +169,7 @@ public class ERC721: IERC721 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("setApprovalForAll", parameters: [user, approved] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -181,6 +184,16 @@ public class ERC721: IERC721 { return res } + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + } extension ERC721: IERC721Enumerable { @@ -244,17 +257,3 @@ extension ERC721: IERC721Metadata { } } - -extension ERC721: IERC165 { - - public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - transactionOptions.gasLimit = .manual(30000) - let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } - -} diff --git a/web3swift/PrecompiledContracts/ERC721x/Web3+ERC721x.swift b/web3swift/PrecompiledContracts/ERC721x/Web3+ERC721x.swift new file mode 100644 index 000000000..e014148d3 --- /dev/null +++ b/web3swift/PrecompiledContracts/ERC721x/Web3+ERC721x.swift @@ -0,0 +1,315 @@ +// +// Web3+ERC721x.swift +// web3swift-iOS +// +// Created by Anton Grigorev on 20/12/2018. +// Copyright © 2018 The Matter Inc. All rights reserved. +// + +import Foundation +import BigInt +import PromiseKit +import EthereumAddress + +///A Smarter Token for the Future of Crypto Collectibles +///ERC721x is an extension of ERC721 that adds support for multi-fungible tokens and batch transfers, while being fully backward-compatible. + +protocol IERC721x: IERC721, IERC721Metadata, IERC721Enumerable { + func implementsERC721X() throws -> Bool + func getOwner(tokenId: BigUInt) throws -> EthereumAddress + func getBalance(account: EthereumAddress) throws -> BigUInt + func getBalance(account: EthereumAddress, tokenId: BigUInt) throws -> BigUInt + + func tokensOwned(account: EthereumAddress) throws -> ([BigUInt], [BigUInt]) + + func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt, quantity: BigUInt) throws -> WriteTransaction + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, quantity: BigUInt) throws -> WriteTransaction + + // Fungible Safe Transfer From + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, amount: BigUInt) throws -> WriteTransaction + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, amount: BigUInt, data: [UInt8]) throws -> WriteTransaction + + // Batch Safe Transfer From + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenIds: [BigUInt], amounts: [BigUInt], data: [UInt8]) throws -> WriteTransaction + + func name() throws -> String + func symbol() throws -> String +} + +public class ERC721x: IERC721x { + + @available(*, deprecated, renamed: "transactionOptions") + public var options: Web3Options = .init() + + private var _tokenId: BigUInt? = nil + private var _hasReadProperties: Bool = false + + public var transactionOptions: TransactionOptions + public var web3: web3 + public var provider: Web3Provider + public var address: EthereumAddress + public var abi: String + + lazy var contract: web3.web3contract = { + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) + precondition(contract != nil) + return contract! + }() + + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc721xABI) { + self.web3 = web3 + self.provider = provider + self.address = address + var mergedOptions = web3.transactionOptions + mergedOptions.to = address + self.abi = abi + self.transactionOptions = mergedOptions + } + + public var tokenId: BigUInt { + self.readProperties() + if self._tokenId != nil { + return self._tokenId! + } + return 0 + } + + public func readProperties() { + if self._hasReadProperties { + return + } + let contract = self.contract + guard contract.contract.address != nil else {return} + var transactionOptions = TransactionOptions.defaultOptions + transactionOptions.callOnBlock = .latest + + guard let tokenIdPromise = contract.read("tokenId", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} + + let allPromises = [tokenIdPromise] + let queue = self.web3.requestDispatcher.queue + when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in + guard case .fulfilled(let tokenIdResult) = resolvedPromises[0] else {return} + guard let tokenId = tokenIdResult["0"] as? BigUInt else {return} + self._tokenId = tokenId + + self._hasReadProperties = true + }.wait() + } + + public func getBalance(account: EthereumAddress) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getOwner(tokenId: BigUInt) throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("ownerOf", parameters: [tokenId] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getApproved(tokenId: BigUInt) throws -> EthereumAddress { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("getApproved", parameters: [tokenId] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? EthereumAddress else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("transfer", parameters: [to, tokenId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, tokenId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func approve(from: EthereumAddress, approved: EthereumAddress, tokenId: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("approve", parameters: [approved, tokenId] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func setApprovalForAll(from: EthereumAddress, operator user: EthereumAddress, approved: Bool) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("setApprovalForAll", parameters: [user, approved] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + public func isApprovedForAll(owner: EthereumAddress, operator user: EthereumAddress) throws -> Bool { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.callOnBlock = .latest + let result = try contract.read("isApprovedForAll", parameters: [owner, user] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func tokenByIndex(index: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenByIndex", parameters: [index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func tokenOfOwnerByIndex(owner: EthereumAddress, index: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenOfOwnerByIndex", parameters: [owner, index] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func name() throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("name", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func symbol() throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("symbol", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func tokenURI(tokenId: BigUInt) throws -> String { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokenId", parameters: [tokenId] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? String else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func implementsERC721X() throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("implementsERC721X", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func getBalance(account: EthereumAddress, tokenId: BigUInt) throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("balanceOf", parameters: [account, tokenId] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func tokensOwned(account: EthereumAddress) throws -> ([BigUInt], [BigUInt]) { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("tokensOwned", parameters: [account] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? ([BigUInt], [BigUInt]) else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + func transfer(from: EthereumAddress, to: EthereumAddress, tokenId: BigUInt, quantity: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("transfer", parameters: [to, tokenId, quantity] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func transferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, quantity: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("transferFrom", parameters: [originalOwner, to, tokenId, quantity] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, amount: BigUInt) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("safeTransferFrom", parameters: [originalOwner, to, tokenId, amount] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenId: BigUInt, amount: BigUInt, data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("safeTransferFrom", parameters: [originalOwner, to, tokenId, amount, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } + + func safeTransferFrom(from: EthereumAddress, to: EthereumAddress, originalOwner: EthereumAddress, tokenIds: [BigUInt], amounts: [BigUInt], data: [UInt8]) throws -> WriteTransaction { + let contract = self.contract + var basicOptions = TransactionOptions() + basicOptions.from = from + basicOptions.to = self.address + + let tx = contract.write("safeTransferFrom", parameters: [originalOwner, to, tokenIds, amounts, data] as [AnyObject], transactionOptions: basicOptions)! + return tx + } +} diff --git a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift index 239c81574..8127bf0fe 100644 --- a/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift +++ b/web3swift/PrecompiledContracts/ERC777/Web3+ERC777.swift @@ -10,7 +10,10 @@ import BigInt import PromiseKit import EthereumAddress -protocol IERC777 { +//A New Advanced Token Standard +protocol IERC777: IERC20, IERC820 { + func getDefaultOperators() throws -> [EthereumAddress] + func getGranularity() throws -> BigUInt func getBalance(account: EthereumAddress) throws -> BigUInt func getAllowance(originalOwner: EthereumAddress, delegate: EthereumAddress) throws -> BigUInt func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction @@ -27,14 +30,11 @@ protocol IERC777 { // This namespace contains functions to work with ERC777 tokens. // can be imperatively read and saved -public class ERC777: IERC20, IERC777 { +public class ERC777: IERC777 { private var _name: String? = nil private var _symbol: String? = nil private var _decimals: UInt8? = nil - private var _totalSupply: BigUInt? = nil - private var _granularity: BigUInt? = nil - private var _defaultOperators: [EthereumAddress]? = nil private var _hasReadProperties: Bool = false @@ -42,20 +42,21 @@ public class ERC777: IERC20, IERC777 { public var web3: web3 public var provider: Web3Provider public var address: EthereumAddress + public var abi: String lazy var contract: web3.web3contract = { - // TODO: - need erc777abi - let contract = self.web3.contract(Web3.Utils.erc777ABI, at: self.address, abiVersion: 2) + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) precondition(contract != nil) return contract! }() - public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc777ABI) { self.web3 = web3 self.provider = provider self.address = address var mergedOptions = web3.transactionOptions mergedOptions.to = address + self.abi = abi self.transactionOptions = mergedOptions } @@ -84,30 +85,6 @@ public class ERC777: IERC20, IERC777 { return 18 } - public var totalSupply: BigUInt { - self.readProperties() - if self._totalSupply != nil { - return self._totalSupply! - } - return 0 - } - - public var granularity: BigUInt { - self.readProperties() - if self._granularity != nil { - return self._granularity! - } - return 1 - } - - public var defaultOperators: [EthereumAddress] { - self.readProperties() - if self._defaultOperators != nil { - return self._defaultOperators! - } - return [] - } - public func readProperties() { if self._hasReadProperties { return @@ -122,13 +99,7 @@ public class ERC777: IERC20, IERC777 { guard let decimalPromise = contract.read("decimals", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - guard let totalSupplyPromise = contract.read("totalSupply", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let granularityPromise = contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - guard let defaultOperatorsPromise = contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: transactionOptions)?.callPromise() else {return} - - let allPromises = [namePromise, symbolPromise, decimalPromise, totalSupplyPromise, granularityPromise, defaultOperatorsPromise] + let allPromises = [namePromise, symbolPromise, decimalPromise] let queue = self.web3.requestDispatcher.queue when(resolved: allPromises).map(on: queue) { (resolvedPromises) -> Void in guard case .fulfilled(let nameResult) = resolvedPromises[0] else {return} @@ -143,22 +114,28 @@ public class ERC777: IERC20, IERC777 { guard let decimals = decimalsResult["0"] as? BigUInt else {return} self._decimals = UInt8(decimals) - guard case .fulfilled(let totalSupplyResult) = resolvedPromises[3] else {return} - guard let totalSupply = totalSupplyResult["0"] as? BigUInt else {return} - self._totalSupply = totalSupply - - guard case .fulfilled(let granularityResult) = resolvedPromises[4] else {return} - guard let granularity = granularityResult["0"] as? BigUInt else {return} - self._granularity = granularity - - guard case .fulfilled(let defaultOperatorsResult) = resolvedPromises[5] else {return} - guard let defaultOperators = defaultOperatorsResult["0"] as? [EthereumAddress] else {return} - self._defaultOperators = defaultOperators - self._hasReadProperties = true }.wait() } + public func getGranularity() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("granularity", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + + public func getDefaultOperators() throws -> [EthereumAddress] { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("defaultOperators", parameters: [] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? [EthereumAddress] else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + public func getBalance(account: EthereumAddress) throws -> BigUInt { let contract = self.contract var transactionOptions = TransactionOptions() @@ -245,11 +222,21 @@ public class ERC777: IERC20, IERC777 { return tx } + public func totalSupply() throws -> BigUInt { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + let result = try contract.read("totalSupply", parameters: [AnyObject](), extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? BigUInt else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + /// ERC777 methods public func authorize(from: EthereumAddress, operator user: EthereumAddress) throws -> WriteTransaction { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest let tx = contract.write("authorizeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! @@ -260,6 +247,7 @@ public class ERC777: IERC20, IERC777 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest let tx = contract.write("revokeOperator", parameters: [user] as [AnyObject], transactionOptions: basicOptions)! @@ -323,6 +311,7 @@ public class ERC777: IERC20, IERC777 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest // get the decimals manually @@ -344,6 +333,7 @@ public class ERC777: IERC20, IERC777 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest // get the decimals manually @@ -360,21 +350,7 @@ public class ERC777: IERC20, IERC777 { let tx = contract.write("burn", parameters: [originalOwner, value, data, operatorData] as [AnyObject], transactionOptions: basicOptions)! return tx } -} - -extension ERC777: IERC165 { - public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { - let contract = self.contract - var transactionOptions = TransactionOptions() - transactionOptions.callOnBlock = .latest - transactionOptions.gasLimit = .manual(30000) - let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) - guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} - return res - } -} - -extension ERC777: IERC820 { + public func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data { let contract = self.contract var transactionOptions = TransactionOptions() @@ -397,6 +373,7 @@ extension ERC777: IERC820 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("setInterfaceImplementer", parameters: [addr, interfaceHash, implementer] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -406,6 +383,7 @@ extension ERC777: IERC820 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("setManager", parameters: [addr, newManager] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -424,6 +402,7 @@ extension ERC777: IERC820 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address let tx = contract.write("updateERC165Cache", parameters: [contract, interfaceId] as [AnyObject], transactionOptions: basicOptions)! return tx @@ -433,6 +412,7 @@ extension ERC777: IERC820 { let contract = self.contract var basicOptions = TransactionOptions() basicOptions.from = from + basicOptions.to = self.address basicOptions.callOnBlock = .latest // get the decimals manually @@ -451,4 +431,15 @@ extension ERC777: IERC820 { return tx } + public func supportsInterface(interfaceID: [UInt8]) throws -> Bool { + let contract = self.contract + var transactionOptions = TransactionOptions() + transactionOptions.callOnBlock = .latest + transactionOptions.gasLimit = .manual(30000) + let result = try contract.read("supportsInterface", parameters: [interfaceID] as [AnyObject], extraData: Data(), transactionOptions: self.transactionOptions)!.call(transactionOptions: transactionOptions) + guard let res = result["0"] as? Bool else {throw Web3Error.processingError(desc: "Failed to get result of expected type from the Ethereum node")} + return res + } + } + diff --git a/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift b/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift index 1b0d51c57..4ae4e3cdb 100644 --- a/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift +++ b/web3swift/PrecompiledContracts/ERC820/Web3+ERC820.swift @@ -9,7 +9,8 @@ import Foundation import EthereumAddress -protocol IERC820 { +//Pseudo-introspection using a registry contract +protocol IERC820: IERC165 { func canImplementInterfaceForAddress(interfaceHash: Data, addr: EthereumAddress) throws -> Data func getInterfaceImplementer(addr: EthereumAddress, interfaceHash: Data) throws -> EthereumAddress func setInterfaceImplementer(from: EthereumAddress, addr: EthereumAddress, interfaceHash: Data, implementer: EthereumAddress) throws -> WriteTransaction diff --git a/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift index 48f5fcee7..4da36bbf8 100644 --- a/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift +++ b/web3swift/PrecompiledContracts/ERC888/Web3+ERC888.swift @@ -11,14 +11,12 @@ import BigInt import EthereumAddress import PromiseKit +//MultiDimensional Token Standard protocol IERC888 { func getBalance(account: EthereumAddress) throws -> BigUInt func transfer(from: EthereumAddress, to: EthereumAddress, amount: String) throws -> WriteTransaction } -// This namespace contains functions to work with ERC888 tokens. -// variables are lazyly evaluated or global token information (name, ticker, total supply) -// can be imperatively read and saved public class ERC888: IERC888 { @available(*, deprecated, renamed: "transactionOptions") @@ -33,19 +31,21 @@ public class ERC888: IERC888 { public var web3: web3 public var provider: Web3Provider public var address: EthereumAddress + public var abi: String lazy var contract: web3.web3contract = { - let contract = self.web3.contract(Web3.Utils.erc888ABI, at: self.address, abiVersion: 2) + let contract = self.web3.contract(self.abi, at: self.address, abiVersion: 2) precondition(contract != nil) return contract! }() - public init(web3: web3, provider: Web3Provider, address: EthereumAddress) { + public init(web3: web3, provider: Web3Provider, address: EthereumAddress, abi: String = Web3.Utils.erc888ABI) { self.web3 = web3 self.provider = provider self.address = address var mergedOptions = web3.transactionOptions mergedOptions.to = address + self.abi = abi self.transactionOptions = mergedOptions } diff --git a/web3swift/Web3/Classes/Web3+Utils.swift b/web3swift/Web3/Classes/Web3+Utils.swift index 46e1d59c7..46bdde704 100755 --- a/web3swift/Web3/Classes/Web3+Utils.swift +++ b/web3swift/Web3/Classes/Web3+Utils.swift @@ -73,10 +73,20 @@ extension Web3.Utils { /// Precoded ERC888 contracts ABI. Output parameters are named for ease of use. public static var erc888ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + /// TODO: - need to fix. + public static var erc1376ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + /// Precoded ERC20 contracts ABI. Output parameters are named for ease of use. public static var erc20ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" public static var erc721ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" + + // TODO: - Need to fix + public static var erc721xABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" + + // TODO: - Need to fix + public static var erc1155ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"_name\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_approved\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}]" + /// Precoded ERC777 contracts ABI. Output parameters are named for ease of use. public static var erc777ABI = """ [ @@ -1806,6 +1816,1737 @@ extension Web3.Utils { "type": "constructor" } ] +""" + /// TODO: - Make it right + /// Precoded ERC1633 contracts ABI. Output parameters are named for ease of use. + public static var erc1633ABI = """ +[ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenHolder", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + }, + { + "name": "_operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "name": "_name", + "type": "string" + }, + { + "name": "_symbol", + "type": "string" + }, + { + "name": "_granularity", + "type": "uint256" + }, + { + "name": "_defaultOperators", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "defaultOperators", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "granularity", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "authorizeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "send", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "tokenHolder", + "type": "address" + } + ], + "name": "isOperatorFor", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + } + ], + "name": "revokeOperator", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "operatorBurn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Sent", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Minted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "name": "operatorData", + "type": "bytes" + } + ], + "name": "Burned", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "AuthorizedOperator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "name": "tokenHolder", + "type": "address" + } + ], + "name": "RevokedOperator", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "data", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensReceived", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "operator", + "type": "address" + }, + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "userData", + "type": "bytes" + }, + { + "name": "operatorData", + "type": "bytes" + } + ], + "name": "tokensToSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + }, + { + "name": "implementer", + "type": "address" + } + ], + "name": "setInterfaceImplementer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + } + ], + "name": "getManager", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "newManager", + "type": "address" + } + ], + "name": "setManager", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "iHash", + "type": "bytes32" + } + ], + "name": "getInterfaceImplementer", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } +] """ public static var ensRegistryABI = """ [{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"label","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"name":"","type":"uint64"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"node","type":"bytes32"},{"name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":true,"name":"label","type":"bytes32"},{"indexed":false,"name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"bytes32"},{"indexed":false,"name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"}] @@ -1813,6 +3554,22 @@ extension Web3.Utils { /// TODO: - Need to add correct ABI for ERC1400 /// Precoded ERC1400 contracts ABI. Output parameters are named for ease of use. public static var erc1400ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + + /// TODO: - Need to add correct ABI for ERC1410 + /// Precoded ERC1410 contracts ABI. Output parameters are named for ease of use. + public static var erc1410ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + + /// TODO: - Need to add correct ABI for ERC1594 + /// Precoded ERC1594 contracts ABI. Output parameters are named for ease of use. + public static var erc1594ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + + /// TODO: - Need to add correct ABI for ERC1644 + /// Precoded ERC1644 contracts ABI. Output parameters are named for ease of use. + public static var erc1644ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" + + /// TODO: - Need to add correct ABI for ERC1644 + /// Precoded ERC1643 contracts ABI. Output parameters are named for ease of use. + public static var erc1643ABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"type\":\"constructor\"},{\"payable\":false,\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},]" //function setAddr(bytes32 node, address addr) public static var resolverABI = """ From 75d8df4790c24c7c1a7a663ab5a2a79d44d409ca Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Thu, 20 Dec 2018 04:23:11 +0300 Subject: [PATCH 27/28] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5b1d5c31f..c7ccf4994 100755 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ ## Migration Guides -- [web3swift 2.0 Migration Guide](https://github.com/matterinc/web3swift/blob/feature/readmeImprovement/Documentation/web3swift%202.0%20Migration%20Guide.md) +- [web3swift 2.0 Migration Guide](https://github.com/matterinc/web3swift/blob/documentation/Documentation/web3swift%202.0%20Migration%20Guide.md) ## Communication @@ -247,4 +247,4 @@ Our Ether wallet address: 0xe22b8979739d724343bd002f9f432f5990879901 ## License -web3swift is available under the Apache License 2.0 license. See the [LICENSE](https://github.com/matterinc/web3swift/blob/feature/readmeImprovement/LICENSE) for details. +web3swift is available under the Apache License 2.0 license. See the [LICENSE](https://github.com/matterinc/web3swift/blob/documentation/LICENSE) for details. From bdf163b352b0f0a1bc24079bc242fa617cbffc7e Mon Sep 17 00:00:00 2001 From: Anton Grigorev Date: Thu, 20 Dec 2018 04:43:34 +0300 Subject: [PATCH 28/28] Update README.md --- README.md | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c7ccf4994..8156a174b 100755 --- a/README.md +++ b/README.md @@ -66,6 +66,20 @@ - [x] [EIP-155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md) (Replay attacks protection) *enforced!* - [x] [EIP-681](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-681.md) (A standard way of representing various transactions, especially payment requests in Ethers and ERC-20 tokens as URLs) - [x] [EIP-721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md) (A standard interface for non-fungible tokens, also known as deeds - ERC-721) + - [x] [EIP-165](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md) (Standard Interface Detection, also known as ERC-165) + - [x] [EIP-777](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-777.md) (New Advanced Token Standard, also known as ERC-777) + - [x] [EIP-820](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-820.md) (Pseudo-introspection Registry Contract, also known as ERC-820) + - [x] [EIP-888](https://github.com/ethereum/EIPs/issues/888) (MultiDimensional Token Standard, also known as ERC-888) + - [x] [EIP-1400](https://github.com/ethereum/EIPs/issues/1411) (Security Token Standard, also known as ERC-1400) + - [x] [EIP-1410](https://github.com/ethereum/EIPs/issues/1410) (Partially Fungible Token Standard, also known as ERC-1410) + - [x] [EIP-1594](https://github.com/ethereum/EIPs/issues/1594) (Core Security Token Standard, also known as ERC-1594) + - [x] [EIP-1643](https://github.com/ethereum/EIPs/issues/1643) (Document Management Standard, also known as ERC-1643) + - [x] [EIP-1644](https://github.com/ethereum/EIPs/issues/1644) (Controller Token Operation Standard, also known as ERC-1644) + - [x] [EIP-1633](https://github.com/ethereum/EIPs/issues/1634) (Re-Fungible Token, also known as ERC-1633) + - [x] [EIP-721x](https://github.com/loomnetwork/erc721x) (An extension of ERC721 that adds support for multi-fungible tokens and batch transfers, while being fully backward-compatible, also known as ERC-721x) + - [x] [EIP-1155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1155.md) (Multi Token Standard, also known as ERC-1155) + - [x] [EIP-1376](https://github.com/ethereum/EIPs/issues/1376) (Service-Friendly Token, also known as ERC-1376) + - [x] RLP encoding - [x] Batched requests in concurrent mode - [x] Base58 encoding scheme @@ -121,7 +135,7 @@ platform :ios, '9.0' target '' do use_frameworks! - pod 'web3swift', '~> 2.0.1' + pod 'web3swift' end ``` @@ -214,14 +228,12 @@ func setLocalNode(port: Int = 8545) -> Web3? { ## What's next -- [x] [EIP-165](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md) (Creates a standard method to publish and detect what interfaces a smart contract implements - ERC-165) -- [x] [EIP-777](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-777.md) (A new advanced token standard - ERC-777) -- [x] [EIP-888](https://github.com/ethereum/EIPs/issues/888) (MultiDimensional Token Standard - ERC-888) -- [x] [EIP-1400](https://github.com/ethereum/EIPs/issues/1411) (Security Token Standard - ERC-1400) - [x] [R-Token](https://github.com/harborhq/r-token) (Smart Contracts for applying regulatory compliance to tokenized securities issuance and trading) - [x] [SRC-20](https://swarm.fund/swarm-basics/) (Swarm protocol that enables the tokenization of assets on the blockchain - Security Tokens) - [x] [ST-20](https://github.com/PolymathNetwork/polymath-core) (ST-20 token is an Ethereum-based token implemented on top of the ERC-20 protocol that adds the ability for tokens to control transfers based on specific rules) - [x] [Objective-C] - a proxy bridge to build your DApp on Objective-C using web3swift +- [x] [Performance Improvements] +- [x] [More convenient methods for basic namespaces] - [x] [Complete Documentation](https://web3swift.github.io/web3swift)